@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400&display=swap");

:root {
  --bg: #020b16;
  --bg2: #061426;
  --panel: #071a2e;
  --panel2: #0a2139;
  --line: rgba(88, 207, 255, .18);
  --text: #edf7ff;
  --muted: #9ab0c5;
  --cyan: #43d9ff;
  --blue: #5b8cff;
  --mint: #55edc7;
  --green: #7bea75;
  --amber: #ffbd4a;
  --violet: #9f7cff;
  --danger: #ff7185;
  --container: 1240px;
  --radius: 22px;
  --shadow: 0 30px 90px rgba(0, 0, 0, .38);
  --font: "Montserrat", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif
}

* {
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  background: var(--bg)
}

body {
  margin: 0;
  font-family: var(--font);
  color: var(--text);
  background:
    radial-gradient(circle at 84% 4%, rgba(49, 142, 255, .14), transparent 28%),
    radial-gradient(circle at 12% 30%, rgba(70, 231, 207, .08), transparent 30%), var(--bg);
  line-height: 1.58
}

a {
  color: inherit;
  text-decoration: none
}

img {
  max-width: 100%;
  height: auto
}

button,
input,
select,
textarea {
  font: inherit
}

.container {
  width: min(calc(100% - 40px), var(--container));
  margin: auto
}

.skip {
  position: absolute;
  left: -9999px
}

.skip:focus {
  left: 16px;
  top: 16px;
  z-index: 999;
  padding: 10px 14px;
  background: #fff;
  color: #000;
  border-radius: 8px
}

.notice {
  background: linear-gradient(90deg, #5a3300, #814b00);
  border-bottom: 1px solid rgba(255, 203, 95, .4);
  font-size: 12px;
  color: #fff3d0
}

.notice .container {
  padding: 9px 0;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: center;
  text-align: center
}

.notice b {
  color: #fff
}

.notice a {
  text-decoration: underline
}

.notice button {
  background: none;
  border: 0;
  color: #fff;
  font-size: 20px;
  cursor: pointer
}

.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(2, 12, 23, .88);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(85, 198, 255, .13)
}

.nav {
  height: 76px;
  display: flex;
  align-items: center;
  gap: 24px
}

.brand img {
  width: 220px;
  display: block
}

.navlinks {
  display: flex;
  gap: 22px;
  margin-left: auto;
  align-items: center
}

.navlinks a {
  font-size: 13px;
  font-weight: 750;
  color: #c7d8e7
}

.navlinks a:hover,
.navlinks a.active {
  color: var(--cyan)
}

.nav-actions {
  display: flex;
  align-items: center;
  gap: 10px
}

.lang {
  display: flex;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(8, 28, 49, .7)
}

.lang a {
  padding: 6px 9px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 900
}

.lang a.active {
  background: linear-gradient(135deg, var(--cyan), var(--mint));
  color: #02111e
}

.menu {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: transparent;
  color: #fff
}

.mobile-nav {
  display: none;
  padding: 8px 20px 20px;
  border-top: 1px solid var(--line)
}

.mobile-nav a {
  display: block;
  padding: 12px 0;
  color: #d4e2ef;
  border-bottom: 1px solid rgba(80, 190, 245, .08)
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 17px;
  border-radius: 12px;
  font-weight: 850;
  font-size: 13px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: .22s
}

.btn:hover {
  transform: translateY(-2px)
}

.btn.primary {
  background: linear-gradient(135deg, var(--cyan), var(--mint));
  color: #021420;
  box-shadow: 0 12px 36px rgba(64, 220, 224, .17);
  font-size: 14px;
}

.btn.ghost {
  border-color: rgba(81, 205, 255, .32);
  background: rgba(6, 29, 50, .62);
  color: #e9f8ff;
  font-size: 14px;
}

.btn.sm {
  padding: 9px 13px;
  font-size: 12px
}

.btn.block {
  width: 100%
}

.hero {
  position: relative;
  overflow: hidden;
  padding: 86px 0 62px;
  border-bottom: 1px solid rgba(85, 198, 255, .12);
  background-image: linear-gradient(rgba(65, 187, 255, .06) 1px, transparent 1px), linear-gradient(90deg, rgba(65, 187, 255, .06) 1px, transparent 1px);
  background-size: 42px 42px
}

.hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 15, 29, .98) 0%, rgba(3, 15, 29, .74) 54%, rgba(3, 15, 29, .35));
  pointer-events: none
}

.hero-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 58px;
  align-items: center
}

.eyebrow,
.kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--cyan);
  font-size: 16px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 900
}

.eyebrow i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 5px rgba(123, 234, 117, .12)
}

h1 {
  font-size: clamp(48px, 6vw, 82px);
  line-height: .98;
  letter-spacing: -.055em;
  margin: 22px 0 24px
}

.gradient {
  background: linear-gradient(100deg, var(--cyan), #77a2ff 58%, var(--mint));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent
}

.lead {
  font-size: 18px;
  color: #b7c8d8;
  max-width: 720px
}

.hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 30px 0
}

.proof-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  max-width: 650px
}

.proof-row div {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(4, 25, 44, .58);
  display: flex;
  gap: 10px;
  align-items: center
}

.proof-row b {
  color: var(--cyan);
  font-size: 11px
}

.proof-row span {
  font-size: 11px;
  color: #bdd0df
}

.hero-art {
  position: relative;
  padding: 26px;
  border: 1px solid rgba(67, 206, 255, .32);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(12, 53, 87, .85), rgba(3, 22, 40, .8));
  box-shadow: var(--shadow)
}

.hero-art img {
  display: block;
  border-radius: 20px
}

.float-card {
  position: absolute;
  border: 1px solid rgba(72, 204, 255, .3);
  background: rgba(4, 25, 44, .9);
  backdrop-filter: blur(10px);
  padding: 11px 14px;
  border-radius: 13px;
  box-shadow: 0 16px 35px rgba(0, 0, 0, .28)
}

.float-card small {
  display: block;
  color: #8ea7bc;
  font-size: 9px
}

.float-card b {
  font-size: 13px
}

.float-card.one {
  right: 14px;
  top: 16px
}

.float-card.two {
  left: 14px;
  bottom: 18px
}

.float-card.three {
  right: -12px;
  bottom: -18px;
  border-color: rgba(123, 234, 117, .35)
}

.float-card.three b {
  color: var(--green)
}

.trust-strip {
  background: #03111f;
  border-bottom: 1px solid rgba(70, 193, 255, .12)
}

.trust-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr))
}

.trust-item {
  padding: 18px 16px;
  border-right: 1px solid rgba(70, 193, 255, .12);
  display: flex;
  gap: 12px;
  align-items: center;
  min-width: 0
}

.trust-item:last-child {
  border-right: 0
}

.trust-icon {
  flex: 0 0 auto;
  width: auto;
  min-width: 38px;
  height: 38px;
  padding: 0 8px;
  border-radius: 11px;
  display: inline-grid;
  place-items: center;
  background: rgba(62, 213, 255, .08);
  color: var(--cyan);
  font-weight: 900;
  font-size: 12px;
  letter-spacing: .02em;
  line-height: 1;
  white-space: nowrap
}

.trust-item>div {
  min-width: 0;
  flex: 1 1 auto
}

.trust-item b {
  display: block;
  font-size: 14px;
  overflow-wrap: anywhere;
  word-break: break-word
}

.trust-item small {
  display: block;
  color: #7f98ae;
  font-size: 11px;
  overflow-wrap: anywhere;
  word-break: break-word
}

.section {
  padding: 96px 0
}

.section.tint {
  background: linear-gradient(180deg, rgba(7, 26, 46, .7), rgba(2, 11, 22, .94));
  border-block: 1px solid rgba(80, 191, 245, .08)
}

.section-head {
  max-width: min(100%, 1240px);
  margin-bottom: 38px
}

.section-head.center {
  text-align: center;
  margin-inline: auto
}

.section-head .kicker {
  font-size: 16px
}

.section-head h2 {
  font-size: 40px;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.04em;
  margin: 13px 0 17px;
  max-width: none;
  text-wrap: unset
}

.section-head p {
  color: var(--muted);
  font-size: 20px
}

.subtle {
  color: #7f96ac;
  font-size: 12px
}

.divider {
  height: 1px;
  background: var(--line);
  margin: 26px 0
}

.audience-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 22px
}

.audience-tabs button,
.filter button {
  border: 1px solid var(--line);
  background: rgba(8, 29, 50, .72);
  color: #abc0d2;
  padding: 10px 14px;
  border-radius: 11px;
  font-weight: 800;
  cursor: pointer
}

.audience-tabs button.active,
.filter button.active {
  background: linear-gradient(135deg, rgba(65, 216, 255, .22), rgba(85, 237, 199, .14));
  color: #fff;
  border-color: rgba(75, 219, 255, .55)
}

.audience-panel {
  display: none;
  grid-template-columns: 1fr 1fr;
  gap: 18px
}

.audience-panel.active {
  display: grid
}

.persona-card {
  min-height: 280px;
  padding: 28px;
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(10, 39, 65, .9), rgba(4, 20, 36, .94));
  border: 1px solid var(--line);
  position: relative;
  overflow: hidden
}

.persona-card:after {
  content: attr(data-no);
  position: absolute;
  right: 18px;
  bottom: -18px;
  font-size: 110px;
  font-weight: 950;
  color: rgba(72, 206, 255, .04)
}

.persona-card h3 {
  font-size: 20px;
  margin: 8px 0 12px
}

.persona-card p,
.persona-card li {
  color: #9fb4c7;
  font-size: 16px
}

.persona-card ul {
  padding-left: 18px
}

.persona-card .btn {
  font-size: 14px
}

.persona-metric {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 20px
}

.persona-metric div {
  padding: 12px;
  border-radius: 12px;
  background: rgba(3, 17, 31, .66);
  border: 1px solid rgba(76, 197, 255, .12)
}

.persona-metric b {
  display: block;
  color: var(--mint);
  font-size: 14px
}

.persona-metric span {
  font-size: 12px;
  color: #7f97ac
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.card-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: stretch
}

.card-grid .card {
  height: auto
}

.card {
  padding: 24px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(8, 31, 53, .86), rgba(4, 19, 34, .9));
  position: relative;
  overflow: hidden
}

.card:hover {
  border-color: rgba(74, 215, 255, .45)
}

.card .icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(64, 211, 255, .09);
  color: var(--cyan);
  font-size: 21px;
  font-weight: 900
}

.card h3 {
  font-size: 20px;
  margin: 1px 0 5px
}

.card p {
  color: #93a9bd;
  font-size: 16px;
  margin: 0
}

