/* V318-CODE-THEME: giao dien "editor toi" kieu AI code (Claude Code / VS Code)
   cho TOAN BO web: trang chu, cong khach hang, admin, dang nhap, dieu khoan.
   - Nap SAU black-ui.css va TRUOC layout-balance.css o moi trang (layout-balance
     chua fix bo cuc, phai giu CUOI - test V267/V318-3 khoa). Cung dac thu + cung
     !important thi file nap sau thang black-ui, nen khong can sua cac file CSS
     cu (giam rui ro regression).
   - Font tu host (CSP chi cho font-src 'self'): Inter, SIL OFL 1.1
     (public/fonts/OFL-Inter.txt). V327-ONE-FONT: 1 font chu DUY NHAT cho toan
     web - bo JetBrains Mono (truoc dung cho so lieu / nhan / code), xem muc cuoi.
   - Moi subset co unicode-range rieng: trinh duyet chi tai file "vietnamese"
     khi trang co chu co dau. */

@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-vietnamese-400-normal.woff2?v=20261021-v343-key-format-reset) 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:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-ext-400-normal.woff2?v=20261021-v343-key-format-reset) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2?v=20261021-v343-key-format-reset) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-vietnamese-500-normal.woff2?v=20261021-v343-key-format-reset) 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:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-ext-500-normal.woff2?v=20261021-v343-key-format-reset) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2?v=20261021-v343-key-format-reset) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-vietnamese-600-normal.woff2?v=20261021-v343-key-format-reset) 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:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-ext-600-normal.woff2?v=20261021-v343-key-format-reset) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2?v=20261021-v343-key-format-reset) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* 700 phuc vu ca cac rule cu dat font-weight 800/900/1000 (trinh duyet lay
   mat gan nhat), nen khong can ship them file 800/900. */
@font-face{font-family:"Inter";font-style:normal;font-weight:700 1000;font-display:swap;src:url(/fonts/inter-vietnamese-700-normal.woff2?v=20261021-v343-key-format-reset) 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:"Inter";font-style:normal;font-weight:700 1000;font-display:swap;src:url(/fonts/inter-latin-ext-700-normal.woff2?v=20261021-v343-key-format-reset) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:"Inter";font-style:normal;font-weight:700 1000;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2?v=20261021-v343-key-format-reset) 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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---- Bang mau editor toi (token goc + ghi de bien cua cac file cu) ---- */
:root{
  color-scheme:dark;
  --ct-bg:#0d1117;--ct-sidebar:#010409;--ct-panel:#161b22;--ct-panel2:#1c2128;--ct-field:#0d1117;
  --ct-line:#30363d;--ct-line-soft:#21262d;--ct-text:#e6edf3;--ct-muted:#8b949e;
  --ct-accent:#d97757;--ct-accent-text:#e8a084;--ct-accent-btn:#b5552f;--ct-accent-btn-hover:#a34b29;
  --ct-accent-soft:rgba(217,119,87,.14);--ct-purple:#a78bfa;--ct-blue:#58a6ff;
  --ct-ok:#3fb950;--ct-bad:#f85149;--ct-warn:#d29922;
  --ct-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI","Segoe UI Emoji","Segoe UI Symbol","Apple Color Emoji","Noto Color Emoji",sans-serif;
  --ct-mono:var(--ct-sans);
  --bg:#0d1117;--bg2:#0d1117;--panel:#161b22;--panel2:#1c2128;--line:#30363d;--text:#e6edf3;--muted:#8b949e;
  --brand:#d97757;--brand2:#a78bfa;--hot:#3fb950;--ok:#3fb950;--bad:#f85149;--warn:#d29922;--shadow:none;
  --black-ui-bg:#0d1117;--black-ui-panel:#161b22;--black-ui-panel2:#1c2128;--black-ui-field:#0d1117;--black-ui-text:#e6edf3;--black-ui-muted:#8b949e;
  --tnt-action:#21262d;--tnt-action-hover:#30363d;--tnt-action-text:#e6edf3;--tnt-action-border:#30363d;--tnt-action-disabled:#161b22
}

/* ---- Chu: Inter cho MOI noi dung (V327: --ct-mono = bi danh cua --ct-sans) ---- */
html,body{font-family:var(--ct-sans)!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit}
code,pre,kbd,samp,.mono,.copyLine,.readonlyBox,.tntSecretInput,.key-box,.doc-url-highlight,.terminal-card,.code-card,.modelTestDebug,.depositReferenceText,.buyPlanReference{font-family:var(--ct-mono)!important}
h1,h2,h3,h4{font-family:var(--ct-sans)!important;letter-spacing:-.02em}
/* line-height cu .95/1.02 lam dau tieng Viet dong 2 (e^, a') cham chan chu
   dong 1 (g, dau nang) khi dung Inter dam -> toi thieu 1.14 cho moi h1. */
