/*
 * 13.78.45 — Institutional System Surface Convergence.
 * One maintained presentation contract for Giới thiệu, Liên hệ and Trust/Privacy.
 * Help is owned end-to-end by Core and is not restyled or duplicated here.
 * SURFACE RULE: the page/stage is structural gray; readable cards remain white.
 * Do not make .dhvx-site-stage or .dhvx-info-main white again.
 */
body.dhv-system-info-page {
  --dhvx-info-bg: var(--dhvx-platform-stage, #f3f4f5);
  --dhvx-info-surface: var(--dhvx-platform-content, #fff);
  --dhvx-info-soft: var(--dhvx-platform-content-soft, #f6f7f8);
  --dhvx-info-line: var(--dhvx-platform-border, #e6e7e9);
  --dhvx-info-line-strong: var(--dhvx-platform-border-strong, #d9dde2);
  --dhvx-info-ink: var(--dhvx-text, #171717);
  --dhvx-info-text: var(--dhvx-text-secondary, #5c6168);
  --dhvx-info-muted: var(--dhvx-text-muted, #7c828a);
  --dhvx-info-red: #d82831;
  --dhvx-info-red-soft: var(--dhvx-platform-content-soft, #f6f7f8);
  --dhvx-info-blue: #6b7077;
  --dhvx-info-blue-soft: #f6f7f8;
  --dhvx-info-teal: #6b7077;
  --dhvx-info-teal-soft: #f6f7f8;
  --dhvx-info-violet: #6b7077;
  --dhvx-info-violet-soft: #f6f7f8;
  --dhvx-info-radius: var(--dhvx-radius-card, 14px);
  background: var(--dhvx-info-bg) !important;
}
body.dhv-system-info-page .dhvx-site-stage { background:var(--dhvx-info-bg) !important; }
body.dhv-system-info-page .dhvx-site-footer { background:var(--dhvx-info-bg) !important; }
body.dhv-system-info-page .dhvx-left,
body.dhv-system-info-page .dhvx-left__inner { background:transparent !important; }

/* Align System pages to the exact 680px public content frame used by Feed. */
@media (min-width:1300px) {
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat {
    width:min(calc(100% - 32px),1364px) !important;
    max-width:1364px !important;
    grid-template-columns:292px 680px 320px !important;
    column-gap:24px !important;
    align-items:start;
  }
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-left { grid-column:1; }
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-site-stage {
    grid-column:2;
    width:680px !important;
    max-width:680px !important;
    min-width:0;
    border-left:0 !important;
    border-right:0 !important;
  }
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-site-footer {
    grid-column:2 !important;
    width:680px !important;
    max-width:680px !important;
    padding-inline:22px !important;
    border-color:var(--dhvx-info-line) !important;
  }
}
@media (min-width:1120px) and (max-width:1299px) {
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat {
    display:block !important;
    width:680px !important;
    max-width:calc(100% - 32px) !important;
    margin-inline:auto !important;
  }
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-left { display:none !important; }
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-site-stage,
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-site-footer { width:100% !important; max-width:680px !important; margin-inline:auto !important; }
}
@media (min-width:768px) and (max-width:1119px) {
  body.dhv-system-info-page .dhvx-site-app.is-system.is-core-system-compat > .dhvx-site-stage { width:min(100%,680px) !important; max-width:680px !important; margin-inline:auto !important; }
}

.dhvx-info-main { width:100%; max-width:none; min-width:0; margin:0; padding:0; background:transparent; color:var(--dhvx-info-text); font-family:var(--dhv-sans); }
.dhvx-info-page { width:100%; min-width:0; margin:0; padding:14px 10px 28px; box-sizing:border-box; }
.dhvx-info-page *, .dhvx-info-page *::before, .dhvx-info-page *::after { box-sizing:border-box; }
.dhvx-info-page a { text-underline-offset:3px; }

.dhvx-info-hero,
.dhvx-info-card,
.dhvx-info-switcher {
  width:100%;
  min-width:0;
  border:1px solid var(--dhvx-info-line);
  border-radius:var(--dhvx-info-radius);
  background:var(--dhvx-info-surface);
  box-shadow:var(--dhvx-shadow-card, 0 1px 2px rgba(17,24,39,.025));
}
.dhvx-info-hero { position:relative; padding:28px 26px 24px; overflow:hidden; }
.dhvx-info-hero::after { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:var(--dhvx-info-red); }
.dhvx-info-card { margin-top:12px; padding:24px 24px 22px; }
.dhvx-info-switcher { margin-bottom:12px; padding:18px; }

.dhvx-info-icon,
.dhvx-info-tile__icon,
.dhvx-info-route__icon {
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  color:var(--dhvx-info-red);
  background:var(--dhvx-info-red-soft);
  border:1px solid color-mix(in srgb,var(--dhvx-info-red) 16%,transparent);
}
.dhvx-info-icon { width:48px; height:48px; margin-bottom:18px; border-radius:14px; }
.dhvx-info-icon.is-blue,.dhvx-info-tile__icon.is-blue { color:var(--dhvx-info-blue); background:var(--dhvx-info-blue-soft); border-color:color-mix(in srgb,var(--dhvx-info-blue) 16%,transparent); }
.dhvx-info-icon.is-teal,.dhvx-info-tile__icon.is-teal { color:var(--dhvx-info-teal); background:var(--dhvx-info-teal-soft); border-color:color-mix(in srgb,var(--dhvx-info-teal) 16%,transparent); }
.dhvx-info-icon.is-violet,.dhvx-info-tile__icon.is-violet { color:var(--dhvx-info-violet); background:var(--dhvx-info-violet-soft); border-color:color-mix(in srgb,var(--dhvx-info-violet) 16%,transparent); }

.dhvx-info-kicker { display:block; margin:0 0 7px; color:var(--dhvx-info-red); font-size:11px; line-height:1.3; font-weight:800; letter-spacing:.085em; text-transform:uppercase; }
.dhvx-info-hero h1 { max-width:18ch; margin:0; color:var(--dhvx-info-ink); font-family:var(--dhv-serif); font-size:clamp(34px,4.4vw,46px); line-height:1.06; font-weight:700; letter-spacing:-.032em; text-wrap:balance; overflow-wrap:anywhere; }
.dhvx-info-deck { max-width:58ch; margin:15px 0 0; color:var(--dhvx-info-text); font-size:17px; line-height:1.62; text-wrap:pretty; }
.dhvx-info-meta-strip { display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; }
.dhvx-info-meta-strip span { display:inline-flex; align-items:center; gap:5px; min-height:31px; padding:6px 10px; border:1px solid var(--dhvx-info-line); border-radius:999px; background:var(--dhvx-info-soft); color:var(--dhvx-info-muted); font-size:12px; line-height:1.2; }
.dhvx-info-meta-strip strong { color:var(--dhvx-info-ink); font-weight:800; }

.dhvx-info-section-head { max-width:590px; margin:0 0 18px; }
.dhvx-info-section-head h2,
.dhvx-info-ending h2,
.dhvx-trust-section h2 { margin:0; color:var(--dhvx-info-ink); font-family:var(--dhv-serif); font-size:clamp(25px,3.2vw,31px); line-height:1.13; font-weight:700; letter-spacing:-.022em; text-wrap:balance; }
.dhvx-info-section-head > p { margin:9px 0 0; color:var(--dhvx-info-muted); font-size:15px; line-height:1.58; }
.dhvx-info-prose { color:var(--dhvx-info-text); font-size:16px; line-height:1.7; }
.dhvx-info-prose p { margin:0; }
.dhvx-info-prose p + p { margin-top:12px; }
.dhvx-info-prose .dhv-article-body { max-width:none !important; margin:0 !important; padding:0 !important; font-size:inherit !important; line-height:inherit !important; }
.dhvx-info-prose .dhv-article-body > :first-child { margin-top:0; }
.dhvx-info-prose .dhv-article-body > :last-child { margin-bottom:0; }

.dhvx-info-callout { margin-top:17px; padding:14px 16px; border-left:3px solid var(--dhvx-info-red); border-radius:0 9px 9px 0; background:var(--dhvx-info-red-soft); color:var(--dhvx-info-ink); font-size:14px; line-height:1.55; font-weight:700; }
.dhvx-info-grid { display:grid; min-width:0; gap:10px; }
.dhvx-info-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dhvx-info-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.dhvx-info-tile { position:relative; min-width:0; padding:16px; border:1px solid var(--dhvx-info-line); border-radius:10px; background:var(--dhvx-info-soft); color:inherit; text-decoration:none; }
.dhvx-info-tile.is-link { transition:border-color .14s ease,background .14s ease,transform .14s ease; }
.dhvx-info-tile.is-link:hover { border-color:var(--dhvx-info-line-strong); background:#fff; transform:translateY(-1px); }
.dhvx-info-tile h3 { margin:0 0 6px; color:var(--dhvx-info-ink); font-size:16px; line-height:1.32; }
.dhvx-info-tile p { margin:0; color:var(--dhvx-info-muted); font-size:13.5px; line-height:1.55; }
.dhvx-info-tile > strong { display:block; margin-top:12px; color:var(--dhvx-info-red); font-size:12.5px; }
.dhvx-info-index { display:block; margin-bottom:12px; color:var(--dhvx-info-red); font-size:11px; font-weight:800; letter-spacing:.07em; }
.dhvx-info-tile__icon { width:38px; height:38px; margin-bottom:13px; border-radius:11px; }

.dhvx-info-timeline { border-top:1px solid var(--dhvx-info-line); }
.dhvx-info-timeline-row { display:grid; grid-template-columns:94px minmax(0,1fr); gap:16px; padding:16px 0; border-bottom:1px solid var(--dhvx-info-line); }
.dhvx-info-timeline-row:last-child { border-bottom:0; padding-bottom:0; }
.dhvx-info-year { color:var(--dhvx-info-red); font-family:var(--dhv-serif); font-size:20px; line-height:1.2; font-weight:700; }
.dhvx-info-timeline-row h3 { margin:0 0 5px; color:var(--dhvx-info-ink); font-size:16px; line-height:1.35; }
.dhvx-info-timeline-row p { margin:0; color:var(--dhvx-info-muted); font-size:14px; line-height:1.58; }

.dhvx-info-principles { display:grid; gap:0; margin:0 0 18px; padding:0; list-style:none; border-top:1px solid var(--dhvx-info-line); }
.dhvx-info-principles li { position:relative; padding:11px 0 11px 20px; border-bottom:1px solid var(--dhvx-info-line); color:var(--dhvx-info-text); font-size:14px; line-height:1.52; }
.dhvx-info-principles li::before { content:""; position:absolute; left:2px; top:18px; width:6px; height:6px; border-radius:50%; background:var(--dhvx-info-red); }
.dhvx-info-steps { margin:0; padding:0; list-style:none; border-top:1px solid var(--dhvx-info-line); }
.dhvx-info-steps li { display:grid; grid-template-columns:36px minmax(0,1fr); gap:12px; padding:14px 0; border-bottom:1px solid var(--dhvx-info-line); }
.dhvx-info-steps li:last-child { border-bottom:0; padding-bottom:0; }
.dhvx-info-steps li > span { padding-top:2px; color:var(--dhvx-info-red); font-size:11px; font-weight:800; }
.dhvx-info-steps h3 { margin:0 0 5px; color:var(--dhvx-info-ink); font-size:16px; }
.dhvx-info-steps p { margin:0; color:var(--dhvx-info-muted); font-size:14px; line-height:1.55; }

.dhvx-info-stack { display:grid; gap:8px; }
.dhvx-info-row { min-width:0; padding:14px 15px; border:1px solid var(--dhvx-info-line); border-radius:10px; background:var(--dhvx-info-soft); }
.dhvx-info-row strong { display:block; margin-bottom:4px; color:var(--dhvx-info-ink); font-size:14px; }
.dhvx-info-row p { margin:0; color:var(--dhvx-info-muted); font-size:13.5px; line-height:1.55; }
.dhvx-info-row.is-emphasis { background:#fff; }
.dhvx-info-row small { display:block; margin-bottom:4px; color:var(--dhvx-info-muted); font-size:11px; text-transform:uppercase; letter-spacing:.06em; }

.dhvx-info-ending { background:linear-gradient(145deg,#fff,var(--dhvx-info-red-soft)); }
.dhvx-info-ending > p { max-width:58ch; margin:10px 0 0; color:var(--dhvx-info-text); font-size:15px; line-height:1.62; }
.dhvx-info-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.dhvx-info-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:9px 14px; border:1px solid var(--dhvx-info-line-strong); border-radius:9px; background:#fff; color:var(--dhvx-info-ink); font-size:13.5px; line-height:1.2; font-weight:800; text-decoration:none; }
.dhvx-info-button:hover { border-color:#c5c9cf; background:var(--dhvx-info-soft); }
.dhvx-info-button.is-primary { border-color:var(--dhvx-info-red); background:var(--dhvx-info-red); color:#fff; }
.dhvx-info-button.is-primary:hover { filter:brightness(.97); }
.dhvx-info-button:focus-visible,.dhvx-info-route:focus-visible,.dhvx-info-switcher a:focus-visible,.dhvx-trust-toc a:focus-visible { outline:3px solid color-mix(in srgb,var(--dhvx-info-red) 22%,transparent); outline-offset:3px; }

/* Contact router. */
.dhvx-info-route-list { display:grid; gap:8px; }
.dhvx-info-route { display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:12px; align-items:center; min-width:0; padding:13px 14px; border:1px solid var(--dhvx-info-line); border-radius:10px; background:#fff; color:inherit; text-decoration:none; }
a.dhvx-info-route:hover { border-color:var(--dhvx-info-line-strong); background:var(--dhvx-info-soft); }
.dhvx-info-route__icon { width:38px; height:38px; border-radius:11px; color:var(--dhvx-info-blue); background:var(--dhvx-info-blue-soft); border-color:color-mix(in srgb,var(--dhvx-info-blue) 15%,transparent); }
.dhvx-info-route__copy { min-width:0; }
.dhvx-info-route__copy strong { display:block; color:var(--dhvx-info-ink); font-size:15px; line-height:1.32; overflow-wrap:anywhere; }
.dhvx-info-route__copy small { display:block; margin-top:4px; color:var(--dhvx-info-muted); font-size:13px; line-height:1.48; overflow-wrap:anywhere; }
.dhvx-info-route__cta,.dhvx-info-route__note { max-width:110px; color:var(--dhvx-info-red); font-size:12px; line-height:1.35; font-weight:800; text-align:right; }
.dhvx-info-route__note { color:var(--dhvx-info-muted); }
.dhvx-contact-report .dhvx-info-row { display:grid; gap:12px; }

/* Trust / Privacy. */
.dhvx-info-switcher > div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin-bottom:12px; }
.dhvx-info-switcher > div:first-child .dhvx-info-kicker { margin:0; }
.dhvx-info-switcher > div:first-child small { color:var(--dhvx-info-muted); font-size:12px; }
.dhvx-info-switcher__links { display:flex; gap:6px; overflow-x:auto; padding-bottom:2px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.dhvx-info-switcher__links::-webkit-scrollbar { display:none; }
.dhvx-info-switcher__links a { flex:0 0 auto; display:inline-flex; align-items:center; min-height:36px; padding:7px 11px; border:1px solid var(--dhvx-info-line); border-radius:999px; background:#fff; color:var(--dhvx-info-text); font-size:12px; line-height:1.2; font-weight:800; text-decoration:none; }
.dhvx-info-switcher__links a.is-current { border-color:var(--dhvx-info-red); background:var(--dhvx-info-red-soft); color:var(--dhvx-info-red); }
.dhvx-trust-toc ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:0; padding:0; list-style:none; }
.dhvx-trust-toc li { min-width:0; }
.dhvx-trust-toc a { display:grid; grid-template-columns:28px minmax(0,1fr); gap:8px; align-items:start; min-height:42px; padding:9px 10px; border:1px solid var(--dhvx-info-line); border-radius:9px; background:var(--dhvx-info-soft); color:var(--dhvx-info-text); font-size:12.5px; line-height:1.4; text-decoration:none; overflow-wrap:anywhere; }
.dhvx-trust-toc a:hover { background:#fff; border-color:var(--dhvx-info-line-strong); }
.dhvx-trust-toc a span { color:var(--dhvx-info-red); font-size:10px; font-weight:800; letter-spacing:.05em; }
.dhvx-trust-sections { display:grid; gap:12px; margin-top:12px; }
.dhvx-trust-section { display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; scroll-margin-top:96px; }
.dhvx-trust-section .dhvx-info-index { margin:5px 0 0; }
.dhvx-trust-section h2 { font-size:24px; }
.dhvx-trust-section p { margin:9px 0 0; color:var(--dhvx-info-text); font-size:16px; line-height:1.72; }

/* Dark mode follows the established shell while keeping readable system cards. */
html[data-theme="dark"] body.dhv-system-info-page {
  --dhvx-info-bg:#111315;
  --dhvx-info-surface:#17191c;
  --dhvx-info-soft:#1d2024;
  --dhvx-info-line:#2b2f34;
  --dhvx-info-line-strong:#3a3f45;
  --dhvx-info-ink:#f2f3f5;
  --dhvx-info-text:#d0d4d9;
  --dhvx-info-muted:#9ca3ad;
  --dhvx-info-red-soft:#171717;
  --dhvx-info-blue-soft: #f6f7f8;
  --dhvx-info-teal-soft: #f6f7f8;
  --dhvx-info-violet-soft: #f6f7f8;
  background:var(--dhvx-info-bg)!important;
}
html[data-theme="dark"] body.dhv-system-info-page .dhvx-site-stage,
html[data-theme="dark"] body.dhv-system-info-page .dhvx-site-footer { background:var(--dhvx-info-bg)!important; }
html[data-theme="dark"] .dhvx-info-main { background:transparent!important; }
html[data-theme="dark"] .dhvx-info-button,
html[data-theme="dark"] .dhvx-info-route,
html[data-theme="dark"] .dhvx-info-switcher__links a { background:var(--dhvx-info-surface); }
html[data-theme="dark"] .dhvx-info-ending { background:linear-gradient(145deg,var(--dhvx-info-surface),var(--dhvx-info-red-soft)); }

@media (max-width:760px) {
  .dhvx-info-page { padding:10px 8px 22px; }
  .dhvx-info-hero { padding:24px 20px 21px; }
  .dhvx-info-card { margin-top:10px; padding:20px 18px; }
  .dhvx-info-switcher { margin:0 8px 10px; width:calc(100% - 16px); padding:15px 12px; }
  .dhvx-info-hero h1 { font-size:clamp(31px,9vw,39px); }
  .dhvx-info-deck { font-size:16px; line-height:1.6; }
  .dhvx-info-grid--3 { grid-template-columns:1fr; }
  .dhvx-info-grid--2 { grid-template-columns:1fr; }
  .dhvx-trust-toc ol { grid-template-columns:1fr; }
  .dhvx-info-route { grid-template-columns:38px minmax(0,1fr); }
  .dhvx-info-route__cta,.dhvx-info-route__note { grid-column:2; max-width:none; text-align:left; }
  .dhvx-info-switcher > div:first-child { display:block; }
  .dhvx-info-switcher > div:first-child small { display:block; margin-top:4px; line-height:1.45; }
}
@media (max-width:520px) {
  .dhvx-info-page { padding:8px 6px 18px; }
  .dhvx-info-hero,.dhvx-info-card { border-radius:10px; }
  .dhvx-info-hero { padding:22px 17px 20px; }
  .dhvx-info-card { padding:19px 16px; }
  .dhvx-info-icon { width:44px; height:44px; margin-bottom:15px; border-radius:13px; }
  .dhvx-info-hero h1 { font-size:clamp(29px,9.5vw,36px); }
  .dhvx-info-section-head h2,.dhvx-info-ending h2,.dhvx-trust-section h2 { font-size:24px; }
  .dhvx-info-timeline-row { grid-template-columns:78px minmax(0,1fr); gap:10px; }
  .dhvx-info-year { font-size:18px; }
  .dhvx-trust-section { grid-template-columns:32px minmax(0,1fr); gap:8px; }
  .dhvx-info-actions { display:grid; grid-template-columns:1fr; }
  .dhvx-info-button { width:100%; min-height:46px; }
  .dhvx-info-meta-strip { gap:5px; }
  .dhvx-info-meta-strip span { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) {
  .dhvx-info-page * { scroll-behavior:auto!important; transition:none!important; }
}