.card .meta {
  display: inline-flex;
  margin-top: 16px;
  padding: 5px 8px;
  border-radius: 8px;
  background: rgba(84, 237, 199, .09);
  color: var(--mint);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em
}

.card.warn .meta {
  background: rgba(255, 189, 74, .08);
  color: var(--amber)
}

.lifecycle {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(5, 25, 43, .72);
  overflow: auto
}

.lifecycle-track {
  min-width: 980px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 10px;
  align-items: start;
  position: relative
}

.lifecycle-track:before {
  content: "";
  position: absolute;
  left: 7%;
  right: 7%;
  top: 30px;
  height: 2px;
  background: linear-gradient(90deg, var(--cyan), var(--blue), var(--mint));
  opacity: .6
}

.life-step {
  position: relative;
  text-align: center
}

.life-dot {
  width: 60px;
  height: 60px;
  margin: auto;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: #071d33;
  border: 1px solid rgba(74, 211, 255, .35);
  color: var(--cyan);
  font-weight: 950;
  position: relative;
  z-index: 2;
  box-shadow: 0 0 28px rgba(54, 205, 255, .08)
}

.life-step h3 {
  font-size: 13px;
  margin: 14px 0 5px
}

.life-step p {
  font-size: 10px;
  color: #7891a7;
  margin: 0
}

.evidence-band {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 18px
}

.evidence-band div {
  border: 1px solid rgba(85, 204, 255, .12);
  background: rgba(4, 19, 34, .62);
  padding: 12px;
  border-radius: 12px
}

.evidence-band b {
  font-size: 10px;
  color: #d6edf8
}

.evidence-band span {
  display: block;
  color: #6f899f;
  font-size: 9px
}

.stack {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 32px;
  align-items: start
}

.stack-map {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(10, 39, 65, .9), rgba(4, 19, 34, .96));
  position: sticky;
  top: 105px
}

.stack-layer {
  padding: 15px;
  border: 1px solid rgba(82, 201, 255, .15);
  border-radius: 14px;
  margin-bottom: 10px;
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: center;
  background: rgba(3, 17, 30, .56)
}

.stack-layer .n {
  width: 40px;
  height: 40px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  color: #061321;
  background: linear-gradient(135deg, var(--cyan), var(--mint));
  font-weight: 950
}

.stack-layer b {
  font-size: 13px
}

.stack-layer small {
  display: block;
  color: #7e97ad
}

.stack-layer em {
  font-style: normal;
  color: var(--mint);
  font-size: 9px;
  font-weight: 900
}

.control-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px
}

.control {
  padding: 18px;
  border-radius: 15px;
  border: 1px solid var(--line);
  background: rgba(7, 28, 48, .72)
}

.control b {
  font-size: 13px
}

.control p {
  font-size: 11px;
  color: #879fb4;
  margin: 6px 0 0
}

.iso-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.iso {
  padding: 22px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(8, 34, 57, .9), rgba(4, 19, 34, .92));
  min-height: 210px
}

.iso .badge {
  width: 62px;
  height: 62px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 2px solid var(--cyan);
  box-shadow: inset 0 0 0 5px rgba(67, 217, 255, .06);
  font-size: 11px;
  font-weight: 950;
  color: var(--cyan)
}

.iso h3 {
  font-size: 20px;
  margin: 16px 0 8px
}

.iso p {
  font-size: 16px;
  color: #8fa6ba
}

.iso small {
  display: block;
  color: var(--mint);
  font-size: 14px;
  font-weight: 850;
  margin-top: 16px
}

.iso.pending small {
  color: var(--amber)
}

.cert-note {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 13px;
  border: 1px solid rgba(255, 189, 74, .22);
  background: rgba(255, 189, 74, .06);
  color: #d8c69e;
  font-size: 11px
}

.arch {
  padding: 24px;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: rgba(4, 21, 37, .82)
}

.arch-row {
  display: grid;
  gap: 10px;
  margin-bottom: 12px
}

.arch-row.access {
  grid-template-columns: repeat(4, 1fr)
}

.arch-row.core {
  grid-template-columns: repeat(5, 1fr)
}

.arch-row.trust {
  grid-template-columns: repeat(4, 1fr)
}

.arch-box {
  padding: 14px 10px;
  text-align: center;
  border-radius: 12px;
  border: 1px solid rgba(75, 202, 255, .15);
  background: rgba(8, 34, 57, .7);
  font-size: 10px;
  color: #c7d9e8
}

.arch-box b {
  display: block;
  color: #fff;
  font-size: 11px;
  margin-bottom: 4px
}

.arch-row.core .arch-box {
  border-color: rgba(85, 237, 199, .22);
  background: rgba(18, 65, 74, .35)
}

.arch-row.trust .arch-box {
  border-color: rgba(159, 124, 255, .25);
  background: rgba(45, 32, 77, .35)
}

.arch-label {
  text-align: center;
  color: #617d95;
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 5px 0
}

.api-sample {
  padding: 18px;
  border-radius: 16px;
  background: #010812;
  border: 1px solid rgba(80, 202, 255, .15);
  overflow: auto;
  color: #c9e8f5;
  font: 14px/1.65 ui-monospace, SFMono-Regular, Menlo, monospace
}

.api-sample .c {
  color: #5de3c1
}

.api-sample .k {
  color: #7ba6ff
}

.api-sample .s {
  color: #ffd180
}

.industry-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px
}

.industry {
  padding: 20px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: rgba(7, 28, 48, .74)
}

.industry b {
  display: block;
  margin: 12px 0 7px;
  font-size: 20px
}

.industry p {
  color: #849db2;
  font-size: 16px;
  margin: 0
}

.industry .i {
  font-size: 24px
}

.public-register {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 24px
}

.register-intro {
  padding: 28px;
  border-radius: 22px;
  border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(13, 46, 75, .9), rgba(4, 20, 35, .95));
  position: sticky;
  top: 105px
}

.register-intro h3 {
  font-size: 27px;
  margin: 12px 0
}

.register-intro p {
  color: #9eb4c7
}

.register-stat {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 22px
}

.register-stat div {
  padding: 12px;
  border: 1px solid rgba(84, 202, 255, .14);
  border-radius: 12px;
  background: rgba(3, 17, 31, .58)
}

.register-stat b {
  display: block;
  color: var(--cyan)
}

.register-stat span {
  font-size: 14px;
  color: #7c95aa
}

.doc-list {
  display: grid;
  gap: 10px
}

.doc {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 17px;
  border-radius: 15px;
  border: 1px solid var(--line);
  background: rgba(7, 28, 48, .72)
}

.doc:hover {
  border-color: rgba(67, 217, 255, .45)
}

.doc-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(67, 217, 255, .08);
  color: var(--cyan);
  font-weight: 900
}

.doc h3 {
  font-size: 16px;
  margin: 0
}

.doc p {
  font-size: 14px;
  color: #8098ad;
  margin: 3px 0 0
}

.doc-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 7px
}

.tag {
  padding: 3px 6px;
  border-radius: 6px;
  background: rgba(88, 140, 255, .1);
  color: #8cb3ff;
  font-size: 14px;
  font-weight: 850
}

.tag.green {
  background: rgba(85, 237, 199, .09);
  color: var(--mint)
}

.tag.amber {
  background: rgba(255, 189, 74, .08);
  color: var(--amber)
}

.doc .open {
  font-size: 14px;
  color: var(--cyan);
  font-weight: 850
}

.status-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px
}

.status-card {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(7, 28, 48, .75)
}

.status-card h3 {
  font-size: 20px;
  margin: 0 0 12px
}

.status-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(76, 195, 255, .09)
}

.status-line:last-child {
  border-bottom: 0
}

.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green);
  font-size: 12px;
  font-weight: 900
}

.status-pill:before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(123, 234, 117, .08)
}

.faq {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 42px
}

.faq-item {
  border-bottom: 1px solid var(--line)
}

.faq--accordion .faq-list {
  display: grid;
  gap: 12px
}

.faq--accordion .faq-item {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(7, 28, 48, .72);
  overflow: hidden
}

.faq--accordion .faq-item button {
  padding: 16px 18px;
  align-items: center
}

.faq--accordion .faq-item button:after {
  content: "▶";
  flex-shrink: 0;
  font-size: 11px;
  color: #9ab0c5;
  transition: transform .2s ease
}

.faq--accordion .faq-item.open button:after {
  transform: rotate(90deg);
  color: var(--cyan)
}

.faq-item button {
  width: 100%;
  padding: 20px 0;
  border: 0;
  background: none;
  color: #edf7ff;
  text-align: left;
  font-weight: 850;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer
}

.faq-item .answer {
  display: none;
  color: #91a8bc;
  font-size: 14px;
  line-height: 1.55;
  padding: 0 18px 16px;
  margin: 0
}

.faq-item.open .answer {
  display: block
}

.cta {
  padding: 48px 0 96px
}

.cta-box {
  padding: 46px;
  border-radius: 28px;
  border: 1px solid rgba(77, 212, 255, .35);
  background: linear-gradient(135deg, #104c78, #082743 52%, #071a2f);
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 40px
}

.cta-box--solo {
  grid-template-columns: 1fr
}

.cta-box--solo>div {
  max-width: none;
  width: 100%
}

.cta-box--solo h2,
.cta-box--solo p {
  max-width: none
}

.cta-box--stack {
  grid-template-columns: 1fr;
  gap: 28px
}

.cta-box--stack>div:first-child,
.cta-box--stack h2,
.cta-box--stack p {
  max-width: none;
  width: 100%
}

.cta-box--stack .cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center
}

.cta-box--stack .cta-actions .btn {
  width: auto;
  display: inline-flex
}

.cta-box h2 {
  font-size: 40px;
  line-height: 1.05;
  letter-spacing: -.04em;
  margin: 14px 0
}

.cta-box p {
  color: #b7c9d8
}

.form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 22px;
  border-radius: 18px;
  background: rgba(3, 17, 30, .62);
  border: 1px solid rgba(77, 204, 255, .2)
}

.form label {
  display: grid;
  gap: 5px;
  color: #96adbf;
  font-size: 14px;
  font-weight: 800
}

.form input,
.form select,
.form textarea {
  width: 100%;
  padding: 11px 12px;
  border-radius: 9px;
  border: 1px solid rgba(80, 198, 255, .17);
  background-color: #062039;
  color: #fff;
  font-size: 14px
}

.form input.is-invalid,
.form select.is-invalid,
.form textarea.is-invalid {
  border-color: rgba(248, 113, 113, .65);
  box-shadow: 0 0 0 1px rgba(248, 113, 113, .25)
}