h1,.login h1,.intro h1{letter-spacing:-.035em;line-height:1.14!important}
.eyebrow,.brand-showcase-kicker,.noticeEyebrow{font-family:var(--ct-mono)!important;font-weight:500!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--ct-accent-text)!important}
.metric b,.metric strong,.stats b,.stats strong,.usageHero b,.dash-cards b{font-family:var(--ct-mono)!important;font-weight:600!important;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.metric span,.stats span{color:var(--ct-muted)!important}
th{font-family:var(--ct-mono)!important;font-size:11.5px!important;font-weight:500!important;letter-spacing:.04em;text-transform:uppercase;color:var(--ct-muted)!important}
td{font-variant-numeric:tabular-nums}
.pill{font-family:var(--ct-mono)!important;font-weight:500!important;letter-spacing:.01em}
a{color:var(--ct-accent-text)}

/* ---- Nen + khung (cung selector voi black-ui.css nen file nap sau thang) ---- */
html,body,.shell,.auth,.app,.content,.tab{background:var(--ct-bg)!important;background-image:none!important;color:var(--ct-text)!important}
.noise{opacity:.04!important}
.card,.secret,.metric,.providers,.dashboard,.terminal-card,.code-card,.plan,.stats div,.providerCard,.providerKeyEditor,.providerKeyItem,.providerKeyRow,.pricingPlanEditor,.promoTierEditor,.usagePanel,.usageHero,.legalHero,.legalCard,.reauthBox,.topupNotice,.buyPlanModal,.approvalPopup,.subscriptionPlanCard,.doc-panel,.cta,.docConnectCard,.cards article,.terms-grid article{background:var(--ct-panel)!important;background-image:none!important;border-color:var(--ct-line)!important;box-shadow:none!important}
.card,.secret,.metric,.plan,.providerCard,.usagePanel,.usageHero,.legalHero,.legalCard,.subscriptionPlanCard,.doc-panel,.cta,.dashboard,.terminal-card,.code-card,.docConnectCard,.cards article,.terms-grid article,.stats div{border:1px solid var(--ct-line)!important;border-radius:8px!important}
.pricingPlanRow,.apiTestMetric,.modelTestDebugRow,.bankWebhookGuide,.provider-row span,.steps li,.dash-cards div,.key-box,.customerModelBrandSummary,.public-model-item,.public-model-loading,.public-model-empty{background:var(--ct-panel2)!important}
/* KHONG ep border-color cho .apiTestMetric: vien xanh/do/vang (.success/.error/
   .pending, admin.css khong !important) la cach duy nhat con lai de doc PASS/FAIL. */
.pricingPlanRow,.modelTestDebugRow,.bankWebhookGuide,.provider-row span,.steps li,.dash-cards div,.key-box,.customerModelBrandSummary,.public-model-item,.public-model-loading,.public-model-empty{border-color:var(--ct-line-soft)!important}
.brand-showcase,.public-model-brand-card,.toast{background:var(--ct-panel)!important;background-image:none!important}
.brand-showcase::before{display:none!important}
.usageTrend{background-color:var(--ct-field)!important}

/* ---- Bang ---- */
table,td{background:var(--ct-panel)!important;background-image:none!important}
th,.stickyLogsTable thead th{background:var(--ct-panel2)!important}
th,td{border-color:var(--ct-line-soft)!important}
/* Hang tieu de nhom (customer.css: transparent!important) khong doi nen khi hover. */
tbody tr:not(.customerModelServerGroup):not(.customerModelBrandGroup):hover td{background:#1a2029!important}
/* Inter rong hon Segoe UI: email dai khong co cho ngat => bang User tran
   13px (do that 1176/1163). Cho ngat bat ky dau o cot Email / Tai khoan. */
#usersTable td:nth-child(1),#usersTable td:nth-child(2){overflow-wrap:anywhere}

/* ---- O nhap ---- */
input,select,textarea,.readonlyBox,.searchBox{background:var(--ct-field)!important;color:var(--ct-text)!important;border:1px solid var(--ct-line)!important;border-radius:6px!important;box-shadow:none!important}
input:focus,select:focus,textarea:focus,.searchBox:focus{outline:none!important;border-color:var(--ct-accent)!important;box-shadow:0 0 0 3px var(--ct-accent-soft)!important}
input::placeholder,textarea::placeholder{color:#7d8590!important}
input[type="checkbox"],input[type="radio"]{accent-color:var(--ct-accent)}

/* ---- Nut: mac dinh kieu nut phu cua editor ---- */
button,.miniBtn,.miniLink,.dangerBtn,.secondaryBtn,.usageExportBtn,.modelTestActionBtn,.bankConfirmBtn,.modelSearchClearBtn,.uptimeToggleBtn,.subscriptionBuyBtn,.toolPrimaryBtn,.toolChoiceBtn,.modelCopyBtn,.modelTestBtn,.comboTestBtn,.comboIconBtn,.noticeBtn,#copyBtn,.btn,.testAllBtn,.modelActiveBtn,.saveProviderBtn,.warnBtn{background:var(--tnt-action)!important;color:var(--tnt-action-text)!important;border:1px solid var(--tnt-action-border)!important;border-radius:6px!important;box-shadow:none!important;text-shadow:none!important;font-weight:600!important;transition:background .12s ease,border-color .12s ease,color .12s ease}
button:hover:not(:disabled),.miniBtn:hover:not(:disabled),.miniLink:hover:not(:disabled),.dangerBtn:hover:not(:disabled),.secondaryBtn:hover:not(:disabled),.usageExportBtn:hover:not(:disabled),.modelTestActionBtn:hover:not(:disabled),.bankConfirmBtn:hover:not(:disabled),.modelSearchClearBtn:hover:not(:disabled),.uptimeToggleBtn:hover:not(:disabled),.subscriptionBuyBtn:hover:not(:disabled),.toolPrimaryBtn:hover:not(:disabled),.toolChoiceBtn:hover:not(:disabled),.modelCopyBtn:hover:not(:disabled),.modelTestBtn:hover:not(:disabled),.comboTestBtn:hover:not(:disabled),.comboIconBtn:hover:not(:disabled),.noticeBtn:hover:not(:disabled),#copyBtn:hover:not(:disabled),.btn:hover:not(:disabled),.testAllBtn:hover:not(:disabled),.modelActiveBtn:hover:not(:disabled),.saveProviderBtn:hover:not(:disabled),.warnBtn:hover:not(:disabled){background:var(--tnt-action-hover)!important;border-color:#8b949e!important;color:#f0f6fc!important}
button:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--ct-accent)!important;outline-offset:2px}
button:disabled,.miniBtn:disabled,.dangerBtn:disabled,.secondaryBtn:disabled,.usageExportBtn:disabled,.modelTestActionBtn:disabled,.subscriptionBuyBtn:disabled,.toolPrimaryBtn.disabled,.modelTestBtn:disabled,.warnBtn:disabled{background:var(--tnt-action-disabled)!important;border-color:var(--ct-line-soft)!important;color:#6e7681!important;opacity:.8!important}

/* Nut chinh (hanh dong chinh cua trang): cam kieu Claude, chu trang 4.9:1 */
/* :not(:disabled): nut submit dang khoa ("Dang Test...", "Dang luu") phai xam
   nhu moi nut disabled - selector form button[type=submit] (0,1,2) se thang
   button:disabled (0,1,1) neu khong loai tru (review V318 F1). */
.btn:not(:disabled),.toolPrimaryBtn:not(:disabled):not(.disabled),.subscriptionBuyBtn:not(:disabled),.saveProviderBtn:not(:disabled),.bankConfirmBtn:not(:disabled),#copyBtn:not(:disabled),form button[type="submit"]:not(:disabled),#providerForm>button[type="submit"]:not(:disabled),.topupNoticeOverlay .noticeActions button[data-notice-dismiss]{background:var(--ct-accent-btn)!important;background-image:none!important;border-color:#c96a48!important;color:#fff!important}
.btn:hover:not(:disabled),.toolPrimaryBtn:hover:not(:disabled),.subscriptionBuyBtn:hover:not(:disabled),.saveProviderBtn:hover:not(:disabled),.bankConfirmBtn:hover:not(:disabled),#copyBtn:hover:not(:disabled),form button[type="submit"]:hover:not(:disabled),#providerForm>button[type="submit"]:hover:not(:disabled){background:var(--ct-accent-btn-hover)!important;border-color:var(--ct-accent)!important;color:#fff!important}
/* Nut "ghost" tren trang chu giu kieu nut phu */
.ghost,.btn.ghost{background:transparent!important;color:var(--ct-text)!important;border:1px solid var(--ct-line)!important;border-radius:6px!important;box-shadow:none!important}
/* Nut nguy hiem */
.dangerBtn,.warnBtn{background:rgba(248,81,73,.1)!important;border-color:rgba(248,81,73,.45)!important;color:#ff7b72!important}
.dangerBtn:hover:not(:disabled),.warnBtn:hover:not(:disabled){background:rgba(248,81,73,.2)!important;border-color:#f85149!important;color:#ffa198!important}

/* ---- Sidebar admin / khach hang: kieu explorer cua editor ---- */
aside{background:var(--ct-sidebar)!important;border-color:var(--ct-line)!important}
.app aside button,aside button{background:transparent!important;color:var(--ct-muted)!important;border:1px solid transparent!important;border-radius:6px!important;box-shadow:none!important;font-weight:500!important}
.app aside button:hover,aside button:hover{background:rgba(177,186,196,.12)!important;color:var(--ct-text)!important;border-color:transparent!important;box-shadow:none!important}
.app aside button.active,aside button.active{background:var(--ct-accent-soft)!important;color:#f0b49c!important;border-color:transparent!important;box-shadow:inset 2px 0 0 var(--ct-accent)!important}

/* ---- Trang chu ---- */
.nav{background:rgba(13,17,23,.88)!important;border-bottom:1px solid var(--ct-line)!important;backdrop-filter:blur(12px)}
.logo{background:var(--ct-accent)!important;box-shadow:none!important;border-radius:8px!important}
.badge span{background:var(--ct-ok)!important;box-shadow:none!important}
.tag{background:var(--ct-accent-soft)!important;color:#f0b49c!important;border:1px solid rgba(217,119,87,.5)!important;box-shadow:none!important}
.plan.featured{border-color:var(--ct-accent)!important;box-shadow:0 0 0 1px var(--ct-accent) inset!important}
.brand-showcase-title strong{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:var(--ct-text)!important;filter:none!important}
.doc-url-highlight{background:var(--ct-panel2)!important;border:1px solid var(--ct-line)!important;color:var(--ct-accent-text)!important;box-shadow:none!important}
.lead,.section-title p{color:var(--ct-muted)!important}

/* ---- Modal thong bao (V268): giu bo cuc, doi sang tong mau editor ---- */
.topupNoticeOverlay .topupNotice{background:var(--ct-panel)!important;border:1px solid var(--ct-line)!important;border-radius:10px!important;box-shadow:0 24px 64px rgba(1,4,9,.7)!important}
.topupNoticeOverlay .topupNotice::before{background:var(--ct-accent)!important;opacity:1}
.topupNoticeOverlay .noticeIcon{background:var(--ct-accent-soft)!important;box-shadow:0 0 0 1px rgba(217,119,87,.4) inset!important;border-radius:8px!important}
.topupNoticeOverlay .topupNotice p{color:#c9d1d9!important}

/* ---- Trang thai: mau ngu nghia kieu GitHub dark ---- */
.pill.success,.pill.ok{background:rgba(63,185,80,.14)!important;color:#56d364!important;border:1px solid rgba(63,185,80,.4)!important}
.pill.warning,.pill.pending{background:rgba(210,153,34,.14)!important;color:#e3b341!important;border:1px solid rgba(210,153,34,.4)!important}
.pill.error,.pill.off{background:rgba(248,81,73,.14)!important;color:#ff7b72!important;border:1px solid rgba(248,81,73,.4)!important}

/* ---- Mau xanh nhat con sot trong layout-balance.css (khong !important) ---- */
.modelTestDetails>summary,.settingsGroup>legend{color:var(--ct-accent-text)!important}
.modelTestDetailRow .modelTestDebug{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important}
.settingsGroup{border-color:var(--ct-line)!important;border-radius:8px!important}

/* ---- Xanh cyan cung (#9de9ff / rgba(56,214,255)) cua khung UI -> tong editor.
   KHONG doi mau du lieu (token cache, cot bieu do) vi la ma mau cua chu giai. */
.secret code,pre code,.bankWebhookGuide code,.customerDocs .docMiniGrid code,.customerDocs .docMiniGrid span,.modelTntKeyRow label,.uptimeLoading,.adminComboBilling{color:var(--ct-accent-text)!important}
.stickyLogsTable td:last-child{color:#c9d1d9!important}
.legalBack,.legalLinks a,.legalFooter a,.legalCard a{color:var(--ct-accent-text)!important}
.modelSearchResultCount{color:var(--ct-muted)!important}
.modelTntKeyRow input{border-color:var(--ct-line)!important}
.modelTntKeyRow small,.providerHealthPanel{border-color:var(--ct-line)!important;background:var(--ct-panel2)!important}
.subPlanEmpty{border-color:var(--ct-line)!important}
.searchBox{border-color:var(--ct-line)!important;border-radius:6px!important}
.adminUsageRangeBtn.is-active{background:var(--ct-accent-soft)!important;border-color:var(--ct-accent)!important;color:#f0b49c!important;box-shadow:none!important}

/* ---- V319-UI-POLISH: xanh neon #14f1a6 cua admin.css (giu nguyen vi test cu
   khoa) con sot o o Test, nut ON/Hien, toggle, token vao, bieu do, badge deploy
   -> ve xanh GitHub (--ct-ok) cho dong bo theme editor. ---- */
.testStatus.success,.testStatus.success>b{color:#56d364!important}
.testStatus.success{background:rgba(63,185,80,.08)!important;border-color:rgba(63,185,80,.35)!important;box-shadow:none!important}
.testStatus.error,.testStatus.pending,.testStatus.warning{box-shadow:none!important}
/* black-ui.css co button.modelActiveBtn.success (0,2,1) !important => phai ghi de dung do dac thu do */
.modelActiveBtn.success,button.modelActiveBtn.success{background:rgba(63,185,80,.12)!important;color:#56d364!important;border:1px solid rgba(63,185,80,.4)!important}
button.modelActiveBtn.error{background:rgba(248,81,73,.1)!important;color:#ff7b72!important}
.pill.toggleBtn.on,.pill.on{background:rgba(63,185,80,.14)!important;color:#56d364!important;border:1px solid rgba(63,185,80,.4)!important;box-shadow:none!important}
.tokenFlowCell .tokenFlowIn{color:#56d364!important;border-color:rgba(63,185,80,.4)!important}
.adminTrendOutput,.adminTrendHour .adminTrendOutput,.adminLegendOutput,.trendOutput,.legendOutput{background:var(--ct-ok)!important}
.usageLiveDot{color:#56d364!important}
/* Phan tu chi hien khi co du lieu / trang thai. Rule khong !important o day
   (cung dac thu, nap sau admin.css) => bien the .error/.warning/.cost van thang. */
.pill{background:rgba(63,185,80,.14)}
.toast.ok{border-color:rgba(63,185,80,.45)}
.subPlanSaveStatus.saved{background:rgba(63,185,80,.13);color:#56d364;border-color:rgba(63,185,80,.35)}
.apiTestMetric.success{border-color:rgba(63,185,80,.42)!important;color:#56d364!important}
.apiTestReason.success{color:#56d364!important;background:rgba(63,185,80,.1)!important;border-color:rgba(63,185,80,.38)!important}
.apiTestScorePanel.success{border-color:rgba(63,185,80,.42)!important}
.apiTestScoreRing{background:conic-gradient(var(--ct-ok) calc(var(--score)*1%),rgba(255,255,255,.1) 0)}
.apiTestScoreRing:before{background:var(--ct-panel)}
.apiTestScoreRing b{color:#56d364}
.modelKeyAttempt.success{background:rgba(63,185,80,.12)!important;border:1px solid rgba(63,185,80,.4)!important;color:#56d364!important}
.uptimeBar.green{background:var(--ct-ok)}
.adminTrendBar{background:linear-gradient(180deg,var(--ct-blue),var(--ct-ok))}
.usageBarFill{background:linear-gradient(90deg,var(--ct-blue),var(--ct-ok))}
.adminComboMemberRow{border-color:rgba(63,185,80,.32);background:rgba(63,185,80,.06)}
.providerTestMaxPanel{border-color:rgba(63,185,80,.25);background:rgba(63,185,80,.04)}
.customerModelGroupedTable .modelComboBadge{border-color:rgba(63,185,80,.5)!important;background:rgba(63,185,80,.12)!important;color:#56d364!important}
#turnstileHint.isVerified{border-color:rgba(63,185,80,.5)!important;background:rgba(63,185,80,.12)!important;color:#56d364!important}
.deployBadge{background:rgba(63,185,80,.1)!important;border-color:rgba(63,185,80,.4)!important;color:#56d364!important}
.deployBadge.deployBadgeStale{background:rgba(248,81,73,.12)!important;border-color:rgba(248,81,73,.5)!important;color:var(--ct-bad,#f85149)!important}
.adminLiveStatus.live{color:#56d364!important}
.adminLiveStatus.live::before{background:var(--ct-ok)!important;box-shadow:none!important}
/* O tim kiem: vien kep (khung .searchBox + vien input ben trong) -> 1 vien */
.searchBox input,.searchBox input:focus{border:0!important;background:transparent!important;box-shadow:none!important;outline:none!important}
.searchBox:focus-within{border-color:var(--ct-accent)!important;box-shadow:0 0 0 3px var(--ct-accent-soft)!important}
/* Input trong bang Models: CTX dang dam 900 (ke thua .modelLimitField), o gia
   400 -> mot kieu so lieu mono 500 dong nhat */
#modelsTable td input{font-family:var(--ct-mono)!important;font-weight:500!important;font-variant-numeric:tabular-nums}
.modelTestParityOption{color:var(--ct-muted)!important;font-weight:500!important}
.priceDiscountSummary{border:1px solid var(--ct-line)!important;background:var(--tnt-action)!important}
.priceDiscountSummary:not(.is-active){color:var(--ct-text)!important}
.priceDiscountSummary.is-active{border-color:rgba(248,81,73,.5)!important}

/* ---- Thanh cuon mong kieu editor ---- */
*{scrollbar-color:#30363d transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#30363d;border-radius:6px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#484f58;background-clip:padding-box}
::-webkit-scrollbar-track{background:transparent}
::selection{background:rgba(217,119,87,.35);color:#fff}

/* ---- V325-UI-UNIFY: dong bo 1 phong cach cho TOAN BO web (trang chu, dieu
   khoan, dang nhap, cong khach hang, admin). Quet computed style tren trinh
   duyet that (update/tmp-probe/v325-ui) con sot: nut submit khong khai bao
   type (xam thay vi cam), xanh cyan rgba(56,214,255) cua khung UI, glow chu
   neon trang chu, bo goc 14-24px (theme la 8px khung / 6px phan tu con),
   eyebrow 2 kieu, nut lien he noi gradient xanh. KHONG doi mau du lieu cua
   bieu do / token cache (ma mau chu giai - quy uoc V318). ---- */

/* 1. Nut chinh: <button> khong co type trong <form> la submit cua form (HTML)
   => cung kieu cam voi form button[type=submit] (admin Luu cau hinh, khach Tao
   QR nap, Dang nhap khach...). Nut phu da khai bao type="button". */
form button:not([type]):not(:disabled){background:var(--ct-accent-btn)!important;background-image:none!important;border-color:#c96a48!important;color:#fff!important}
form button:not([type]):hover:not(:disabled){background:var(--ct-accent-btn-hover)!important;border-color:var(--ct-accent)!important;color:#fff!important}
/* Tab Dang nhap / Dang ky: tab dang chon giong muc sidebar dang chon */
.switch button.active,.switch .active{background:var(--ct-accent-soft)!important;color:#f0b49c!important;border-color:rgba(217,119,87,.5)!important}

/* 2. Bo goc thong nhat: khung 8px, phan tu con 6px, chip 999px */
.brand-showcase,.public-model-server-frame,.public-model-brand-card,.public-model-empty,.public-model-loading,.steps li,.snippet-grid>div,.doc-panel table,.dash-cards div,.key-box,.dashboard table,.doc-url-highlight,.minChargeNotice,.subscriptionEmpty,.customerDocList,.customerDocs .docMiniGrid div,.accountInfoItem,.telegramLinkStatus,.pwChecklist,.bankMethodHint,.bankWebhookGuide,.pricingPlanEditor,.pricingPlanRow,.subPlanEmpty,.providerKeyEditor,.providerKeyRow,.providerKeyItem,.providerKeyAdd,.serverCreateRow,.providerHealthPanel,.requestToast{border-radius:8px!important}
.cards article .icon,.snippet-grid pre,.docConnectCard code,.modelTntKeyRow small,.public-model-item,.public-model-brand-logo,.brand-marquee-logo,.dashboard aside a,.doc-url-highlight button{border-radius:6px!important}
.provider-row span{border-radius:999px!important}

/* 3. Xanh cyan cua khung UI -> tong editor */
.bankMethodHint,.customerDocList,.customerDocs .docMiniGrid div{background:var(--ct-panel2)!important;border-color:var(--ct-line-soft)!important}
.providerKeyAdd,.serverCreateRow{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important}
.usageMode{border-color:var(--ct-line)!important}
.cards article .icon{background:var(--ct-accent-soft)!important;box-shadow:none!important}
.dashboard aside a.active{background:var(--ct-accent-soft)!important;color:#f0b49c!important;box-shadow:inset 2px 0 0 var(--ct-accent)!important}
.public-model-brand-logo{border-color:var(--ct-line)!important;box-shadow:none!important}
.public-model-brand-card::before{display:none!important}
.public-model-health.is-good{background:rgba(63,185,80,.12)!important;border-color:rgba(63,185,80,.4)!important;color:#56d364!important}
/* Chu xanh nhat / trang ngai xanh -> chu theme; gia tri code -> accent nhu `pre code` */
.legalCard h2,.public-model-catalog-heading h2,.docConnectCard span{color:var(--ct-text)!important}
.doc-panel code,.key-box code,.docConnectCard code,.steps code{color:var(--ct-accent-text)!important}
.docConnectCard code{border-color:var(--ct-line)!important}
.doc-quick>div>span,.doc-errors>div>span{color:#c9d1d9!important}
.usageAccent,.usageUpdated,#adminUsageScopeLabel,#adminUsageLastUpdated,.adminUsagePanelHead>span,.adminLogsSearchNote b,.public-model-brand-title span{color:var(--ct-accent-text)!important}
.adminTrendBar,.adminTrendHour .adminTrendBar{box-shadow:none!important}

/* 4. Trang chu: bo glow / vien chu neon, tieu de cung kieu cac trang khac */
.brand-showcase-title span,.brand-showcase-title strong,.public-model-catalog-heading h2{text-shadow:none!important;-webkit-text-stroke:0!important;-webkit-text-fill-color:currentColor!important;filter:none!important}

/* 5. Eyebrow: mot kieu mono cam o moi trang (trang chu .section-title p, dieu khoan) */
.section-title>p,.legalHero>p:first-child{font-family:var(--ct-mono)!important;font-size:13px!important;font-weight:500!important;letter-spacing:.06em!important;text-transform:uppercase;color:var(--ct-accent-text)!important}

/* 6. Nut lien he noi (Telegram / Zalo): kieu nut phu cua theme, bo gradient + glow */
.telegramFloat,.telegramFloat.zaloFloat{background:var(--ct-panel2)!important;background-image:none!important;color:var(--ct-text)!important;border:1px solid var(--ct-line)!important;box-shadow:0 8px 24px rgba(1,4,9,.55)!important;filter:none!important}
.telegramFloat:hover,.telegramFloat.zaloFloat:hover{background:#262c36!important;border-color:var(--ct-accent)!important;box-shadow:0 8px 24px rgba(1,4,9,.55)!important;transform:none!important}

/* 7. Toast request live (cong khach hang): nen panel + mau trang thai theme */
.requestToast{background:var(--ct-panel)!important;background-image:none!important;border-color:var(--ct-line)!important;box-shadow:0 12px 32px rgba(1,4,9,.6)!important;color:var(--ct-text)!important}
.requestToast.success{border-color:rgba(63,185,80,.5)!important}
.requestToast.error{border-color:rgba(248,81,73,.55)!important}
.requestToast.warning{border-color:rgba(210,153,34,.55)!important}
.requestToast.success .requestToastHead b{color:#56d364!important}
.requestToast.error .requestToastHead b{color:#ff7b72!important}
.requestToast.warning .requestToastHead b{color:#e3b341!important}
.requestToastHead span{color:var(--ct-muted)!important}

/* 8. Bo cuc vo tren trang chu / admin */
/* Khung "URL ket noi" o cot hep: luoi 150px|1fr|auto lam URL vo tung chu.
   MOT cot (nhan / URL / nut / ghi chu): URL chiem tron be ngang o MOI be rong.
   Khong de "1fr auto" (code chung hang nut): rule nay (0,2,0)!important thang
   rule mobile 1 cot cua styles.css (0,1,0)!important => 375px URL vo 3 manh. */
.doc-quick .doc-url-highlight{grid-template-columns:minmax(0,1fr)!important}
.doc-quick .doc-url-highlight b,.doc-quick .doc-url-highlight span{grid-column:1 / -1!important}
.doc-quick .doc-url-highlight code{font-size:15px!important;word-break:normal!important;overflow-wrap:anywhere}
.doc-quick .doc-url-highlight button{justify-self:start}
/* Cot buoc huong dan span 2 hang: cac buoc khong keo gian chieu cao */
.docs-steps{align-content:start}
.public-model-server-frame .public-model-catalog-grid{margin-top:16px}
/* Tieu de tab admin: badge phien ban dai lam "Provider & gia" xuong dong */
.content>header{flex-wrap:wrap;row-gap:10px}
@media (min-width:700px){.content>header #title{white-space:nowrap}}
/* Email dang nhap tren header: admin (span) cung kieu khach (b); mobile (<=900px,
   header xep doc) can trai nhu cong khach thay vi day sang phai. */
#adminEmail{font-weight:700;color:var(--ct-text)}
/* .deployBadge la inline-flex => text-overflow:ellipsis KHONG ap cho chu (anonymous
   flex item) => mobile cat cam mat "SHA-RUNNING ...". Cho xuong dong de hien du. */
@media (max-width:900px){.adminHeaderRight{justify-content:flex-start}.deployBadge{display:block;white-space:normal;border-radius:8px;line-height:1.5}}
/* Logo trang dang nhap admin / khach: cung kich thuoc */
.auth .intro .brandLogo,.login .brandLogo{width:64px!important;height:64px!important}

/* 9. Trang thai "dang chon" cua nhom nut: rule nut phu chung (button !important)
   xoa nen .active cu => khong biet dang chon gi. Dung kieu muc sidebar dang chon. */
.switch button.active:hover,.toolTopTab.active,.toolTopTab.active:hover,.toolChoiceBtn.active,.toolChoiceBtn.active:hover,.usageMode button.active,.usageMode button.active:hover{background:var(--ct-accent-soft)!important;background-image:none!important;color:#f0b49c!important;border-color:rgba(217,119,87,.5)!important}
.toolTopTab,.toolChoiceBtn{border-radius:6px!important}
input[type="range"],.toolCompactRange{accent-color:var(--ct-accent)!important}

/* 10. Cong khach hang: bang "Model dang ban" con tong navy/cyan cu */
.customerModelServerSummary b{color:var(--ct-text)!important}
.customerModelServerSummary small,.customerModelIdentityText small{color:var(--ct-muted)!important}
.customerModelBrandSummary{border-color:var(--ct-line)!important;background-image:none!important;box-shadow:none!important}
.customerModelBrandSummaryText b,.customerModelIdentityText b,.modelBrandFallback{color:var(--ct-text)!important}
.customerModelBrandSummaryText small{color:var(--ct-accent-text)!important}
.customerModelRow.health-excellent td:first-child,.customerModelRow.health-good td:first-child{box-shadow:inset 3px 0 0 rgba(63,185,80,.75)!important}
.customerModelRow.health-slow td:first-child,.customerModelRow.health-unstable td:first-child{box-shadow:inset 3px 0 0 rgba(210,153,34,.8)!important}
.customerModelRow.health-down td:first-child{box-shadow:inset 3px 0 0 rgba(248,81,73,.8)!important}
.customerModelRow.health-untested td:first-child{box-shadow:inset 3px 0 0 rgba(110,118,129,.6)!important}
/* Icon hang: mac dinh trung tinh. KHONG !important de .modelBrandIcon[data-brand=...]
   (openai/claude/google...) van giu mau nhan dien hang (dac thu cao hon). */
.modelBrandIcon{background:var(--ct-panel2);border-color:var(--ct-line)}
.modelBrandIcon{border-radius:6px!important}
/* Chip gia: cam nhat thay cyan; .is-muted xam; .priceDiscountNew -> vang theme o muc 15 */
/* O gia chi rong 86px (bang table-layout:fixed, td padding 12px). Do that tren
   Edge: "1.875.000d/1M" Inter 12px/700 = 92px => chip bi flex co lai 86px, chu
   tran khoi vien. Chip 11px + flex:none (khong co) => ~96px, lan vao padding td
   (12px) nhung van trong o, vien bao tron chu. */
.tokenMultiplierBadge{border-color:rgba(217,119,87,.4);background:var(--ct-accent-soft);color:var(--ct-accent-text);box-shadow:none;padding:4px 6px;font-size:11px;font-weight:700;min-width:0;flex:none}
/* "Chua cau hinh" rong ~90px > o gia 86px (bang co dinh cot) => chu tran khoi vien
   pill. Placeholder khong can vien: bo vien/padding ngang, chu muted nhe hon. */
.tokenMultiplierBadge.is-muted{border-color:transparent;background:transparent;color:var(--ct-muted);padding-left:0;padding-right:0;min-width:0;font-weight:600}

/* 11. Huong dan ket noi: khung "Sinh lenh cai dat" (navy + vien tim xanh) */
.toolInstallPanel{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important;border-radius:8px!important;box-shadow:none!important}
.toolInstallHero,.toolInstallGuide,.toolCompactBlock{background:var(--ct-panel)!important;border-color:var(--ct-line-soft)!important;border-radius:8px!important}
.toolInstallHero{color:var(--ct-text)!important}
.toolCommand pre{background:var(--ct-bg)!important;border-color:var(--ct-line)!important;border-radius:6px!important}
.toolCommand code,.toolCompactHint{color:var(--ct-accent-text)!important}
.toolInstallGuide ol,.toolInstallGuide li,.toolModelLabel{color:#c9d1d9!important}
.toolInstallLabel,.toolInstallOutputTitle,.toolCompactNote,.docConnectCard small{color:var(--ct-muted)!important}
.toolTerminalTitle{color:var(--ct-muted)!important;border-radius:6px!important}

/* 12. Con sot tong navy: khung server trang chu, toast, nhan bieu do usage */
.public-model-server-frame{background:var(--ct-panel)!important;background-image:none!important}
.public-model-brand-card{border-color:var(--ct-line)!important}
.public-model-brand-fallback{color:#24292f!important}
.requestToastEndpoint{color:var(--ct-muted)!important}
.requestToastTokens span{color:#c9d1d9!important}
.usageBarLabel b{color:#c9d1d9!important}
.usageBarLabel span{color:var(--ct-text)!important}
.customerModelBrandSummary{border-radius:8px!important}
.modelBrandIcon{color:var(--ct-text)}

/* 13. Chu phu viet CUNG ma xam-xanh cu (#9eb3ca/#91aac1/#a8bfd3...) thay vi
   var(--muted) => khong an theo bien --muted cua V318. Quy het ve --ct-muted.
   (.legalHero>p:first-child la eyebrow, dac thu cao hon nen van giu mau cam.) */
.legalHero p,.legalMeta,.legalFooter,.brand-showcase-copy,.public-model-catalog-heading>span,.public-model-full-name,.bankSetupGuide ol,.providerHealthSummary small,.comboEmpty p,.comboToolbar p,.customerDocList span,.customerModelTestTime,.subscriptionEmpty,.toolInstallSection p,.usageHero p,.usageHeroActions label,.usageLegend,.usagePager,.usageTrendCol small,.googleVerificationPanel small,.comboField small,.comboStrategies small,.comboMembersSection span,.activeSubscriptionItem small,.reauthBox p,.apiTestMetric small{color:var(--ct-muted)!important}
.usageDonut::after,.logBillingPlan{color:var(--ct-muted)!important}
/* Phan tu an (modal dang ky Google, lien ket Telegram, debug test model) */
.googleVerificationPanel,.telegramLinkCode{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important;border-radius:8px!important}
.authLegalLinks a{color:var(--ct-accent-text)!important}
.modelKeyAttemptsTitle{color:var(--ct-text)!important}
.modelTestDebugRow b{color:#c9d1d9!important}
/* Mock dashboard trang chu: nhan 200 xanh neon -> xanh ok cua theme */
.dashboard .ok{background:rgba(63,185,80,.15)!important;color:#56d364!important}
/* .doc-panel span (styles.css #9de9ff): KHONG !important de span co lop rieng van thang */
.doc-panel span{color:#c9d1d9}

/* 14. Trang thai canh bao / loi: MOT vang (--ct-warn, chu #e3b341) + MOT do
   (--ct-bad, chu #ff7b72) cho toan web. CSS cu viet CUNG 6-7 sac vang/do khac
   nhau (#ffd84d #ffb800 #ffe99a / #ff6b6b #ff8d8d #ffb0b0 #ffb4b4 #ffb8bd) =>
   cung 1 trang thai mang mau khac nhau giua cac trang/tab; V318 da quy
   .pill.toggleBtn.on / .uptimeBar.green / .apiTestScoreRing nhung sot .off /
   .yellow / .red / .error. KHONG doi (co chu dich): mau du lieu bieu do (cache
   vang .trendCache .legendCache .adminTrendCache .usageDonut .usageBarFill.cost),
   chu giai tip token (.tokenAnalysisTip .flowCache .tokenFlowTotal), nen do
   COMBO chet V290 (.comboDown .comboTestFail: chi quy vien). */
.brandLogo{filter:none!important}
.planBonusBadge,.doc-url-highlight span,.buyPlanQrCountdown,.depositQrCountdown,.buyPlanReference,.depositReferenceText,.telegramHandle,.testStatus.pending,.testStatus.warning,.subPlanSaveStatus.saving,.apiTestMetric.pending,.modelImportWarning,.adminComboWarning,.noticeHistoryTimeUnknown,.minChargeNotice b,.costMinBadge,.modelMinChargeTag,.modelMinChargeTag b,.dashboard .warn,.modelKeyAttempt.warning{color:#e3b341!important}
.buyPlanReference,.depositReferenceText,.testStatus.pending,.testStatus.warning,.subPlanSaveStatus.saving,.apiTestMetric.pending,.minChargeNotice,.modelMinChargeTag,.dashboard .warn,.modelKeyAttempt.warning{background:rgba(210,153,34,.12)!important;border-color:rgba(210,153,34,.4)!important}
.planBonusBadge{text-shadow:none!important}
.legacyPriceWarnInput{border-color:var(--ct-warn)!important;box-shadow:0 0 0 2px rgba(210,153,34,.22)!important;background:rgba(210,153,34,.06)!important}
.adminLiveStatus::before,.uptimeBar.yellow{background:var(--ct-warn)}
.toast.warn{border-color:rgba(210,153,34,.55);color:#e3b341}
.testStatus.error,.apiTestMetric.error,.apiTestScorePanel.error .apiTestScoreRing b,.apiTestRawError,.modelKeyAttempt.error,.logBillingWarn,.uptimeError,.adminLiveStatus.error,.adminComboMember.orphan,.adminComboMember.testFail,.adminComboDownPill,.noticeHistoryError,.modelDisabledBannerBody b,.priceDiscountTag span,.buyPlanError,.stickyLogsTable td:nth-last-child(2){color:#ff7b72!important}
.testStatus.error,.apiTestMetric.error,.apiTestReason.error,.apiTestRawError,.modelKeyAttempt.error,.subPlanSaveStatus.error,.adminComboMember.orphan,.adminComboMemberRow.orphan,.noticeHistoryError,.dashboardLoadError,.modelDisabledBanner{background:rgba(248,81,73,.1)!important;border-color:rgba(248,81,73,.45)!important}
.dashboardLoadHint{background:rgba(248,81,73,.06)!important;border-color:rgba(248,81,73,.34)!important}
.modelActiveBtn.error{background:rgba(248,81,73,.1)!important;color:#ff7b72!important}
.apiTestScorePanel.error,.modelActiveBtn.error,.adminComboMember.testFail,.adminComboMemberRow.testFail,.adminComboDownPill,.adminComboCard.comboDown,.adminComboCard.comboTestFail,.tntSecretInput[data-invalid-autofill="true"]{border-color:rgba(248,81,73,.5)!important}
.pill.toggleBtn.off{background:rgba(248,81,73,.14)!important;color:#ff7b72!important;border:1px solid rgba(248,81,73,.4)!important;box-shadow:none!important}
.apiTestScorePanel.error .apiTestScoreRing{background:conic-gradient(var(--ct-bad) calc(var(--score)*1%),rgba(255,255,255,.1) 0)}
.adminLiveStatus.error::before,.uptimeBar.red{background:var(--ct-bad)}
.toast.err{border-color:rgba(248,81,73,.55);color:#ff7b72}
/* Muc 3 chi quy .public-model-health.is-good; 3 trang thai con lai cung bo mau.
   Chip "? CHUA DO" / "~ UOC LUONG" (log token) la canh bao, khong phai mau du lieu. */
.public-model-health.is-warning,.tokenFlowCell .tokenFlowEstimateBadge{background:rgba(210,153,34,.12)!important;border-color:rgba(210,153,34,.4)!important;color:#e3b341!important}
.public-model-health.is-down{background:rgba(248,81,73,.1)!important;border-color:rgba(248,81,73,.45)!important;color:#ff7b72!important}
.public-model-health.is-untested{background:rgba(110,118,129,.12)!important;border-color:rgba(110,118,129,.4)!important;color:var(--ct-muted)!important}
.public-model-empty,.public-model-loading{color:var(--ct-muted)!important}
.public-model-empty.is-error{color:#ff7b72!important}
/* Bang gia admin dung lai class bang log (stickyLogsTable) => cot "dang tinh tien
   that" an mau hong cua cot "chi tiet loi" ben Logs. Gia la so lieu: chu thuong. */
.stickyLogsTable.pricingTable td:nth-last-child(2){color:var(--ct-text)!important}
/* Nut Dang xuat: khach hong #ffb8bd (#logoutBtn 1,1,1) vs admin xam (aside .danger
   0,1,1 thua .app aside button 0,1,2) => 1 kieu do theme o ca 2 cong. */
.app aside #logoutBtn,.app aside .danger{color:#ff7b72!important}
.app aside #logoutBtn:hover,.app aside .danger:hover{background:rgba(248,81,73,.12)!important;color:#ff7b72!important;border-color:transparent!important}

/* 15. Quet cascade TONG QUAT (V325-15: moi mau bao hoa KHONG thuoc bang mau theme)
   tren 6 trang, ke ca phan tu do JS ve (combo editor, goi dang ky, nhap model,
   popup duyet/thanh toan, menu mobile trang chu): ~180 rule navy/cyan/vang/do/
   xanh neon cu con thang. Quy theo vai tro: chu sang -> --ct-text / #c9d1d9, chu phu
   -> --ct-muted, khung -> --ct-line / panel, nhan manh -> cam accent, trang thai ->
   MOT do / MOT vang / MOT xanh ok (nhu muc 14). Viet theo CLASS (khong dua vao tag)
   de dung ca khi JS doi the. KHONG doi: mau du lieu bieu do (Input/Output/Cache),
   mau hang (icon model, Telegram, Zalo), nen do COMBO chet V290. */
/* Chu sang ngai xanh -> chu theme */
#testApiKeyResult h4,.adminComboEditor .comboField>span,.adminComboMembersSection h3,.comboField>span,.comboStrategies legend,.uptimeMetrics b,.requestToastMessage,.buyPlanPayMeta b,.bankPayMeta b{color:var(--ct-text)!important}
.adminComboMember,.buyPlanInfo span,.buyPlanSteps,.buyPlanPayMeta span,.bankPayMeta span,.topupNotice p,.approvalPopup p,.notificationItemBody p,.activeSubscriptionItem span,.usageBarLabel,.comboSwitch,.comboMemberToggle,.dashboardLoadError span,.dashboardLoadHint,.bankWebhookStatus pre,.topupNoticeOverlay .noticeActions button[data-notice-off-today]{color:#c9d1d9!important}
/* Khong !important: pre / small co lop rieng (dac thu cao hon) van thang */
pre{color:#c9d1d9}
.testStatus small{color:#c9d1d9}
/* Chu phu xam-xanh -> --ct-muted */
.uptimeMetrics small,.uptimeLegend,.uptimeSources,.modelImportAttempt small,.comboDragHandle,.comboCardFoot,.comboEditorMember small,.customerModelLastTest small,.dashboardLoadError small,.subscriptionPlanCard p,.subscriptionPlanMeta,.modelDisabledBannerTime,.notificationItemBody small,.comboModelSearchStatus{color:var(--ct-muted)!important}
/* Khung / vien cyan-navy -> vien + nen theme */
.buyPlanQrBox{background:var(--ct-panel2)!important;background-image:none!important;border-color:var(--ct-line)!important}
.buyPlanInfo,.bankQrBox,.uptimeChartPanel,.adminComboEditor,.comboEditor,.comboCard,.comboEditorMember,.modelImportProvider{border-color:var(--ct-line)!important}
.subPlanRow{border-color:var(--ct-line-soft)!important}
.public-model-brand-head{border-bottom-color:var(--ct-line-soft)!important}
.comboEditorActions{background:var(--ct-panel)!important}
@media (max-width:900px){.nav.open .navlinks,.nav.open .nav-actions{background:var(--ct-panel)}}
.subPlanSaveStatus{background:var(--ct-panel2);border-color:var(--ct-line);color:var(--ct-muted)}
.subPlanSelectedCount{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important;color:var(--ct-accent-text)!important}
.modelImportDetailSummary{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important;color:var(--ct-accent-text)!important}
.modelImportDetailSummary:hover{background:#262c36!important}
.comboStrategyChoice{background:var(--ct-panel2)!important;border-color:var(--ct-line)!important}
.comboStrategyChoice:has(input:checked){background:var(--ct-accent-soft)!important;border-color:var(--ct-accent)!important;box-shadow:inset 0 0 0 1px rgba(217,119,87,.25)!important}
.comboModelSelect[size]:not([size="1"]){border-color:var(--ct-line)!important;box-shadow:none!important}
.comboModelSelect[size]:not([size="1"]) option:checked,.subPlanModelSelect option:checked{background:linear-gradient(0deg,var(--ct-accent-btn),var(--ct-accent-btn))!important;color:#fff!important}
.comboMemberBadge{background:var(--ct-panel2);border-color:var(--ct-line);color:#c9d1d9}
.notificationItem.unread{background:var(--ct-accent-soft)!important;border-color:rgba(217,119,87,.45)!important}
/* Nhan manh (chip chien luoc, loai goi, gia goi, keo-tha) -> cam accent */
.comboStrategy,.subscriptionPlanType{background:var(--ct-accent-soft)!important;border-color:rgba(217,119,87,.4)!important;color:var(--ct-accent-text)!important}
.subscriptionPlanHead strong{color:var(--ct-accent-text)!important}
.comboEditorMember.is-drop-target,.adminComboEditorMember.is-drop-target{border-color:var(--ct-accent)!important;box-shadow:0 0 0 2px rgba(217,119,87,.28)!important}
.approvalIcon{background:var(--ct-accent-soft)!important;background-image:none!important;color:var(--ct-accent-text)!important}
/* Nut: cung kieu nut phu cua theme (rule `button` chung chi an khi phan tu la <button>) */
.tokenAnalysisBtn,.toolTopTab,.adminComboTestBtn.is-loading,.adminComboMemberTestBtn.is-loading{background:var(--tnt-action)!important;border-color:var(--tnt-action-border)!important;color:var(--tnt-action-text)!important}
.tokenAnalysisBtn:hover,.adminUsageRangeBtn:hover:not(.is-active){background:var(--tnt-action-hover)!important;border-color:#8b949e!important;color:#f0f6fc!important}
.toolSelect{background:var(--ct-field)!important;border-color:var(--ct-line)!important}
.modelTestActionBtn.is-loading{border-color:var(--ct-accent)!important;box-shadow:0 0 0 3px rgba(217,119,87,.12)!important}
.modelCopyBtn:focus-visible,.modelTestBtn:focus-visible,.pill.toggleBtn:focus-visible{outline:2px solid var(--ct-accent)!important;outline-offset:2px}
.comboToggle,.modelTestParityOption .modelTestParityCheckbox{accent-color:var(--ct-accent)}
.topupNoticeOverlay .noticeActions button[data-notice-dismiss]{box-shadow:none!important}
/* Nut Telegram / Zalo trong popup duyet: kieu nut phu nhu nut noi (muc 6), icon giu mau hang */
.telegramBtn,.approvalPopup .zaloBtn{background:var(--ct-panel2)!important;background-image:none!important;border:1px solid var(--ct-line)!important;color:var(--ct-text)!important;box-shadow:none!important}
.telegramBtn:hover,.approvalPopup .zaloBtn:hover{background:#262c36!important;border-color:var(--ct-accent)!important}
/* Nut doi chieu cache (V262: mau rieng khac nut Test) -> vang theme */
.modelCacheParityBtn{background:rgba(210,153,34,.12)!important;border:1px solid rgba(210,153,34,.45)!important;color:#e3b341!important}
.modelCacheParityBtn:hover:not(:disabled),.modelCacheParityBtn.is-loading{background:rgba(210,153,34,.2)!important;color:#e3b341!important}
.modelCacheParityBtn.is-loading{border-color:rgba(210,153,34,.7)!important;box-shadow:0 0 0 3px rgba(210,153,34,.12)!important}
/* Trang thai: MOT do / MOT vang / MOT xanh ok */
.apiTestReason.error,.apiTestRawError code,.providerHealthError,.modelImportAttempt.fail small,.subPlanSaveStatus.error,.comboMemberTestStatus.error,.customerModelLastTest.error b,.dashboardLoadError b,.subscriptionConvertError,.priceDiscountEditor summary.is-active{color:#ff7b72!important}
.modelImportProvider.fail,.customerModelLastTest.error,.comboCard.comboDown{border-color:rgba(248,81,73,.5)!important}
.comboMemberTestStatus.testing,.customerModelLastTest.testing b,.comboWarning,.toolInstallWarn,.public-model-price-new{color:#e3b341!important}
.customerModelLastTest.testing{border-color:rgba(210,153,34,.4)!important}
.comboMemberBadge.orphan{background:rgba(210,153,34,.12);border-color:rgba(210,153,34,.4);color:#e3b341}
.modelImportAttempt.pass small,.modelImportPassSummary small,.comboMemberTestStatus.success,.customerModelLastTest.success b,.buyPlanSuccess{color:#56d364!important}
.modelImportProvider.pass,.customerModelLastTest.success,.telegramLinkStatus[data-linked="true"]{border-color:rgba(63,185,80,.4)!important}
/* Khuyen mai (layout-balance nap SAU theme => !important): giam gia = do, gia moi = vang */
.priceDiscountTag{background:rgba(248,81,73,.1)!important;border-color:rgba(248,81,73,.45)!important}
.priceDiscountTag b,.public-model-discount-tag{background:rgba(248,81,73,.2)!important;color:#ff7b72!important}
.tokenMultiplierBadge.priceDiscountNew{background:rgba(210,153,34,.12)!important;border-color:rgba(210,153,34,.5)!important;color:#e3b341!important}
/* 16. Bang "Usage gan day" (#logs, tab Tong quan khach): 8 cot nowrap rong ~870px ma khung khong
   cuon => ca trang cuon ngang o 375px (co tu truoc V325). Cuon trong khung giong #providers. */
#logs{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain}
/* 17. Giu chi bao TRANG THAI ma rule !important o tren lam phang (review doc lap lan 2):
   - vien PASS/FAIL/DANG TEST thanh vien COMBO (V288 R3, customer.css khong !important) bi
     `.comboEditorMember{border-color}` muc 15 de => 1 bo mau ok/warn/bad cua theme;
   - huy hieu thanh vien COMBO PASS/FAIL/DANG TEST: mau xanh/vang/do cu -> theme (nen do
     FAIL giu V290);
   - select danh sach COMBO (size>1): rule muc 15 (0,3,0) de `select:focus` (0,1,1) => mat focus;
   - noi dung chuyen khoan + dem nguoc QR: `.bankPayMeta span` / `.buyPlanPayMeta span` (0,1,1)
     de rule vang muc 14 (0,1,0) => chu trang (co tu truoc V325);
   - hover: nut .ghost dang <a> (trang chu "XEM CAC MODEL") + the model trang chu khong con
     phan hoi hover (co tu V318). */
.comboEditorMember.comboMemberTestFail{border-color:rgba(248,81,73,.5)!important}
.comboEditorMember.comboMemberTestPass{border-color:rgba(63,185,80,.4)!important}
.comboEditorMember.comboMemberTestTesting{border-color:rgba(210,153,34,.4)!important}
.comboMemberBadge.comboMemberTestFail{border-color:rgba(248,81,73,.5);color:#ff7b72;background:rgba(180,35,58,.22)}
.comboMemberBadge.comboMemberTestPass{border-color:rgba(63,185,80,.4);color:#56d364;background:rgba(63,185,80,.14)}
.comboMemberBadge.comboMemberTestTesting{border-color:rgba(210,153,34,.4);color:#e3b341;background:rgba(210,153,34,.12)}
.comboModelSelect[size]:not([size="1"]):focus{border-color:var(--ct-accent)!important;box-shadow:0 0 0 3px var(--ct-accent-soft)!important}
.bankPayMeta .depositReferenceText,.bankPayMeta .depositQrCountdown,.buyPlanPayMeta .buyPlanReference,.buyPlanPayMeta .buyPlanQrCountdown{color:#e3b341!important}
.ghost:hover,.btn.ghost:hover{background:var(--tnt-action-hover)!important;border-color:#8b949e!important;color:#f0f6fc!important}
.public-model-item:hover{background:#262c36!important;border-color:var(--ct-line)!important}
/* Nen / bong navy RAT TOI (do sang <10% nhung lech xanh ro, chenh kenh >=20) ma V325-15 cu
   bo qua: the tai khoan, trang thai Telegram, bieu do uptime, thanh vien COMBO (nen do FAIL
   V288 dac thu cao hon van thang), khung mua goi, bong the hang model. Khoi ma ket noi dung
   --customerUnifiedField rieng (#080b10) => cung nen o nhap --ct-field nhu .readonlyBox. */
.accountInfoItem,.telegramLinkStatus,.uptimeChartPanel,.comboEditorMember{background:var(--ct-panel2)}
.buyPlanInfo{background:var(--ct-panel2)!important}
.docConnectCard code{background:var(--ct-field)!important}
.public-model-brand-card{box-shadow:none!important}
/* 18. Nut Test theo TRANG THAI (review doc lap lan 3, V325-18 mo rong bien the [data-*]):
   - .modelTestBtn[data-status] (cong khach) bi rule nut trung tinh !important (black-ui/muc nut)
     lam phang tu truoc V325 => dang test/thanh cong/loi trong giong het nut thuong;
   - nut Test COMBO: JS gan class .testing/.success/.error nhung CSS cu viet [data-status]
     => mau trang thai chua bao gio hien. Dung 1 bo mau warn/ok/bad cua theme.
   DANG TEST viet CUOI (review 4 MED-1): bam Test lai, customer.js chi dat data-status="testing"
   va giu class .success/.error cu => cung (0,2,0)!important thi rule sau thang. */
.modelTestBtn[data-status="success"],.comboTestBtn.success,.comboTestBtn[data-status="success"]{border-color:rgba(63,185,80,.4)!important;background:rgba(63,185,80,.14)!important;color:#56d364!important}
.modelTestBtn[data-status="error"],.comboTestBtn.error,.comboTestBtn[data-status="error"]{border-color:rgba(248,81,73,.5)!important;background:rgba(248,81,73,.12)!important;color:#ff7b72!important}
.modelTestBtn[data-status="testing"],.comboTestBtn.testing,.comboTestBtn[data-status="testing"]{border-color:rgba(210,153,34,.4)!important;background:rgba(210,153,34,.12)!important;color:#e3b341!important}

/* ===== V327-ONE-FONT: 1 font chu DUY NHAT (Inter) cho TOAN BO web =====
   Do bang Edge (CSS.getPlatformFontsForNode, 31 trang/tab): truoc V327 chu duoc ve
   bang Inter + JetBrains Mono (eyebrow, tieu de cot, pill, so lieu, code, o key)
   + Consolas he thong (admin.css `ui-monospace,Consolas,monospace`: ma request
   Logs, nhan CHUA DU GIA) + system-ui (banner JS gan style inline).
   - `*` + pseudo !important: thang moi khai bao font-family khong !important o
     CSS cu va style inline do JS gan (author !important > inline thuong).
   - Moi pseudo 1 rule rieng: selector la trong danh sach lam trinh duyet cu bo
     ca rule.
   - So/ma truoc day mono giu chu so deu cot (tabular-nums). Inter tu host khong
     co slashed-zero (do pixel) nen khong dung.
   - Ky tu Inter subset khong co (mui ten, emoji, ky hieu) van muon font he thong
     de ve - chi glyph do, chu van la Inter. */
*,*::before,*::after{font-family:var(--ct-sans)!important}
::placeholder{font-family:var(--ct-sans)!important}
::marker{font-family:var(--ct-sans)!important}
code,pre,kbd,samp,.copyLine,.readonlyBox,.tntSecretInput,.key-box,.doc-url-highlight,.terminal-card,.code-card,.modelTestDebug,.depositReferenceText,.buyPlanReference,th,.pill,#modelsTable td input,.section-title>p,.legalHero>p:first-child,.eyebrow{font-variant-numeric:tabular-nums}