.form select,
.registry-toolbar select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  padding-right: 36px;
  border: 1px solid rgba(88, 207, 255, .35);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238fc9dc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 8px
}

.form select:hover,
.registry-toolbar select:hover {
  border-color: rgba(67, 217, 255, .4)
}

.form select:focus,
.registry-toolbar select:focus {
  outline: none;
  border-color: rgba(67, 217, 255, .55);
  box-shadow: 0 0 0 3px rgba(67, 217, 255, .12)
}

/* Custom dropdown — list mở có border (native <select> popup không style được) */
.td-select {
  position: relative;
  width: 100%;
  min-width: 0
}

.td-select-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background: none !important
}

.td-select-trigger {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 11px 36px 11px 12px;
  border: 1px solid rgba(88, 207, 255, .35);
  border-radius: 9px;
  background-color: #062039;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238fc9dc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 8px;
  color: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis
}

.registry-toolbar .td-select-trigger {
  border-radius: 10px;
  background-color: #061d32
}

.td-select-trigger:hover {
  border-color: rgba(67, 217, 255, .4)
}

.td-select.is-open .td-select-trigger,
.td-select-trigger:focus {
  outline: none;
  border-color: rgba(67, 217, 255, .55);
  box-shadow: 0 0 0 3px rgba(67, 217, 255, .12)
}

.td-select.is-open .td-select-trigger {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 6.5L6 1.5L11 6.5' stroke='%238fc9dc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
}

.td-select-list {
  position: absolute;
  z-index: 40;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border: none;
  border-left: 1px solid rgba(88, 207, 255, .45);
  border-right: 1px solid rgba(88, 207, 255, .45);
  border-radius: 10px;
  background: #062039;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
  max-height: 240px;
  overflow: auto
}

.registry-toolbar .td-select-list {
  background: #061d32
}

.td-select-option {
  padding: 10px 12px;
  border: none;
  border-radius: 0;
  color: #edf7ff;
  font-size: 14px;
  cursor: pointer;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis
}

.td-select-option:first-child {
  border-top: 1px solid rgba(88, 207, 255, .45);
  border-radius: 10px 10px 0 0
}

.td-select-option:last-child {
  border-bottom: 1px solid rgba(88, 207, 255, .45);
  border-radius: 0 0 10px 10px
}

.td-select-option:only-child {
  border-radius: 10px
}

.td-select-option:hover,
.td-select-option[aria-selected="true"] {
  background: #2563eb;
  color: #fff
}

.td-select-option[aria-disabled="true"] {
  opacity: .45;
  pointer-events: none
}

.form .full {
  grid-column: 1/-1
}

.footer {
  padding: 54px 0 24px;
  border-top: 1px solid rgba(74, 194, 255, .12);
  background: #010812
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: 38px
}

.footer img {
  width: 205px
}

.footer p {
  color: #829bb0;
  font-size: 12px
}

.footer b {
  font-size: 12px
}

.footer a {
  display: block;
  color: #7891a7;
  font-size: 11px;
  margin-top: 8px
}

.footer a:hover {
  color: var(--cyan)
}

.footer-bottom {
  margin-top: 36px;
  padding-top: 18px;
  border-top: 1px solid rgba(75, 192, 244, .09);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: #5f788e;
  font-size: 9px
}

.page-hero {
  padding: 76px 0 54px;
  border-bottom: 1px solid var(--line);
  background-image: linear-gradient(rgba(65, 187, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(65, 187, 255, .045) 1px, transparent 1px);
  background-size: 38px 38px
}

.page-hero .breadcrumbs {
  margin-bottom: 13px
}

.page-hero .kicker {
  display: block
}

.page-hero h1 {
  font-size: 60px;
  max-width: none;
  text-wrap: unset;
  margin: 13px 0 17px
}

.page-hero p {
  max-width: none;
  color: #9fb5c8;
  font-size: 20px
}

.breadcrumbs {
  font-size: 16px;
  color: #7f98ad
}

.breadcrumbs a {
  color: var(--cyan)
}

.page-layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 34px;
  align-items: start
}

.sidebar {
  position: sticky;
  top: 100px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(7, 28, 48, .72)
}

.sidebar a {
  display: block;
  padding: 9px 10px;
  border-radius: 9px;
  color: #8fa6ba;
  font-size: 14px
}

.sidebar a:hover {
  background: rgba(69, 207, 255, .08);
  color: #fff
}

.prose h2 {
  font-size: 30px;
  margin: 42px 0 14px
}

.prose h3 {
  font-size: 20px;
  margin: 24px 0 8px
}

.prose p,
.prose li {
  color: #9eb3c6
}

.prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 18px 0;
  font-size: 16px
}

.prose th,
.prose td {
  padding: 12px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top
}

.prose th {
  background: rgba(67, 217, 255, .08);
  color: #eaf8ff
}

.callout {
  margin-top: 20px;
  padding: 18px;
  border-radius: 14px;
  border: 1px solid rgba(67, 217, 255, .2);
  background: rgba(67, 217, 255, .06);
  color: #bfd9e7
}

.callout.warn {
  margin-bottom: 20px;
  border-color: rgba(255, 189, 74, .25);
  background: rgba(255, 189, 74, .05);
  color: #d8c69e
}

.filter {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 22px 0
}

.hidden {
  display: none !important
}

@media(max-width:1080px) {
  .navlinks {
    display: none
  }

  .menu {
    display: block
  }

  .mobile-nav.open {
    display: block
  }

  .hero-grid,
  .stack,
  .public-register,
  .cta-box,
  .faq {
    grid-template-columns: 1fr
  }

  .hero-art {
    max-width: 720px;
    margin: auto
  }

  .trust-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .trust-item:nth-child(2n) {
    border-right: 0
  }

  .grid-4,
  .iso-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .grid-3 {
    grid-template-columns: 1fr 1fr
  }

  .stack-map,
  .register-intro {
    position: relative;
    top: 0
  }

  .industry-grid {
    grid-template-columns: repeat(3, 1fr)
  }

  .page-layout {
    grid-template-columns: 1fr
  }

  .sidebar {
    display: none
  }
}

@media(max-width:720px) {
  .container {
    width: min(calc(100% - 26px), var(--container))
  }

  .nav {
    height: 68px
  }

  .brand img {
    width: 170px
  }

  .nav-actions .btn {
    display: none
  }

  .hero {
    padding: 60px 0 40px
  }

  .hero-grid {
    gap: 36px
  }

  .hero h1 {
    font-size: 44px
  }

  .lead {
    font-size: 16px
  }

  .proof-row {
    grid-template-columns: 1fr
  }

  .trust-grid,
  .grid-3,
  .grid-4,
  .iso-grid,
  .status-grid,
  .audience-panel,
  .control-grid {
    grid-template-columns: 1fr
  }

  .trust-item {
    border-right: 0;
    border-bottom: 1px solid rgba(70, 193, 255, .12)
  }

  .section {
    padding: 72px 0
  }

  .section-head h2 {
    font-size: 36px
  }

  .persona-metric {
    grid-template-columns: 1fr
  }

  .evidence-band {
    grid-template-columns: 1fr 1fr
  }

  .arch-row.access,
  .arch-row.core,
  .arch-row.trust {
    grid-template-columns: 1fr 1fr
  }

  .industry-grid {
    grid-template-columns: 1fr 1fr
  }

  .doc {
    grid-template-columns: 42px 1fr
  }

  .doc .open {
    grid-column: 2
  }

  .cta-box {
    padding: 26px 18px
  }

  .cta-box h2 {
    font-size: 34px
  }

  .form {
    grid-template-columns: 1fr
  }

  .form .full {
    grid-column: 1
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr
  }

  .footer-grid>div:first-child {
    grid-column: 1/-1
  }

  .footer-bottom {
    flex-direction: column
  }

  .page-hero {
    padding: 58px 0 40px
  }

  .page-hero h1 {
    font-size: 42px
  }
}

@media(max-width:470px) {
  .hero h1 {
    font-size: 38px
  }

  .hero-actions {
    display: grid
  }

  .btn {
    width: 100%
  }

  .float-card {
    display: none
  }

  .industry-grid {
    grid-template-columns: 1fr
  }

  .arch-row.access,
  .arch-row.core,
  .arch-row.trust {
    grid-template-columns: 1fr
  }

  .evidence-band {
    grid-template-columns: 1fr
  }

  .footer-grid {
    grid-template-columns: 1fr
  }
}

@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important
  }
}

@media print {

  .notice,
  .header,
  .cta,
  .footer,
  .audience-tabs,
  .filter {
    display: none !important
  }

  body {
    background: #fff;
    color: #111
  }

  .section,
  .page-hero {
    padding: 24px 0
  }

  .card,
  .doc,
  .prose table,
  .callout {
    border-color: #bbb;
    background: #fff;
    color: #111
  }

  .card p,
  .doc p,
  .prose p,
  .prose li {
    color: #333
  }
}

/* v3 platform extensions */
.topbar {
  border-bottom: 1px solid rgba(80, 200, 255, .12);
  background: #020914
}

.topbar .container {
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #7e98ad;
  font-size: 10px
}

.topbar-links {
  display: flex;
  gap: 16px
}

.topbar a:hover {
  color: var(--cyan)
}

.nav-group {
  position: relative
}

.nav-group>a:after {
  content: '⌄';
  margin-left: 5px;
  color: #6d8aa2
}

.mega {
  position: absolute;
  left: 50%;
  top: calc(100% + 23px);
  transform: translateX(-50%) translateY(8px);
  width: 720px;
  padding: 20px;
  border: 1px solid rgba(80, 203, 255, .22);
  border-radius: 18px;
  background: rgba(3, 17, 31, .98);
  box-shadow: 0 25px 70px rgba(0, 0, 0, .5);
  display: none;
  grid-template-columns: repeat(3, 1fr);
  gap: 9px
}

.nav-group:hover .mega,
.nav-group:focus-within .mega {
  display: grid;
  animation: megaIn .18s ease forwards
}

.mega a {
  padding: 12px;
  border-radius: 12px;
  border: 1px solid transparent
}

.mega a:hover {
  background: rgba(67, 217, 255, .06);
  border-color: rgba(67, 217, 255, .14)
}

.mega b {
  display: block;
  color: #fff;
  font-size: 11px
}

.mega small {
  display: block;
  color: #6f899f;
  font-size: 9px;
  margin-top: 3px
}

@keyframes megaIn {
  to {
    transform: translateX(-50%) translateY(0)
  }
}

.licence-ribbon {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 15px 18px;
  border: 1px solid rgba(123, 234, 117, .26);
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(19, 76, 63, .42), rgba(6, 35, 47, .7));
  margin-top: 22px
}

.licence-ribbon .seal {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(123, 234, 117, .12);
  border: 1px solid rgba(123, 234, 117, .4);
  color: var(--green);
  font-weight: 950
}

.licence-ribbon b {
  display: block;
  font-size: 13px
}

.licence-ribbon span {
  font-size: 10px;
  color: #9ab6b0
}

.demo-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 7px;
  background: rgba(255, 189, 74, .12);
  border: 1px solid rgba(255, 189, 74, .24);
  color: #ffd485;
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px
}

.metric {
  padding: 20px;
  border-radius: 17px;
  border: 1px solid var(--line);
  background: rgba(6, 27, 46, .76)
}

.metric b {
  font-size: 28px;
  color: var(--cyan);
  display: block
}

.metric span {
  font-size: 10px;
  color: #809aaf
}

.metric small {
  display: block;
  color: #5f788e;
  font-size: 9px;
  margin-top: 8px
}

.platform-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.platform-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: linear-gradient(155deg, rgba(11, 42, 69, .86), rgba(3, 18, 32, .95));
  min-height: 260px
}

.platform-card .num {
  font-size: 10px;
  color: var(--cyan);
  font-weight: 900;
  letter-spacing: .15em
}

.platform-card h3 {
  font-size: 20px;
  margin: 16px 0 9px
}

.platform-card p {
  font-size: 16px;
  color: #8fa7ba
}

.platform-card a {
  display: inline-block;
  margin-top: 18px;
  color: var(--cyan);
  font-size: 14px;
  font-weight: 900
}

.timeline {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px
}

.timeline .event {
  padding: 20px 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(6, 27, 46, .74);
  position: relative
}

.timeline .event:before {
  content: '';
  position: absolute;
  left: 23px;
  top: -7px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 0 6px rgba(67, 217, 255, .08)
}

.timeline .event b {
  display: block;
  margin: 10px 0 6px;
  font-size: 16px
}

.timeline .event span {
  font-size: 14px;
  color: #8099ad
}

.architecture-map {
  display: grid;
  gap: 10px;
  padding: 26px;
  border-radius: 22px;
  border: 1px solid var(--line);
  background: rgba(3, 18, 32, .82)
}

.arch-lane {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 12px;
  align-items: stretch;
  text-align: center;
}

.arch-lane>strong {
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
  padding: 14px;
  border-radius: 12px;
  background: rgba(67, 217, 255, .06);
  font-size: 14px;
  color: var(--cyan)
}

.arch-nodes {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px
}

.arch-node {
  padding: 13px;
  text-align: center;
  border-radius: 11px;
  border: 1px solid rgba(80, 198, 255, .14);
  background: rgba(7, 31, 52, .78);
  font-size: 12px;
  color: #9db4c6
}

.arch-node b {
  display: block;
  color: #f1fbff;
  font-size: 14px;
  margin-bottom: 4px
}

.arch-node.trust {
  border-color: rgba(159, 124, 255, .25);
  background: rgba(42, 30, 74, .34)
}

.arch-node.evidence {
  border-color: rgba(85, 237, 199, .22);
  background: rgba(20, 64, 65, .3)
}

.cert-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px
}

.cert-card {
  display: grid;
  grid-template-columns: 190px 1fr;
  gap: 20px;
  padding: 22px;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: linear-gradient(150deg, rgba(9, 37, 62, .92), rgba(3, 18, 32, .96));
  position: relative
}

.cert-preview {
  height: 245px;
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
  border: 1px solid rgba(255, 255, 255, .2)
}

.cert-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top
}

.cert-card h2 {
  font-size: 40px;
  margin: 10px 0
}

.cert-card h3 {
  font-size: 20px;
  margin: 7px 0
}

.cert-card p {
  font-size: 16px;
  color: #8fa6ba
}

.cert-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 13px 0
}

.cert-meta div {
  padding: 8px;
  border-radius: 9px;
  background: rgba(3, 18, 32, .62);
  border: 1px solid rgba(75, 198, 255, .1)
}

.cert-meta b {
  display: block;
  font-size: 16px;
  color: #fff
}

.cert-meta span {
  font-size: 14px;
  color: #7891a7
}

.status-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 6px 10px;
  border-radius: 8px;
  background: rgba(255, 189, 74, .1);
  color: #ffcf77;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
  text-transform: none;
  white-space: normal
}

.status-badge.good {
  background: rgba(123, 234, 117, .1);
  color: var(--green)
}

.qrbox {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px
}

.qrbox img {
  width: 76px;
  height: 76px;
  background: #fff;
  border-radius: 9px;
  padding: 4px
}

.hash {
  display: block;
  word-break: break-all;
  padding: 10px;
  border-radius: 9px;
  background: #010912;
  color: #8fc9dc;
  font: 14px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace
}

.registry-toolbar {
  display: grid;
  grid-template-columns: 1fr 170px 170px;
  gap: 10px;
  margin: 20px 0
}

.registry-toolbar input,
.registry-toolbar select {
  padding: 11px 12px;
  border: 1px solid var(--line);
  background-color: #061d32;
  color: #fff;
  border-radius: 10px
}

.registry-toolbar select {
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238fc9dc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px 8px
}

.registry-table {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 16px
}

.registry-table table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse
}

.registry-table th,
.registry-table td {
  padding: 13px 12px;
  border-bottom: 1px solid rgba(75, 195, 255, .08);
  text-align: left;
  font-size: 14px
}

.registry-table th {
  position: sticky;
  top: 0;
  background: #09233c;
  color: #d9eff9
}

.registry-table td {
  color: #92aabd
}

.registry-table tr:hover td {
  background: rgba(67, 217, 255, .025)
}

.partner-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.partner-card {
  padding: 20px;
  border-radius: 17px;
  border: 1px solid var(--line);
  background: rgba(7, 29, 49, .78);
  min-height: 225px
}

.partner-logo {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, rgba(67, 217, 255, .18), rgba(159, 124, 255, .14));
  border: 1px solid rgba(67, 217, 255, .22);
  font-weight: 950;
  color: #dff8ff
}

.partner-card h3 {
  font-size: 16px;
  margin: 14px 0 6px
}

.partner-card p {
  font-size: 14px;
  color: #819aad
}

.partner-spec {
  margin-top: 13px;
  padding-top: 10px;
  border-top: 1px solid rgba(80, 198, 255, .09);
  font-size: 12px;
  color: #7390a6
}

.partner-spec b {
  color: #cce7f3
}

.feature-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px
}

.feature-panel {
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(6, 27, 47, .74)
}

.feature-panel h3 {
  font-size: 20px
}

.checklist {
  list-style: none;
  padding: 0;
  margin: 18px 0
}

.checklist li {
  position: relative;
  padding: 9px 0 9px 27px;
  color: #95adbf;
  font-size: 16px;
  border-bottom: 1px solid rgba(80, 198, 255, .07)
}

.checklist li:before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--mint);
  font-weight: 950
}

.code-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 10px
}

.code-tabs button {
  border: 1px solid var(--line);
  background: #061d32;
  color: #8fa7ba;
  padding: 8px 11px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer
}

.code-tabs button.active {
  color: #fff;
  border-color: rgba(67, 217, 255, .45);
  background: rgba(67, 217, 255, .1)
}

.code-panel {
  display: none
}

.code-panel.active {
  display: block
}

.explorer {
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: 18px
}

.dropzone {
  padding: 30px;
  border: 1px dashed rgba(67, 217, 255, .45);
  border-radius: 18px;
  background: rgba(67, 217, 255, .04);
  text-align: center
}

.dropzone input {
  max-width: 100%;
  margin-top: 15px
}

.evidence-result {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(4, 22, 38, .85)
}

.evidence-result .ok {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--green);
  font-weight: 900
}

.evidence-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 18px
}

.evidence-fields div {
  padding: 11px;
  border-radius: 10px;
  border: 1px solid rgba(80, 198, 255, .1);
  background: rgba(7, 31, 52, .6)
}

.evidence-fields b {
  display: block;
  font-size: 9px
}

.evidence-fields span {
  font-size: 9px;
  color: #7d97ac;
  word-break: break-word
}

.role-nav {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 22px
}

.role-nav a {
  padding: 8px 11px;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: #8fa7ba;
  font-size: 12px;
  font-weight: 850
}

.role-nav a:hover {
  color: #fff;
  border-color: rgba(67, 217, 255, .42)
}

.icon-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(67, 217, 255, .08);
  color: var(--cyan);
  font-size: 15px
}

.compliance-matrix {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px
}

.matrix-card {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(6, 27, 46, .74)
}

.matrix-card b {
  display: block;
  font-size: 20px
}

.matrix-card p {
  font-size: 16px;
  color: #8099ad
}

.matrix-card .state {
  font-size: 14px;
  color: var(--mint);
  font-weight: 900
}

.score-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px
}

.score {
  padding: 16px;
  border-radius: 13px;
  border: 1px solid var(--line);
  background: rgba(7, 28, 48, .72)
}

.score b {
  font-size: 24px;
  color: var(--cyan)
}

.score span {
  display: block;
  font-size: 9px;
  color: #7c95aa
}

.language-gate {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 30px;
  background: radial-gradient(circle at 50% 20%, rgba(53, 144, 255, .18), transparent 35%), #020b16
}

.language-card {
  width: min(900px, 100%);
  padding: 48px;
  border: 1px solid rgba(67, 217, 255, .24);
  border-radius: 28px;
  background: rgba(4, 22, 39, .92);
  box-shadow: var(--shadow);
  text-align: center
}

.language-card img {
  width: 240px
}

.language-card h1 {
  font-size: 52px;
  margin: 28px 0 12px
}

.language-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 30px
}

.language-options a {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: rgba(8, 34, 57, .72);
  font-weight: 900
}

.language-options a:hover {
  border-color: var(--cyan);
  transform: translateY(-2px)
}

@media(max-width:1080px) {
  .mega {
    display: none !important
  }

  .platform-grid,
  .partner-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .cert-grid {
    grid-template-columns: 1fr
  }

  .timeline {
    grid-template-columns: repeat(3, 1fr)
  }

  .metric-grid,
  .score-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .arch-nodes {
    grid-template-columns: repeat(3, 1fr)
  }
}

@media(max-width:720px) {
  .topbar {
    display: none
  }

  .licence-ribbon {
    grid-template-columns: auto 1fr
  }

  .licence-ribbon .btn {
    grid-column: 1/-1
  }

  .platform-grid,
  .partner-grid,
  .feature-split,
  .explorer,
  .compliance-matrix {
    grid-template-columns: 1fr
  }

  .cert-card {
    grid-template-columns: 1fr
  }

  .cert-preview {
    height: 320px
  }

  .timeline {
    grid-template-columns: 1fr 1fr
  }

  .arch-lane {
    grid-template-columns: 1fr
  }

  .arch-nodes {
    grid-template-columns: 1fr 1fr
  }

  .registry-toolbar {
    grid-template-columns: 1fr
  }

  .metric-grid,
  .score-grid {
    grid-template-columns: 1fr 1fr
  }

  .language-card {
    padding: 30px 20px
  }

  .language-card h1 {
    font-size: 38px
  }

  .language-options {
    grid-template-columns: 1fr
  }

  .evidence-fields {
    grid-template-columns: 1fr
  }
}

@media(max-width:470px) {

  .timeline,
  .metric-grid,
  .score-grid,
  .arch-nodes {
    grid-template-columns: 1fr
  }

  .cert-preview {
    height: 250px
  }
}


/* V4 QTSP-grade enhancements */
.form-message {
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  font-size: .88rem;
  grid-column: 1/-1;
  max-width: none;
  text-align: center
}

.form-message.is-visible {
  display: block
}

.form-message.is-busy {
  border-color: rgba(148, 163, 184, .35);
  background: rgba(148, 163, 184, .08);
  color: #c5d4e0
}

.form-message.active {
  border-color: rgba(34, 211, 238, .5);
  background: rgba(34, 211, 238, .08);
  color: #c8f8ff
}

.form-message.error {
  border-color: rgba(248, 113, 113, .5);
  background: rgba(248, 113, 113, .1);
  color: #ffb4b4
}

.mode-banner {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(245, 158, 11, .35);
  background: linear-gradient(135deg, rgba(245, 158, 11, .10), rgba(2, 11, 22, .3));
  margin: 20px 0
}

.mode-banner b {
  color: #ffd18b
}

.mode-banner p {
  margin: 0;
  color: var(--muted)
}

.assurance-map {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}

.assurance-node {
  position: relative;
  min-height: 155px;
  padding: 18px;
  border: 1px solid rgba(66, 218, 255, .20);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(8, 31, 52, .82), rgba(3, 14, 27, .92));
  overflow: hidden
}

.assurance-node:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 100%;
  background: linear-gradient(var(--cyan), var(--purple))
}

.assurance-node small {
  display: block;
  color: var(--cyan);
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 8px
}

.assurance-node h3 {
  margin: 0 0 8px
}

.assurance-node p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem
}

.coverage-table td:first-child {
  font-weight: 800;
  color: #dffbff
}

.coverage-table .direct {
  color: #6ee7b7
}

.coverage-table .support {
  color: #fcd34d
}

.coverage-table .reference {
  color: #93c5fd
}

.evidence-lifecycle {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  counter-reset: event
}

.evidence-step {
  counter-increment: event;
  padding: 18px;
  border: 1px solid rgba(66, 218, 255, .18);
  border-radius: 16px;
  background: rgba(4, 19, 34, .78)
}

.evidence-step:before {
  content: counter(event, decimal-leading-zero);
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(34, 211, 238, .12);
  color: var(--cyan);
  font-weight: 900;
  margin-bottom: 12px
}

.evidence-step h3 {
  margin: 0 0 8px
}

.evidence-step p {
  color: var(--muted);
  margin: 0
}

.meaning-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px
}

.meaning-card {
  padding: 20px;
  border: 1px solid rgba(66, 218, 255, .18);
  border-radius: 16px;
  background: rgba(4, 19, 34, .72)
}

.verification-dashboard {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px
}

.verify-input,
.verify-result {
  padding: 22px;
  border: 1px solid rgba(66, 218, 255, .2);
  border-radius: 18px;
  background: rgba(4, 19, 34, .82)
}

.verify-input label {
  display: block;
  margin: 0 0 14px;
  font-weight: 800
}

.verify-input input[type=file] {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px;
  border: 1px dashed rgba(66, 218, 255, .35);
  border-radius: 12px;
  background: #061424;
  color: #d9faff
}

.verification-list {
  display: grid;
  gap: 10px
}

.verification-item {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .025);
  border: 1px solid rgba(255, 255, 255, .06)
}

.verification-item:before {
  content: "?";
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #27364a;
  color: #cbd5e1;
  font-weight: 900
}

.verification-item[data-state=valid]:before {
  content: "✓";
  background: rgba(16, 185, 129, .18);
  color: #6ee7b7
}

.verification-item[data-state=invalid]:before {
  content: "×";
  background: rgba(239, 68, 68, .18);
  color: #fca5a5
}

.verification-item[data-state=indeterminate]:before {
  content: "!";
  background: rgba(245, 158, 11, .18);
  color: #fcd34d
}

.verification-item b {
  display: block;
  margin-bottom: 3px
}

.verification-item span {
  color: var(--muted);
  font-size: .88rem
}

.verifier-state {
  margin: 16px 0;
  padding: 12px;
  border-radius: 12px;
  background: rgba(34, 211, 238, .08);
  border: 1px solid rgba(34, 211, 238, .25)
}

.registry-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 18px 0
}

.registry-summary div {
  padding: 16px;
  border: 1px solid rgba(66, 218, 255, .18);
  border-radius: 14px;
  background: rgba(3, 17, 31, .75)
}

.registry-summary b {
  display: block;
  font-size: 1.3rem;
  color: var(--cyan)
}

.registry-summary span {
  color: var(--muted);
  font-size: .84rem
}

.eeat {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 18px;
  border-radius: 16px;
  border: 1px solid rgba(66, 218, 255, .16);
  background: rgba(4, 19, 34, .62)
}

.eeat div {
  min-width: 0
}

.eeat b {
  display: block;
  color: #e7fbff;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .06em
}

.eeat span {
  display: block;
  color: var(--muted);
  font-size: .87rem;
  margin-top: 4px
}

.production-gate {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px
}

.gate-item {
  padding: 18px 20px;
  border: 1px solid rgba(245, 158, 11, .28);
  border-radius: 13px;
  background: rgba(245, 158, 11, .06)
}

.gate-item b {
  display: block;
  color: #ffd18b;
  margin-bottom: 6px
}

.gate-item span {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.5
}

@media(max-width:1050px) {
  .assurance-map {
    grid-template-columns: repeat(2, 1fr)
  }

  .evidence-lifecycle {
    grid-template-columns: repeat(2, 1fr)
  }

  .eeat {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:720px) {

  .assurance-map,
  .evidence-lifecycle,
  .meaning-grid,
  .verification-dashboard,
  .registry-summary,
  .production-gate,
  .eeat {
    grid-template-columns: 1fr
  }

  .verification-dashboard {
    gap: 12px
  }

  .assurance-node {
    min-height: auto
  }
}

.file-input-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  clip-path: inset(50%) !important
}

.file-picker-label {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  margin: 8px 0;
  border: 1px solid rgba(66, 218, 255, .38);
  border-radius: 10px;
  background: #071b2d;
  color: #e5fbff;
  font-weight: 800;
  cursor: pointer
}

.verify-input label:has(.file-input-hidden) {
  position: relative
}

.verify-input label:has(.file-input-hidden) .file-picker-label {
  pointer-events: none
}

/* Biểu mẫu: dấu bắt buộc, dòng đồng ý và trạng thái lỗi */
.form .req {
  margin-left: 3px;
  color: #ff7070;
  font-weight: 900
}

.form label:has(>input[type=checkbox]) {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  text-transform: none;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.55;
  color: #a7bfd1;
  cursor: pointer
}

.form label:has(>input[type=checkbox])>input[type=checkbox] {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin: 1px 0 0;
  padding: 0;
  border-radius: 4px;
  accent-color: var(--cyan);
  cursor: pointer
}

.form button[type=submit]:disabled {
  opacity: .45;
  filter: grayscale(.35);
  cursor: not-allowed
}


/* V5 UI, language and responsive refinement */
:root {
  --purple: var(--violet);
  --container: 1360px
}

/* overflow-x: clip giữ sticky header; overflow-x: hidden làm hỏng position:sticky trên một số trình duyệt */
html,
body {
  overflow-x: clip
}

h1,
h2,
h3 {
  font-weight: 800;
  text-wrap: balance
}

p {
  overflow-wrap: break-word;
  text-wrap: pretty
}

.container {
  width: min(calc(100% - 48px), var(--container))
}

.grid-3>*,
.grid-4>*,
.doc>*,
.partner-grid>*,
.public-register>*,
.hero-grid>* {
  min-width: 0
}

.hero-grid {
  grid-template-columns: minmax(0, 1.03fr) minmax(460px, .97fr);
  gap: clamp(42px, 5vw, 82px)
}

.hero-art-v5 {
  padding: 22px;
  overflow: hidden
}

.trust-visual {
  position: relative;
  min-height: 390px;
  border: 1px solid rgba(67, 217, 255, .18);
  border-radius: 22px;
  background: radial-gradient(circle at 50% 44%, rgba(67, 217, 255, .16), transparent 34%), linear-gradient(145deg, rgba(4, 25, 46, .92), rgba(2, 13, 26, .98));
  display: grid;
  place-items: center;
  isolation: isolate
}

.trust-visual:before,
.trust-visual:after {
  content: "";
  position: absolute;
  border: 1px solid rgba(67, 217, 255, .13);
  border-radius: 50%;
  inset: 12% 20%;
  z-index: -1
}

.trust-visual:after {
  inset: 22% 30%;
  border-style: dashed;
  animation: trustSpin 22s linear infinite
}

.trust-shield-svg {
  width: min(42%, 210px);
  filter: drop-shadow(0 0 24px rgba(67, 217, 255, .24));
  z-index: 2
}

.trust-visual-core {
  position: absolute;
  display: grid;
  gap: 5px;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -42%);
  z-index: 3
}

.trust-visual-brand {
  font-size: clamp(14px, 1.4vw, 19px);
  font-weight: 950;
  letter-spacing: .08em
}

.trust-visual-caption {
  font-size: 10px;
  color: #9db4c8
}

.trust-data-rail {
  position: absolute;
  left: 7%;
  right: 7%;
  bottom: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 9px
}

.trust-data-rail span {
  padding: 9px 8px;
  border: 1px solid rgba(67, 217, 255, .16);
  border-radius: 10px;
  background: rgba(5, 27, 47, .86);
  font-size: 10px;
  text-align: center;
  color: #cbe8f4
}

.hero-status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px
}

.status-card {
  min-width: 0;
  padding: 13px;
  border: 1px solid rgba(67, 217, 255, .22);
  border-radius: 13px;
  background: rgba(4, 25, 44, .82)
}

.status-card small {
  display: block;
  color: #8ea7bc;
  font-size: 9px;
  letter-spacing: .08em
}

.status-card b {
  display: block;
  font-size: 12px;
  margin: 4px 0;
  overflow-wrap: anywhere
}

.demo-chip {
  display: inline-flex;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(255, 189, 74, .1);
  color: #ffd082;
  font-size: 8px;
  font-weight: 850
}

.demo-state {
  border-color: rgba(255, 189, 74, .2)
}

.integration-showcase {
  overflow: hidden
}

.integration-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  gap: clamp(42px, 6vw, 96px);
  align-items: center;
  margin-bottom: 42px
}

.integration-intro .section-head {
  max-width: none;
  margin-bottom: 0
}

.integration-intro .section-head h2 {
  font-size: clamp(42px, 5vw, 72px);
  line-height: .99;
  letter-spacing: -.05em;
  max-width: none
}

.integration-intro .section-head p {
  max-width: 68ch;
  line-height: 1.68
}

.integration-actions {
  margin-bottom: 0
}

.integration-map {
  position: relative;
  min-height: 390px;
  border: 1px solid rgba(67, 217, 255, .22);
  border-radius: 24px;
  background: radial-gradient(circle at 50% 50%, rgba(67, 217, 255, .12), transparent 31%), linear-gradient(145deg, rgba(8, 35, 59, .88), rgba(3, 17, 31, .95));
  overflow: hidden
}

.integration-map:before,
.integration-map:after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border: 1px solid rgba(67, 217, 255, .13);
  border-radius: 50%;
  transform: translate(-50%, -50%)
}

.integration-map:before {
  width: 68%;
  aspect-ratio: 1
}

.integration-map:after {
  width: 42%;
  aspect-ratio: 1;
  border-style: dashed
}

.integration-core {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  padding: 16px 22px;
  border: 1px solid rgba(85, 237, 199, .35);
  border-radius: 15px;
  background: #071d33;
  color: #e9fbff;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .08em;
  box-shadow: 0 0 44px rgba(67, 217, 255, .12);
  z-index: 2
}

.integration-node {
  position: absolute;
  padding: 9px 12px;
  border: 1px solid rgba(67, 217, 255, .2);
  border-radius: 11px;
  background: rgba(5, 26, 45, .94);
  color: #bcd6e5;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap
}

.node-1 {
  left: 7%;
  top: 15%
}

.node-2 {
  right: 6%;
  top: 14%
}

.node-3 {
  left: 4%;
  top: 47%
}

.node-4 {
  right: 3%;
  top: 48%
}

.node-5 {
  left: 12%;
  bottom: 12%
}

.node-6 {
  right: 8%;
  bottom: 12%
}

.doc {
  grid-template-columns: minmax(72px, 92px) minmax(0, 1fr) auto;
  gap: 18px;
  padding: 20px
}

.doc-icon {
  width: auto;
  height: 58px;
  min-width: 72px;
  max-width: 92px;
  padding: 8px;
  border-radius: 14px;
  overflow-wrap: anywhere;
  text-align: center;
  font-size: 15px
}

.doc>span:nth-child(2) {
  min-width: 0
}

.doc h3 {
  font-size: 16px;
  line-height: 1.35;
  overflow-wrap: anywhere
}

.doc p {
  font-size: 14px;
  overflow-wrap: anywhere
}

.doc-tags {
  row-gap: 7px
}

.tag {
  font-size: 14px;
  line-height: 1.25
}

.doc .open {
  white-space: nowrap;
  align-self: center
}

.internal-report-banner {
  position: sticky;
  top: 0;
  z-index: 9999;
  padding: 10px 16px;
  background: #7c2d12;
  color: #fff7ed;
  font: 800 12px/1.4 system-ui;
  text-align: center;
  letter-spacing: .04em
}

.section-head {
  max-width: min(100%, 1240px)
}

.section-head h2 {
  max-width: none;
  text-wrap: unset
}

.lead {
  max-width: 68ch
}

.partner-card,
.card,
.iso,
.doc {
  overflow: hidden
}

.partner-card h3,
.iso h3 {
  overflow-wrap: anywhere
}

.footer p {
  overflow-wrap: anywhere
}

@keyframes trustSpin {
  to {
    transform: rotate(360deg)
  }
}

@media(max-width:1180px) {
  .hero-grid {
    grid-template-columns: 1fr
  }

  .hero-art-v5 {
    max-width: 820px;
    width: 100%;
    margin: auto
  }

  .integration-intro {
    grid-template-columns: 1fr
  }

  .integration-map {
    min-height: 350px
  }

  .integration-intro .section-head h2 {
    max-width: none
  }

  .doc {
    grid-template-columns: 76px minmax(0, 1fr)
  }
}

@media(max-width:900px) {
  .container {
    width: min(calc(100% - 34px), var(--container))
  }

  .hero-status-grid {
    grid-template-columns: 1fr
  }

  .integration-map {
    min-height: 330px
  }

  .doc {
    grid-template-columns: 64px minmax(0, 1fr)
  }

  .doc-icon {
    min-width: 58px;
    height: 54px
  }

  .doc .open {
    grid-column: 2;
    justify-self: start
  }

  .section-head h2 {
    max-width: none
  }
}

@media(max-width:720px) {
  .container {
    width: min(calc(100% - 26px), var(--container))
  }

  .hero-art-v5 {
    padding: 12px
  }

  .trust-visual {
    min-height: 330px
  }

  .trust-shield-svg {
    width: 180px
  }

  .trust-data-rail {
    left: 12px;
    right: 12px;
    bottom: 14px
  }

  .trust-data-rail span {
    font-size: 9px
  }

  .integration-intro {
    gap: 28px
  }

  .integration-intro .section-head h2 {
    font-size: clamp(36px, 11vw, 50px);
    max-width: none
  }

  .integration-map {
    min-height: 430px
  }

  .integration-core {
    top: 49%
  }

  .node-1 {
    left: 7%;
    top: 8%
  }

  .node-2 {
    right: 7%;
    top: 20%
  }

  .node-3 {
    left: 6%;
    top: 35%
  }

  .node-4 {
    right: 5%;
    top: 62%
  }

  .node-5 {
    left: 8%;
    bottom: 16%
  }

  .node-6 {
    right: 7%;
    bottom: 5%
  }

  .doc {
    grid-template-columns: 1fr;
    padding: 18px
  }

  .doc-icon {
    width: 58px;
    min-width: 58px;
    height: 52px
  }

  .doc .open {
    grid-column: 1
  }

  .hero-status-grid {
    margin-top: 10px
  }

  .float-card {
    display: none !important
  }
}

@media(max-width:470px) {
  .trust-visual {
    min-height: 300px
  }

  .trust-visual-caption {
    font-size: 8px
  }

  .trust-data-rail {
    grid-template-columns: 1fr
  }

  .trust-data-rail span:nth-child(2),
  .trust-data-rail span:nth-child(3) {
    display: none
  }

  .integration-map {
    min-height: 450px
  }

  .integration-node {
    white-space: normal;
    max-width: 44%;
    text-align: center
  }

  .doc h3 {
    font-size: 16px
  }
}

@media(prefers-reduced-motion:reduce) {
  .trust-visual:after {
    animation: none
  }
}


/* =========================================================
   V6 — Premium trust infrastructure visual system
   ========================================================= */
:root {
  --v6-surface: #06182b;
  --v6-surface-hi: #0a2239;
  --v6-line: rgba(113, 211, 255, .18);
  --v6-cyan: #43d9ff;
  --v6-blue: #54a7ff;
  --v6-teal: #55edc7;
  --v6-violet: #9f7cff;
  --v6-amber: #f4b74c;
  --v6-shadow: 0 34px 100px rgba(0, 0, 0, .42)
}

[data-ui-version="v6"] body {
  background: radial-gradient(circle at 82% 4%, rgba(63, 137, 255, .12), transparent 27%), radial-gradient(circle at 10% 38%, rgba(72, 228, 205, .065), transparent 28%), var(--bg)
}

[data-ui-version="v6"] .card,
[data-ui-version="v6"] .iso,
[data-ui-version="v6"] .partner-card {
  border-color: rgba(95, 201, 255, .15);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .12)
}

[data-ui-version="v6"] .card:hover,
[data-ui-version="v6"] .iso:hover,
[data-ui-version="v6"] .partner-card:hover {
  border-color: rgba(95, 214, 255, .34);
  transform: translateY(-2px)
}

.hero-v6 {
  padding: 72px 0 64px;
  background-size: 48px 48px;
  overflow: visible
}

.hero-v6:before {
  background: linear-gradient(90deg, rgba(3, 15, 29, .985) 0%, rgba(3, 15, 29, .92) 42%, rgba(3, 15, 29, .5))
}

.hero-grid-v6 {
  grid-template-columns: minmax(0, .92fr) minmax(650px, 1.08fr);
  gap: clamp(46px, 5vw, 86px);
  align-items: center
}

.hero-copy-v6 h1 {
  font-size: 70px;
  margin-bottom: 22px;
  max-width: none;
  line-height: normal;
  overflow: visible
}

/* background-clip + line-height chặt cắt đuôi chữ y (Delivery) — dùng block + line-box rộng hơn */
.hero-copy-v6 h1>.gradient {
  display: block;
  width: max-content;
  max-width: 100%;
  white-space: nowrap;
  font-size: 70px;
  letter-spacing: -.02em;
  line-height: 1.4;
  padding: .18em .08em .28em 0;
  margin: -.1em 0 -.05em;
  overflow: visible;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(100deg, var(--cyan), #77a2ff 58%, var(--mint));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 700;
}

.hero-title-line {
  display: block;
  margin-top: 12px;
  color: #edf7ff;
  font-size: 60px;
  line-height: 1.08;
  letter-spacing: -.038em
}

.hero-copy-v6 .lead {
  max-width: 61ch;
  font-size: 20px;
  line-height: 1.55
}

.hero-actions-v6 {
  margin-bottom: 14px
}

.hero-actions-v6 .btn {
  font-size: 14px
}

.trust-record-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #bfeeff;
  font-weight: 800;
  font-size: 14px;
  border-bottom: 1px solid rgba(67, 217, 255, .34);
  padding-bottom: 4px
}

.trust-record-link:hover {
  color: #fff;
  border-color: var(--v6-cyan)
}

.assurance-signals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 28px
}

.assurance-signals>div {
  padding: 13px 14px;
  border: 1px solid rgba(82, 200, 255, .16);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(8, 31, 53, .72), rgba(4, 19, 34, .78))
}

.assurance-signals span {
  display: block;
  color: var(--v6-cyan);
  font-size: 10px;
  letter-spacing: .12em;
  font-weight: 900
}

.assurance-signals b {
  display: block;
  margin-top: 5px;
  color: #d7e9f5;
  font-size: 12px;
  line-height: 1.4
}

.licence-note-v6 {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(244, 183, 76, .22);
  border-radius: 14px;
  background: rgba(244, 183, 76, .055)
}

.licence-note-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: rgba(244, 183, 76, .11);
  color: #ffd487;
  font-size: 10px;
  font-weight: 950
}

.licence-note-v6 b {
  display: block;
  font-size: 12px;
  color: #f5dfb6
}

.licence-note-v6 small {
  display: block;
  color: #9e927c;
  font-size: 10px;
  margin-top: 2px
}

.licence-note-v6 .demo-badge {
  white-space: nowrap
}

.hero-art-v6 {
  padding: 16px;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(10, 42, 69, .82), rgba(3, 17, 31, .92));
  border: 1px solid rgba(76, 205, 255, .25);
  box-shadow: var(--v6-shadow);
  overflow: hidden
}

.demo-corner {
  position: absolute;
  right: 28px;
  top: 25px;
  z-index: 8;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(244, 183, 76, .11);
  border: 1px solid rgba(244, 183, 76, .28);
  color: #ffd487;
  font-size: 8px;
  letter-spacing: .1em;
  font-weight: 900
}

.orchestration-visual {
  position: relative;
  min-height: 545px;
  border: 1px solid rgba(90, 207, 255, .15);
  border-radius: 22px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 46%, rgba(67, 217, 255, .105), transparent 31%), radial-gradient(circle at 50% 49%, rgba(159, 124, 255, .065), transparent 43%), linear-gradient(145deg, rgba(4, 25, 46, .94), rgba(2, 13, 26, .99));
  isolation: isolate
}

.orchestration-visual:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(67, 217, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(67, 217, 255, .035) 1px, transparent 1px);
  background-size: 30px 30px;
  mask-image: linear-gradient(to bottom, transparent, black 18%, black 82%, transparent);
  z-index: -2
}

.orchestration-paths {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none
}

.data-path {
  opacity: .78
}

.data-path-secondary {
  opacity: .42
}

.data-packet {
  transform-box: fill-box;
  transform-origin: center;
  animation: v6Pulse 3.8s ease-in-out infinite
}

.packet-b {
  animation-delay: .65s
}

.packet-c {
  animation-delay: 1.3s
}

.orchestration-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(260px, 1.28fr) minmax(0, .86fr);
  gap: 16px;
  align-items: center;
  min-height: 430px;
  padding: 64px 22px 88px
}

.orchestration-stage {
  min-width: 0;
  padding: 18px 16px;
  border: 1px solid rgba(88, 207, 255, .16);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(8, 32, 54, .9), rgba(3, 18, 33, .92));
  text-align: center;
  box-shadow: 0 16px 44px rgba(0, 0, 0, .2)
}

.orchestration-stage h2 {
  font-size: 16px;
  line-height: 1.28;
  margin: 10px 0 7px;
  letter-spacing: -.02em
}

.orchestration-stage p {
  font-size: 14px;
  color: #8fa9bd;
  margin: 0 auto 12px;
  max-width: 25ch
}

.stage-label {
  display: block;
  color: #7fdfff;
  font-size: 8px;
  letter-spacing: .14em;
  font-weight: 950
}

.stage-icon {
  width: 54px;
  height: 54px;
  margin: 14px auto 2px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: rgba(84, 167, 255, .09);
  color: #73c7ff;
  border: 1px solid rgba(84, 167, 255, .2)
}

.stage-icon-svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round
}

.stage-state {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.25
}

.demo-neutral {
  background: rgba(244, 183, 76, .08);
  border: 1px solid rgba(244, 183, 76, .18);
  color: #d9be8c
}

.core-stage {
  padding: 21px 18px;
  border-color: rgba(67, 217, 255, .34);
  background: linear-gradient(160deg, rgba(11, 48, 78, .97), rgba(5, 23, 42, .98));
  box-shadow: 0 24px 64px rgba(0, 0, 0, .31), 0 0 50px rgba(67, 217, 255, .075)
}

.core-stage .stage-label {
  color: #70f0da
}

.core-icon {
  color: #6de8db;
  background: rgba(85, 237, 199, .08);
  border-color: rgba(85, 237, 199, .2)
}

.core-layer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-top: 14px
}

.core-layer {
  min-width: 0;
  padding: 9px 7px;
  border: 1px solid rgba(96, 207, 255, .13);
  border-radius: 10px;
  background: rgba(2, 15, 29, .48);
  color: #c4ddeb;
  font-size: 10px;
  line-height: 1.3
}

.core-layer:nth-child(3),
.core-layer:nth-child(4) {
  border-color: rgba(159, 124, 255, .2);
  color: #d8ceff
}

.core-layer:nth-child(6) {
  border-color: rgba(85, 237, 199, .18);
  color: #baf6e7
}

.evidence-mini-flow {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 3;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px
}

.evidence-mini-flow:before {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  top: 12px;
  height: 1px;
  background: linear-gradient(90deg, var(--v6-blue), var(--v6-cyan), var(--v6-violet), var(--v6-teal));
  opacity: .42;
  z-index: -1
}

.evidence-mini-flow li {
  min-width: 0;
  text-align: center
}

.evidence-mini-flow span {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  margin: 0 auto 6px;
  border-radius: 8px;
  background: #08233b;
  border: 1px solid rgba(79, 208, 255, .26);
  color: #8fe6ff;
  font-size: 10px;
  font-weight: 950
}

.evidence-mini-flow b {
  display: block;
  color: #9db6c9;
  font-size: 10px;
  line-height: 1.25;
  font-weight: 750
}

.telemetry-bar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 10px 0 0;
  border: 1px solid rgba(88, 207, 255, .15);
  border-radius: 15px;
  overflow: hidden;
  background: rgba(88, 207, 255, .15)
}

.telemetry-bar>div {
  min-width: 0;
  margin: 0;
  padding: 11px 12px;
  background: rgba(4, 22, 40, .96)
}

.telemetry-bar dt {
  color: #879fb3;
  font-size: 10px;
  letter-spacing: .1em;
  font-weight: 900
}

.telemetry-bar dd {
  margin: 4px 0 0;
  color: #e4f4fc;
  font-size: 10px;
  font-weight: 850;
  overflow-wrap: anywhere
}

.evidence-lifecycle-section {
  overflow: hidden
}

.evidence-lifecycle-v6 {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  position: relative
}

.evidence-lifecycle-v6:before {
  content: "";
  position: absolute;
  left: 5%;
  right: 5%;
  top: 29px;
  height: 2px;
  background: linear-gradient(90deg, var(--v6-blue), var(--v6-cyan), var(--v6-violet), var(--v6-teal));
  opacity: .42
}

.evidence-step-v6 {
  position: relative;
  min-width: 0;
  padding: 17px 14px 18px;
  margin-top: 0;
  border: 1px solid rgba(87, 205, 255, .14);
  border-radius: 16px;
  background: linear-gradient(150deg, rgba(8, 31, 53, .82), rgba(4, 18, 33, .9));
  text-align: left
}

.evidence-step-v6>span {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin-bottom: 17px;
  border-radius: 11px;
  background: #08233b;
  border: 1px solid rgba(79, 208, 255, .32);
  color: #8fe6ff;
  font-size: 10px;
  font-weight: 950
}

.evidence-step-v6 h3 {
  font-size: 14px;
  margin: 0 0 8px
}

.evidence-step-v6 p {
  font-size: 12px;
  color: #829aaf;
  margin: 0;
  line-height: 1.55
}

.centered-actions {
  justify-content: center
}

@keyframes v6Pulse {

  0%,
  100% {
    opacity: .38;
    transform: scale(.78)
  }

  50% {
    opacity: 1;
    transform: scale(1.22)
  }
}

@media(max-width:1320px) {
  .hero-grid-v6 {
    grid-template-columns: minmax(0, .9fr) minmax(580px, 1.1fr);
    gap: 42px
  }

  .orchestration-grid {
    grid-template-columns: minmax(0, .82fr) minmax(250px, 1.36fr) minmax(0, .82fr);
    padding-inline: 16px
  }

  .orchestration-stage {
    padding-inline: 12px
  }
}

@media(max-width:1120px) {
  .hero-grid-v6 {
    grid-template-columns: 1fr
  }

  .hero-copy-v6 {
    max-width: 850px
  }

  .hero-copy-v6 h1 {
    max-width: none
  }

  .hero-art-v6 {
    width: 100%;
    max-width: 930px;
    margin-inline: auto
  }

  .evidence-lifecycle-v6 {
    grid-template-columns: repeat(3, 1fr)
  }

  .evidence-lifecycle-v6:before {
    display: none
  }
}

@media(max-width:780px) {
  .hero-v6 {
    padding-top: 54px
  }

  .assurance-signals {
    grid-template-columns: 1fr
  }

  .licence-note-v6 {
    grid-template-columns: auto minmax(0, 1fr)
  }

  .licence-note-v6 .demo-badge {
    grid-column: 2;
    justify-self: start
  }

  .hero-art-v6 {
    padding: 10px
  }

  .demo-corner {
    right: 20px;
    top: 18px
  }

  .orchestration-visual {
    min-height: auto;
    padding: 58px 12px 14px
  }

  .orchestration-paths {
    display: none
  }

  .orchestration-grid {
    min-height: auto;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px
  }

  .orchestration-stage {
    position: relative;
    text-align: left;
    padding: 16px 16px 16px 82px
  }

  .orchestration-stage:not(:last-child):after {
    content: "";
    position: absolute;
    left: 42px;
    bottom: -13px;
    width: 1px;
    height: 14px;
    background: linear-gradient(var(--v6-cyan), var(--v6-teal));
    opacity: .55
  }

  .stage-icon {
    position: absolute;
    left: 16px;
    top: 14px;
    margin: 0;
    width: 50px;
    height: 50px
  }

  .orchestration-stage h2 {
    margin-top: 5px
  }

  .orchestration-stage p {
    margin-left: 0;
    max-width: none
  }

  .core-stage {
    padding-left: 16px;
    text-align: center
  }

  .core-stage .stage-icon {
    position: static;
    margin: 12px auto 2px
  }

  .core-layer-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .evidence-mini-flow {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 14px
  }

  .evidence-mini-flow:before {
    display: none
  }

  .telemetry-bar {
    grid-template-columns: repeat(2, 1fr)
  }

  .evidence-lifecycle-v6 {
    grid-template-columns: repeat(2, 1fr)
  }
}

@media(max-width:520px) {
  .hero-copy-v6 h1>.gradient {
    font-size: clamp(42px, 11vw, 70px)
  }

  .hero-title-line {
    font-size: clamp(28px, 8vw, 60px)
  }

  .hero-copy-v6 .lead {
    font-size: 20px
  }

  .hero-actions-v6 {
    display: grid
  }

  .hero-actions-v6 .btn {
    width: 100%;
    font-size: 14px
  }

  .orchestration-visual {
    padding-inline: 9px
  }

  .core-layer-grid {
    grid-template-columns: 1fr
  }

  .evidence-mini-flow {
    grid-template-columns: repeat(2, 1fr)
  }

  .telemetry-bar {
    grid-template-columns: 1fr
  }

  .telemetry-bar>div {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: center
  }

  .telemetry-bar dd {
    text-align: right
  }

  .evidence-lifecycle-v6 {
    grid-template-columns: 1fr
  }

  .evidence-step-v6 {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 13px
  }

  .evidence-step-v6>span {
    grid-row: 1/3;
    margin: 0
  }

  .evidence-step-v6 h3 {
    align-self: end
  }

  .evidence-step-v6 p {
    grid-column: 2
  }

  .licence-note-v6 {
    grid-template-columns: 1fr
  }

  .licence-note-icon {
    display: none
  }

  .licence-note-v6 .demo-badge {
    grid-column: 1
  }
}

@media(prefers-reduced-motion:reduce) {
  .data-packet {
    animation: none
  }

  .card,
  .iso,
  .partner-card {
    transition: none !important
  }
}


/* Trusted Delivery V7 - Service Access Platform */
:root {
  --v7-cyan: #4ddcff;
  --v7-teal: #55edc7;
  --v7-violet: #a789ff;
  --v7-amber: #f4b74c
}

.login-group {
  position: relative
}

.login-trigger {
  white-space: nowrap
}

.login-mega {
  left: auto;
  right: 0;
  transform: translateY(8px);
  width: 520px;
  grid-template-columns: repeat(2, 1fr)
}

.nav-group:hover .login-mega,
.nav-group:focus-within .login-mega,
.login-group.open .login-mega {
  transform: translateY(0)
}

.demo-access-label {
  grid-column: 1/-1;
  color: #ffd28a;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  padding: 2px 12px 7px
}

.consultation-link {
  white-space: nowrap
}

.navlinks {
  gap: 16px
}

.nav {
  gap: 16px
}

.navlinks a {
  font-size: 12px
}

.service-page-hero {
  background-image: linear-gradient(rgba(65, 187, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(65, 187, 255, .045) 1px, transparent 1px);
  background-size: 44px 44px
}

.service-page-hero h1 {
  max-width: none;
  text-wrap: unset
}

.service-page-hero p {
  max-width: none
}

.service-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px
}

.service-access-card {
  position: relative;
  min-width: 0;
  padding: 24px;
  border: 1px solid rgba(85, 207, 255, .16);
  border-radius: 18px;
  background: linear-gradient(150deg, rgba(9, 34, 57, .9), rgba(3, 18, 32, .96));
  overflow: hidden
}

.service-access-card:after {
  content: "";
  position: absolute;
  width: 140px;
  height: 140px;
  right: -80px;
  top: -80px;
  border-radius: 50%;
  background: rgba(77, 220, 255, .045)
}

.service-card-code {
  display: inline-grid;
  place-items: center;
  min-width: 42px;
  max-width: 100%;
  height: auto;
  min-height: 31px;
  padding: 4px 10px;
  border-radius: 10px;
  background: rgba(77, 220, 255, .08);
  border: 1px solid rgba(77, 220, 255, .18);
  color: #86e8ff;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .08em;
  overflow-wrap: anywhere;
  line-height: 1.2
}

.service-access-card h3 {
  font-size: 20px;
  margin: 16px 0 8px
}

.service-access-card p {
  color: #9db2c4;
  font-size: 16px
}

.service-access-card ul {
  padding-left: 18px;
  margin: 15px 0 0;
  color: #c1d4e3;
  font-size: 14px
}

.service-access-card li {
  margin: 5px 0
}

.service-timeline {
  counter-reset: v7step;
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px
}

.service-timeline li {
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(86, 207, 255, .15);
  border-radius: 16px;
  background: rgba(5, 24, 42, .82)
}

.service-timeline li>span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(77, 220, 255, .18), rgba(85, 237, 199, .12));
  color: #aaf2ff;
  border: 1px solid rgba(77, 220, 255, .25);
  font-size: 14px;
  font-weight: 950
}

.service-timeline h3 {
  font-size: 16px;
  margin: 13px 0 6px
}

.service-timeline p {
  font-size: 14px;
  color: #879fb2;
  margin: 0
}

.table-scroll {
  overflow: auto;
  border: 1px solid rgba(86, 207, 255, .16);
  border-radius: 17px
}

.service-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px;
  background: rgba(4, 22, 39, .7)
}

.service-table th,
.service-table td {
  padding: 14px 15px;
  text-align: left;
  border-bottom: 1px solid rgba(86, 207, 255, .1);
  vertical-align: top;
  font-size: 14px
}

.service-table th {
  color: #8de8ff;
  background: rgba(8, 35, 58, .95);
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase
}

.service-table td {
  color: #c3d4e1
}

.service-table tr:last-child td {
  border-bottom: 0
}

.portal-launch-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px
}

.portal-launch-grid a {
  padding: 21px;
  border-radius: 16px;
  border: 1px solid rgba(77, 220, 255, .16);
  background: linear-gradient(145deg, rgba(8, 32, 54, .9), rgba(3, 18, 31, .95));
  transition: .2s
}

.portal-launch-grid a:hover {
  transform: translateY(-3px);
  border-color: rgba(77, 220, 255, .45)
}

.portal-launch-grid b {
  display: block;
  font-size: 15px
}

.portal-launch-grid span {
  display: block;
  margin-top: 5px;
  color: #869fb3;
  font-size: 10px
}

.portal-preview {
  margin-bottom: 28px;
  border: 1px solid rgba(77, 220, 255, .2);
  border-radius: 22px;
  overflow: hidden;
  background: #041527;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28)
}

.portal-preview-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(77, 220, 255, .13);
  color: #a8eefe;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em
}

.demo-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(244, 183, 76, .09);
  border: 1px solid rgba(244, 183, 76, .25);
  color: #ffd185;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em
}

.portal-preview-body {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  min-height: 370px
}

.portal-preview-body aside {
  padding: 22px 14px;
  border-right: 1px solid rgba(77, 220, 255, .1);
  background: rgba(3, 16, 29, .8)
}

.portal-preview-body aside b {
  display: block;
  color: #fff;
  font-size: 20px;
  margin: 0 8px 18px
}

.portal-preview-body aside a {
  display: block;
  padding: 9px 10px;
  margin: 3px 0;
  border-radius: 9px;
  color: #8098aa;
  font-size: 14px
}

.portal-preview-body aside a.active {
  background: rgba(77, 220, 255, .08);
  color: #bcefff
}

.portal-preview-body section {
  padding: 25px
}

.portal-preview-body h3 {
  font-size: 20px;
  margin: 0 0 20px
}

.preview-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px
}

.preview-metrics div {
  padding: 14px;
  border-radius: 13px;
  background: rgba(8, 34, 57, .82);
  border: 1px solid rgba(77, 220, 255, .12)
}

.preview-metrics span {
  display: block;
  color: #849caf;
  font-size: 12px
}

.preview-metrics b {
  display: block;
  color: #8ce7ff;
  font-size: 16px;
  margin-top: 5px
}

.preview-list {
  margin-top: 14px;
  border: 1px solid rgba(77, 220, 255, .12);
  border-radius: 14px;
  overflow: hidden
}

.preview-list>div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 13px;
  border-bottom: 1px solid rgba(77, 220, 255, .09)
}

.preview-list>div:last-child {
  border-bottom: 0
}

.preview-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--v7-amber)
}

.preview-list b {
  font-size: 16px
}

.preview-list small {
  color: #7f97aa;
  font-size: 12px
}

.app-store-panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: center
}

.store-coming {
  padding: 27px;
  border: 1px dashed rgba(244, 183, 76, .35);
  border-radius: 18px;
  background: rgba(244, 183, 76, .045)
}

.store-coming h3 {
  font-size: 23px;
  margin: 15px 0 8px
}

.store-coming p {
  color: #9db1c2
}

.compact-form {
  padding: 24px;
  border: 1px solid rgba(77, 220, 255, .14);
  border-radius: 18px;
  background: rgba(5, 24, 43, .72)
}

.start-role-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px
}

.start-role-grid article {
  padding: 24px;
  border: 1px solid rgba(77, 220, 255, .15);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(8, 32, 54, .88), rgba(3, 18, 32, .95))
}

.start-role-grid article>span {
  color: #58dcff;
  font-size: 14px;
  font-weight: 950
}

.start-role-grid h3 {
  font-size: 20px;
  margin: 10px 0 14px
}

.start-role-grid a {
  display: block;
  padding: 8px 0;
  border-bottom: 1px solid rgba(77, 220, 255, .08);
  color: #a9c4d7;
  font-size: 16px
}

.start-role-grid a:last-child {
  border-bottom: 0
}

.start-role-grid a:hover {
  color: #fff
}

@media(max-width:1280px) {
  .consultation-link {
    display: none
  }

  .service-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr))
  }

  .service-timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }

  .portal-launch-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media(max-width:1080px) {
  .login-group {
    display: none
  }

  .service-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .service-timeline {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .start-role-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media(max-width:720px) {

  .service-card-grid,
  .portal-launch-grid,
  .app-store-panel,
  .start-role-grid {
    grid-template-columns: 1fr
  }

  .service-timeline {
    grid-template-columns: 1fr
  }

  .portal-preview-body {
    grid-template-columns: 1fr
  }

  .portal-preview-body aside {
    display: none
  }

  .preview-metrics {
    grid-template-columns: 1fr 1fr
  }

  .portal-preview-body section {
    padding: 18px
  }

  .service-table {
    min-width: 680px
  }
}

@media(max-width:430px) {
  .preview-metrics {
    grid-template-columns: 1fr
  }

  .preview-list>div {
    grid-template-columns: auto 1fr
  }

  .preview-list small {
    grid-column: 2
  }

  .service-access-card {
    padding: 20px
  }
}

/* Icon card: khung vừa theo chữ (HASH, VAULT, BĂM…) */
.card .icon {
  width: fit-content;
  height: fit-content;
  min-width: 48px;
  min-height: 48px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap
}