/* TCT presentation layer: no global html/body resets; namespace every selector. */

.tct-shell {
  --tct-red: #9e2831;
  --tct-deep: #701c27;
  --tct-text: #263443;
  --tct-muted: #637181;
  --tct-line: #e2e7ec;
  --tct-paper: #fff;
  --tct-sand: #f7f4ef;
  font-family: Arial,"Helvetica Neue",sans-serif;
  color: var(--tct-text);
  background: #fff;
  border: 1px solid #e9edf0;
  border-radius: 16px;
  box-shadow: 0 8px 38px rgba(22,39,55,.06);
  overflow: hidden;
  width: 100%;
  box-sizing: border-box;
}

.tct-shell * {
  box-sizing: border-box;
}

.tct-shell a {
  text-decoration: none;
}

.tct-shell a:focus-visible,.tct-shell button:focus-visible,.tct-shell input:focus-visible,.tct-shell select:focus-visible,.tct-shell textarea:focus-visible {
  outline: 3px solid #d7a94a;
  outline-offset: 2px;
}

.tct-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 18px clamp(16px,3vw,44px);
  background: white;
}

.tct-brand {
  display: flex;
  gap: 14px;
  align-items: center;
  color: var(--tct-deep) !important;
}

.tct-brand-icon {
  background: var(--tct-red);
  color: #fff;
  border-radius: 12px;
  padding: 8px 15px;
  font-size: 25px;
}

.tct-brand strong {
  display: block;
  letter-spacing: .05em;
  font-size: 17px;
}

.tct-brand small {
  display: block;
  color: var(--tct-muted);
  font-size: 11px;
  margin-top: 4px;
  letter-spacing: .045em;
}

.tct-user {
  font-size: 13px;
  color: var(--tct-muted);
}

.tct-nav {
  display: flex;
  gap: 0;
  align-items: center;
  overflow-x: auto;
  background: #f8f9fa;
  border-top: 1px solid var(--tct-line);
  border-bottom: 1px solid var(--tct-line);
  padding: 0 clamp(8px,2vw,28px);
  scrollbar-width: thin;
}

.tct-nav a {
  padding: 15px 12px;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 600;
  color: var(--tct-text);
  transition: background .15s;
}

.tct-nav a:hover {
  color: var(--tct-deep);
  background: #f2e8e8;
}

.tct-main {
  padding: 24px clamp(16px,3vw,44px) 44px;
  min-height: 55vh;
}

.tct-page-title h1 {
  font-size: clamp(22px,2.3vw,31px);
  font-weight: 750;
  color: var(--tct-deep);
  line-height: 1.25;
  margin: 0 0 22px;
}

.tct-main h2 {
  line-height: 1.25;
}

.tct-main p {
  line-height: 1.65;
}

.tct-hero {
  display: grid;
  grid-template-columns: minmax(0,1.4fr) minmax(120px,.6fr);
  align-items: center;
  gap: 14px;
  min-height: 340px;
  background: linear-gradient(115deg,#7c202c,#af3b40);
  color: white;
  border-radius: 18px;
  padding: clamp(25px,4vw,64px);
  position: relative;
  overflow: hidden;
}

.tct-hero h2 {
  font-size: clamp(28px,3.5vw,49px);
  line-height: 1.1;
  color: white;
  margin: 15px 0;
}

.tct-hero p {
  font-size: 16px;
  color: #ffedf0;
  max-width: 600px;
}

.tct-eyebrow {
  font-size: 12px;
  letter-spacing: .15em;
  color: #ffded2;
  font-weight: bold;
}

.tct-hero-symbol {
  font-size: clamp(110px,17vw,230px);
  text-align: center;
  opacity: .13;
  transform: rotate(-15deg);
}

.tct-hero-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.tct-btn {
  padding: 12px 18px;
  border-radius: 9px;
  font-weight: 700;
  display: inline-block;
}

.tct-btn-light {
  background: #fff;
  color: #83242f !important;
}

.tct-btn-outline {
  border: 1px solid #fff;
  color: #fff !important;
}

.tct-section {
  margin-top: 34px;
}

.tct-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.tct-section-heading h2 {
  font-size: 23px;
  color: var(--tct-text);
  margin: 0;
}

.tct-section-heading p {
  margin: 0;
  color: var(--tct-muted);
}

.tct-feature-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 14px;
}

.tct-feature {
  display: flex;
  min-height: 190px;
  flex-direction: column;
  gap: 13px;
  padding: 23px;
  border: 1px solid var(--tct-line);
  border-radius: 14px;
  background: #fff;
  color: var(--tct-text) !important;
  transition: transform .2s,box-shadow .2s;
}

.tct-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(30,40,50,.08);
}

.tct-feature-number {
  color: #b47f52;
  font-weight: bold;
  font-size: 13px;
}

.tct-feature strong {
  font-size: 17px;
}

.tct-feature>span:nth-last-child(2) {
  font-size: 13px;
  color: var(--tct-muted);
  line-height: 1.5;
}

.tct-feature-arrow {
  margin-top: auto;
  color: var(--tct-red);
  font-size: 22px;
}

.tct-workspace {
  padding: 25px;
  background: var(--tct-sand);
  border-radius: 14px;
}

.tct-work-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
}

.tct-work-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  background: white;
  border: 1px solid var(--tct-line);
  border-radius: 9px;
  padding: 17px;
  color: var(--tct-text) !important;
  font-weight: bold;
}

.tct-work-link span {
  color: var(--tct-red);
}

.tct-access {
  padding: 26px;
  border: 1px solid var(--tct-line);
  border-radius: 14px;
  background: var(--tct-sand);
}

.tct-access h2 {
  font-size: 19px;
  margin: 0;
}

.tct-footer {
  border-top: 1px solid var(--tct-line);
  color: var(--tct-muted);
  text-align: center;
  padding: 20px;
  font-size: 12px;
}

.tct-main form {
  display: grid;
  gap: 14px;
  max-width: 1000px;
}

.tct-main label {
  display: grid;
  gap: 6px;
  font-weight: 600;
}

.tct-main input,.tct-main textarea,.tct-main select {
  width: 100%;
  max-width: 100%;
  background: #fff;
  padding: 11px 13px;
  border: 1px solid #cbd3dc;
  border-radius: 8px;
  color: #263443;
}

.tct-main button {
  padding: 12px 20px;
  color: #fff;
  background: var(--tct-red);
  border: 0;
  border-radius: 8px;
  cursor: pointer;
}

.tct-main button:hover {
  background: var(--tct-deep);
}

.tct-main table {
  border-collapse: collapse;
  width: 100%;
  display: block;
  overflow-x: auto;
}

.tct-main th,.tct-main td {
  padding: 12px;
  border: 1px solid var(--tct-line);
  text-align: left;
}

.tct-main th {
  background: #f6f7f9;
}

.tct-main section:not(.tct-hero):not(.tct-section) {
  padding: 15px 0;
  border-bottom: 1px solid var(--tct-line);
}

.tct-cards {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

.tct-cards a {
  padding: 18px;
  border: 1px solid var(--tct-line);
  border-radius: 8px;
}

.tct-alert {
  color: #a31c2c;
}

/* Full-width module content within a NukeViet one-column theme layout. The main site layout must disable side blocks. */

.tct-shell {
  max-width: none;
}

@media(max-width:980px){.tct-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tct-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tct-hero{grid-template-columns:1fr}.tct-hero-symbol{display:none}}

@media(max-width:600px){.tct-topbar{padding:13px}.tct-brand-icon{font-size:18px;padding:7px 10px}.tct-brand strong{font-size:13px}.tct-brand small{font-size:9px}.tct-user{display:none}.tct-nav a{font-size:12px;padding:13px 9px}.tct-main{padding:18px 12px 30px}.tct-hero{padding:25px 20px;min-height:300px}.tct-feature-grid,.tct-work-grid{grid-template-columns:1fr}.tct-feature{min-height:145px}.tct-section-heading h2{font-size:20px}}

@media(prefers-reduced-motion:reduce){.tct-feature{transition:none}}

/* v2.1: readable, contained layout. Full-width relies on a genuine one-column site theme. */

.tct-shell {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-inline: auto;
}

.tct-nav a.is-active {
  background: #f2e8e8;
  color: var(--tct-deep);
  box-shadow: inset 0 -3px 0 var(--tct-red);
}

.tct-welcome {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: center;
  border-radius: 16px;
  background: linear-gradient(110deg,#f8f4ef,#f7e9e5);
  padding: clamp(20px,3vw,38px);
  border: 1px solid #eadbd5;
}

.tct-welcome h2 {
  font-size: clamp(23px,3vw,38px);
  margin: 8px 0;
  color: #712632;
}

.tct-welcome p {
  max-width: 680px;
  margin: 0;
  color: #555f6c;
}

.tct-kicker {
  font-weight: 700;
  letter-spacing: .13em;
  font-size: 11px;
  color: #91434b;
}

.tct-btn-dark {
  color: #fff !important;
  background: #8c2733;
  white-space: nowrap;
}

.tct-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(240px,100%),1fr));
  gap: 15px;
}

.tct-dashboard-card {
  display: flex;
  gap: 9px;
  flex-direction: column;
  min-height: 158px;
  padding: 21px;
  border: 1px solid var(--tct-line);
  border-radius: 13px;
  background: #fff;
  color: var(--tct-text) !important;
  box-shadow: 0 3px 14px rgba(22,39,55,.04);
}

.tct-dashboard-card:hover {
  border-color: #c89094;
  box-shadow: 0 8px 24px rgba(45,24,32,.09);
}

.tct-dashboard-card strong {
  font-size: 17px;
}

.tct-dashboard-card small {
  color: var(--tct-muted);
  font-size: 13px;
  line-height: 1.5;
}

.tct-dashboard-card .tct-feature-arrow {
  align-self: flex-end;
  font-size: 20px;
}

.tct-dashboard-marker {
  color: #ad5e65;
  font-size: 25px;
  line-height: 12px;
}

.tct-quick-public {
  padding: 23px;
  border-radius: 13px;
  border: 1px solid var(--tct-line);
  background: #fafbfc;
}

.tct-quick-public h2 {
  font-size: 19px;
  margin: 0 0 15px;
}

.tct-quick-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tct-quick-links a {
  border: 1px solid #e3d9d6;
  background: #fff;
  padding: 11px 14px;
  border-radius: 8px;
  color: #802d37;
  font-weight: 600;
}

@media(max-width:700px){.tct-welcome{align-items:stretch;flex-direction:column}.tct-welcome .tct-btn{align-self:flex-start}.tct-dashboard-grid{grid-template-columns:1fr}.tct-dashboard-card{min-height:125px}}

/* v2.2: accessibility and responsive production-theme hardening, scoped entirely to this module. */

.tct-shell {
  max-width: 100%;
  isolation: isolate;
  overflow: clip;
}

.tct-shell .tct-skip-link {
  position: absolute;
  left: 12px;
  top: -120px;
  z-index: 1000;
  background: #fff;
  color: #712632;
  padding: 12px 16px;
  border: 2px solid #712632;
  border-radius: 8px;
  font-weight: 700;
}

.tct-shell .tct-skip-link:focus {
  top: 12px;
}

.tct-shell :is(.tct-topbar,.tct-main,.tct-nav,.tct-workspace,.tct-welcome,.tct-feature,.tct-dashboard-card) {
  min-width: 0;
}

.tct-shell :is(h1,h2,h3,p,strong,small,td,th,a) {
  overflow-wrap: break-word;
}

.tct-nav {
  max-width: 100%;
  overscroll-behavior-inline: contain;
}

.tct-nav a {
  flex: 0 0 auto;
  min-height: 45px;
  display: inline-flex;
  align-items: center;
}

.tct-main {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.tct-main :is(input,textarea,select) {
  font: inherit;
  min-width: 0;
}

.tct-main :is(input,textarea,select):focus-visible {
  border-color: #902a36;
  box-shadow: 0 0 0 2px #ecd6d9;
}

.tct-main :is(button,.tct-btn,.tct-work-link,.tct-quick-links a) {
  min-height: 44px;
}

.tct-main table {
  max-width: 100%;
  font-size: 14px;
  background: #fff;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.tct-main table :is(th,td) {
  vertical-align: top;
  max-width: 480px;
}

.tct-main table a {
  font-weight: 600;
  color: #872b38;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tct-main :is(.tct-feature,.tct-dashboard-card,.tct-work-link,.tct-quick-links a):focus-visible {
  outline: 3px solid #c28d2e;
  outline-offset: 3px;
}

.tct-footer {
  line-height: 1.65;
}

@media(max-width:767px){.tct-topbar{align-items:flex-start}.tct-brand{min-width:0}.tct-brand>span:last-child{min-width:0}.tct-brand strong{line-height:1.4}.tct-brand small{line-height:1.5}.tct-nav{padding-inline:8px}.tct-main{padding:18px 14px 30px}.tct-main table :is(th,td){padding:10px;white-space:normal}.tct-hero h2{font-size:clamp(26px,8vw,37px)}.tct-welcome{padding:20px}.tct-section{margin-top:24px}}

@media(max-width:420px){.tct-brand-icon{display:none}.tct-brand strong{font-size:13px}.tct-shell .tct-feature{min-height:0}.tct-hero-actions .tct-btn{width:100%;text-align:center}.tct-main{padding-inline:12px}}

@media(forced-colors:active){.tct-shell :is(a,button,input,select,textarea){forced-color-adjust:auto}.tct-nav a.is-active{outline:2px solid Highlight}}

/* v2.3: compact working screens, readable responsive controls, no theme-wide selectors. */

.tct-home .tct-page-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.tct-shell {
  color-scheme: light;
}

.tct-shell .tct-main {
  overflow-wrap: anywhere;
}

.tct-shell .tct-main :is(button,input,select,textarea) {
  font-size: 16px;
  line-height: 1.45;
}

.tct-shell .tct-main :is(input,select,textarea) {
  min-height: 44px;
}

.tct-shell .tct-main textarea {
  min-height: 115px;
  resize: vertical;
}

.tct-shell .tct-main input[type=checkbox],.tct-shell .tct-main input[type=radio] {
  width: auto;
  min-height: 0;
  accent-color: #922d39;
}

.tct-shell .tct-main input[type=file] {
  padding: 8px;
  max-width: 100%;
}

.tct-shell .tct-main form {
  width: 100%;
  min-width: 0;
}

.tct-shell .tct-main form :is(fieldset,section,div) {
  min-width: 0;
}

.tct-shell .tct-main :is(.tct-btn,button,.tct-dashboard-card,.tct-feature) {
  transition: background-color .15s,border-color .15s,box-shadow .15s;
}

.tct-shell .tct-main :is(.tct-btn,button) {
  font-weight: 650;
}

.tct-shell .tct-main .tct-work-link:hover,.tct-shell .tct-main .tct-quick-links a:hover {
  border-color: #bb868b;
  background: #fcf7f7;
}

.tct-shell .tct-footer {
  background: #faf9f7;
}

@media(min-width:1100px){.tct-signed-in .tct-main{padding-top:22px}.tct-signed-in .tct-dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

@media(max-width:767px){.tct-shell .tct-main :is(.tct-btn,button){max-width:100%}.tct-shell .tct-main form{gap:12px}.tct-shell .tct-nav{scrollbar-width:thin}.tct-shell .tct-topbar{gap:9px}.tct-shell .tct-main table{font-size:13px}}

@media(prefers-reduced-motion:reduce){.tct-shell .tct-main :is(.tct-btn,button,.tct-dashboard-card,.tct-feature){transition:none}}

/* Public design system v2.4 - scoped to module only */

.tct-public {
  --tct-red: #932e38;
  --tct-deep: #742630;
  --tct-text: #233444;
  --tct-muted: #5d6a77;
  --tct-sand: #f7f4ee;
  background: #fff;
}

.tct-public .tct-topbar {
  border-top: 4px solid #b58b43;
}

.tct-public .tct-main {
  padding-top: 18px;
}

.tct-public-hero {
  display: grid;
  grid-template-columns: minmax(0,1.45fr) minmax(300px,.82fr);
  align-items: stretch;
  min-height: 320px;
  background: linear-gradient(128deg,#742630 0%,#98333b 75%,#a44444 100%);
  color: #fff;
  border-radius: 16px;
  padding: clamp(24px,3vw,38px);
  gap: 24px;
  overflow: hidden;
  position: relative;
}

.tct-public-hero:before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg,transparent 0,transparent 35px,rgba(255,255,255,.025) 36px,rgba(255,255,255,.025) 37px);
  pointer-events: none;
}

.tct-public-hero-copy,
.tct-public-hero-side {
  position: relative;
  z-index: 1;
}

.tct-public-hero-copy {
  align-self: center;
}

.tct-official-label {
  display: block;
  color: #f5d7ba;
  font-weight: 700;
  letter-spacing: .14em;
  font-size: 11px;
  line-height: 1.5;
}

.tct-public-hero h2 {
  font-size: clamp(31px,3.6vw,50px);
  color: #fff;
  letter-spacing: -.03em;
  line-height: 1.12;
  margin: 14px 0 12px;
}

.tct-public-hero h2 em {
  font-style: normal;
  color: #ffe6c0;
}

.tct-public-hero p {
  color: #f8e9e9;
  max-width: 620px;
  line-height: 1.72;
  font-size: 16px;
}

.tct-public-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.tct-public-primary,.tct-public-secondary {
  min-height: 48px;
  padding: 13px 19px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.tct-public-primary {
  background: #fff;
  color: #75242e !important;
}

.tct-public-secondary {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.7);
}

.tct-public-primary:hover {
  background: #fff2db;
}

.tct-public-secondary:hover {
  background: rgba(255,255,255,.09);
}

.tct-public-hero-note {
  display: block;
  margin-top: 18px;
  color: #f5d4d4;
  font-size: 12px;
}

.tct-public-hero-side {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 14px;
  min-width: 0;
}

.tct-public-hero-badge {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  min-height: 84px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(86, 12, 22, .23);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.tct-public-hero-badge span {
  color: #f6e2c2;
  letter-spacing: .14em;
  text-align: left;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}

.tct-public-seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.22);
  font-family: Georgia,serif;
  font-size: 38px;
  line-height: 1;
  color: #f6e2c2;
}

.tct-public-contact-highlight {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  border-radius: 16px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
}

.tct-public-contact-highlight-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.tct-public-contact-kicker {
  display: block;
  font-size: 11px;
  letter-spacing: .14em;
  font-weight: 800;
  color: #ffe3bf;
  margin-bottom: 5px;
}

.tct-public-contact-highlight-head strong {
  display: block;
  color: #fff;
  font-size: 21px;
  line-height: 1.2;
}

.tct-public-contact-highlight-head p {
  margin: 7px 0 0;
  max-width: 340px;
  color: #f8dfe0;
  font-size: 13px;
  line-height: 1.55;
}

.tct-public-contact-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid rgba(255,255,255,.55);
  color: #fff !important;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.tct-public-contact-cta:hover {
  background: rgba(255,255,255,.08);
}

.tct-public-contact-stack {
  display: grid;
  gap: 10px;
}

.tct-public-contact-card {
  padding: 14px 15px;
  border-radius: 12px;
  background: rgba(91, 17, 23, .34);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.tct-public-contact-card-featured {
  background: rgba(76, 8, 18, .42);
}

.tct-public-contact-card-top {
  display: grid;
  gap: 5px;
  margin-bottom: 10px;
}

.tct-public-contact-card h3 {
  margin: 0;
  color: #fff;
  font-size: 16px;
  line-height: 1.35;
}

.tct-public-contact-person {
  margin: 0;
  color: #ffe0c2;
  font-size: 12px;
  font-weight: 700;
}

.tct-public-contact-meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.tct-public-contact-meta li {
  display: grid;
  gap: 2px;
}

.tct-public-contact-meta span {
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #f5d4d4;
  font-weight: 700;
}

.tct-public-contact-meta a,
.tct-public-contact-meta strong {
  color: #fff;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.tct-public-contact-empty {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(91,17,23,.24);
  border: 1px dashed rgba(255,255,255,.22);
}

.tct-public-contact-empty strong,
.tct-public-contact-empty span {
  display: block;
  color: #fff;
}

.tct-public-contact-empty span {
  margin-top: 6px;
  color: #f4d8d8;
  font-size: 13px;
  line-height: 1.6;
}

.tct-public-search {
  display: grid;
  grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr);
  gap: 24px;
  align-items: center;
  padding: 26px 30px;
  margin-top: 18px;
  background: #f9f7f3;
  border: 1px solid #e8e0d5;
  border-radius: 14px;
}

.tct-overline {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .13em;
  color: #9b4b4f;
}

.tct-public-search h2 {
  margin: 8px 0 3px;
  font-size: 23px;
  color: #233444;
}

.tct-public-search p {
  margin: 0;
  color: #64717c;
  font-size: 13px;
}

.tct-public .tct-main .tct-public-search-form {
  display: flex;
  align-items: stretch;
  gap: 8px;
  max-width: none;
}

.tct-public-search-form input {
  flex: 1;
  min-width: 0;
}

.tct-public-search-form button {
  white-space: nowrap;
}

.tct-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
}

.tct-public-section-heading {
  display: flex;
  gap: 20px;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 20px;
}

.tct-public-section-heading > div {
  position: relative;
}

.tct-public-section-heading h2 {
  margin: 8px 0 0;
  font-size: clamp(30px,3vw,42px);
  line-height: 1.18;
  letter-spacing: -.02em;
  color: #233444;
}

.tct-public-section-heading p {
  max-width: 430px;
  color: #68737f;
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}

.tct-public-service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(320px,1fr));
  gap: 18px;
}

.tct-public-service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 248px;
  padding: 26px 24px 24px;
  border-radius: 16px;
  border: 1px solid #dfe5eb;
  border-top: 4px solid #9b3240;
  color: #233444 !important;
  background: linear-gradient(180deg,#fff 0%,#fcfbfa 100%);
  gap: 16px;
  box-shadow: 0 8px 24px rgba(26,42,58,.045);
  transition: box-shadow .18s,border-color .18s,transform .18s;
}

.tct-public-service-card:hover {
  border-color: #c79a9e;
  box-shadow: 0 18px 34px rgba(38,48,60,.11);
  transform: translateY(-3px);
}

.tct-public-service-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  min-width: 54px;
  height: 32px;
  border-radius: 999px;
  background: #f6ebe5;
  border: 1px solid #ead3c8;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .08em;
  color: #9a5f42;
}

.tct-public-service-card strong {
  font-size: 31px;
  line-height: 1.22;
  letter-spacing: -.02em;
  color: #243647;
}

.tct-public-service-desc {
  font-size: 16px;
  color: #64717c;
  line-height: 1.72;
  max-width: 36ch;
}

.tct-public-service-arrow {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #f8eeee;
  font-size: 24px;
  color: #96323b;
}

.tct-public-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 32px;
}

.tct-public-panel {
  background: #fff;
  border: 1px solid #e1e5e9;
  border-radius: 14px;
  padding: 26px;
}

.tct-public-panel-cream {
  background: #f9f7f2;
  border-color: #eee2d4;
}

.tct-public-panel-title {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  align-items: start;
}

.tct-public-panel-title h2 {
  font-size: 21px;
  color: #253647;
  margin: 9px 0;
}

.tct-public-panel-title>a {
  white-space: nowrap;
  font-weight: 700;
  color: #8f2d37;
  font-size: 13px;
}

.tct-public-panel p {
  font-size: 14px;
  color: #5c6875;
  line-height: 1.75;
}

.tct-public-inline-link {
  display: inline-block;
  color: #8c2c36 !important;
  font-weight: 700;
  margin-top: 10px;
  font-size: 14px;
}

.tct-public-steps {
  padding-left: 19px;
  margin: 12px 0;
  color: #3d4c5a;
  line-height: 1.7;
  font-size: 14px;
}

.tct-public-steps li {
  padding: 3px 0;
}

.tct-public-notice {
  border-left: 3px solid #b59a62;
  background: #faf9f6;
  margin-top: 21px;
  padding: 14px 18px;
  color: #506070;
  font-size: 13px;
  line-height: 1.7;
}

.tct-list-intro {
  color: #667481;
  background: #f9f7f3;
  border-radius: 10px;
  padding: 15px 20px;
  margin-bottom: 20px;
}

.tct-list-intro p {
  margin: 0;
}

.tct-public-list {
  display: grid;
  gap: 13px;
}

.tct-public-list-item {
  padding: 23px 25px !important;
  border: 1px solid #e3e7eb !important;
  border-radius: 12px;
  background: #fff;
}

.tct-public-list-meta {
  font-size: 12px;
  font-weight: 700;
  color: #9b515a;
  letter-spacing: .045em;
}

.tct-public-list-item h2 {
  font-size: 19px;
  margin: 10px 0;
  line-height: 1.5;
}

.tct-public-list-item h2 a {
  color: #273a4a !important;
}

.tct-public-list-item h2 a:hover {
  color: #8f303a !important;
  text-decoration: underline;
}

.tct-list-issuer {
  font-size: 13px;
  color: #5d6b7a;
}

.tct-list-more {
  font-size: 13px;
  font-weight: 700;
  color: #8f303a !important;
}

.tct-empty-state {
  border: 1px dashed #d4d9dd;
  border-radius: 12px;
  padding: 28px;
  text-align: center;
  color: #5e6b7a;
}

.tct-main .tct-doc-search {
  padding: 20px;
  background: #f9f7f3;
  border-radius: 12px;
  max-width: none;
  margin: 0 0 24px;
  gap: 10px;
}

.tct-doc-search-row {
  display: flex;
  gap: 10px;
}

.tct-doc-search-row input {
  flex: 1;
}

@media(max-width:1050px){.tct-public-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tct-public-hero{grid-template-columns:minmax(0,1.2fr) minmax(280px,.85fr)}.tct-public-service-card strong{font-size:27px}.tct-public-service-desc{font-size:15px}}

@media(max-width:760px){.tct-public-hero{grid-template-columns:1fr;min-height:0;padding:24px 20px}.tct-public-hero-side{grid-template-rows:auto auto}.tct-public-hero-badge{min-height:0}.tct-public-contact-highlight-head{flex-direction:column;align-items:flex-start}.tct-public-contact-cta{width:100%}.tct-public-search{grid-template-columns:1fr;padding:20px;gap:14px}.tct-public-bottom-grid{grid-template-columns:1fr}.tct-public-section-heading{display:block}.tct-public-section-heading p{margin-top:10px}.tct-public-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tct-public-service-card{min-height:210px;padding:22px 18px}.tct-public-service-card strong{font-size:23px}.tct-public-service-desc{font-size:14px}.tct-public-service-number{width:48px;min-width:48px;height:30px;font-size:14px}}

@media(max-width:480px){.tct-public-service-grid{grid-template-columns:1fr}.tct-public-hero-actions>a{width:100%}.tct-public .tct-main .tct-public-search-form,.tct-doc-search-row{flex-direction:column}.tct-public-search-form button,.tct-doc-search-row button{width:100%}.tct-public-panel{padding:19px}.tct-public-list-item{padding:17px!important}.tct-public-updates{padding:16px}.tct-feed-panel{padding:16px}.tct-public-section-heading h2{font-size:34px}.tct-public-service-card{min-height:0}.tct-public-service-card strong{font-size:22px}}

@media(prefers-reduced-motion:reduce){.tct-public-service-card{transition:none}.tct-public-service-card:hover{transform:none}}

/* v2.5.3: standalone, viewport-wide shell (no NukeViet theme chrome). */

html {
  margin: 0;
  padding: 0;
}

body.tct-standalone {
  margin: 0 !important;
  padding: 0 !important;
  background: #f5f6f8;
  color: #263443;
  min-height: 100vh;
  min-width: 320px;
}

body.tct-standalone .tct-shell {
  width: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  min-height: 100vh;
  overflow: visible;
}

body.tct-standalone .tct-topbar,body.tct-standalone .tct-nav,body.tct-standalone .tct-main,body.tct-standalone .tct-footer {
  width: 100%;
  max-width: none;
}

body.tct-standalone .tct-main {
  padding: 26px clamp(18px,3.4vw,70px) 64px;
  min-height: calc(100vh - 200px);
}

body.tct-standalone .tct-nav {
  flex-wrap: wrap;
  overflow: visible;
  gap: 2px;
  padding-inline: clamp(12px,2vw,44px);
}

body.tct-standalone .tct-nav a {
  padding: 13px 12px;
  white-space: normal;
}

body.tct-standalone .tct-user {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

body.tct-standalone .tct-account-name {
  font-weight: 700;
  color: #263443;
  overflow-wrap: anywhere;
}

body.tct-standalone .tct-auth-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 19px;
  min-height: 42px;
  border-radius: 8px;
  background: #902d39;
  color: white !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

body.tct-standalone .tct-auth-button:hover {
  background: #70212d;
}

body.tct-standalone .tct-auth-out {
  background: #fff;
  border: 1px solid #aa7780;
  color: #7e2834 !important;
}

body.tct-standalone .tct-auth-out:hover {
  background: #f9edf0;
}

@media(max-width:700px){body.tct-standalone .tct-topbar{flex-wrap:wrap}body.tct-standalone .tct-user{width:100%;justify-content:flex-start}body.tct-standalone .tct-nav{flex-wrap:nowrap;overflow-x:auto}body.tct-standalone .tct-nav a{white-space:nowrap}body.tct-standalone .tct-main{padding:18px 14px 36px}}

/* v2.5.4: integrated login, no default theme */

.tct-auth-layout {
  max-width: 1100px;
  margin: 45px auto 65px;
  display: grid;
  grid-template-columns: 1.1fr minmax(320px,440px);
  gap: 48px;
  align-items: center;
}

.tct-auth-intro h2 {
  font-size: clamp(28px,3.5vw,48px);
  line-height: 1.14;
  color: #782333;
  margin: 16px 0;
}

.tct-auth-intro p {
  font-size: 16px;
  line-height: 1.75;
  max-width: 560px;
}

.tct-auth-note {
  color: #607182;
}

.tct-auth-form {
  background: #fff;
  border: 1px solid #e2e7ef;
  box-shadow: 0 16px 45px rgba(24,40,57,.09);
  border-radius: 16px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.tct-auth-form h3 {
  font-size: 25px;
  margin: 0 0 16px;
  color: #772436;
}

.tct-auth-form label {
  font-size: 14px;
  font-weight: 650;
  color: #233242;
}

.tct-auth-form input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #bac4d0;
  border-radius: 8px;
  padding: 12px 14px;
  min-height: 46px;
  margin-bottom: 12px;
  font: inherit;
}

.tct-auth-form input:focus {
  outline: 2px solid #9a3545;
  outline-offset: 1px;
}

.tct-auth-submit {
  background: #8b2637;
  color: #fff;
  border: 0;
  border-radius: 8px;
  padding: 14px;
  font-weight: 700;
  cursor: pointer;
}

.tct-auth-submit:disabled {
  opacity: .6;
}

.tct-auth-error {
  padding: 10px;
  background: #fff2f1;
  border: 1px solid #edc2c0;
  border-radius: 6px;
  color: #9a2030;
  font-size: 14px;
}

.tct-auth-2fa[hidden],.tct-auth-error[hidden] {
  display: none;
}

.tct-auth-help {
  font-size: 13px;
  line-height: 1.9;
  margin: 8px 0 0;
}

.tct-auth-help a {
  color: #852434;
  text-decoration: underline;
}

@media(max-width:760px){.tct-auth-layout{grid-template-columns:1fr;gap:20px;margin:20px auto}.tct-auth-form{padding:22px}}

/* v2.5.7: public approved contents, searchable vertical auto-scroll with visible scrollbar */

.tct-public-updates {
  margin-top: 32px;
  padding: 24px;
  border-radius: 16px;
  background: linear-gradient(180deg,#fff 0%,#fcfaf8 100%);
  border: 1px solid #ece2d7;
}

.tct-public-feed-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
}

.tct-feed-panel {
  min-width: 0;
  background: #fff;
  border: 1px solid #e0e3e8;
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 5px 24px rgba(28,44,56,.03);
}

.tct-feed-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.tct-feed-head h3 {
  margin: 0;
  font-size: 19px;
  color: #263747;
}

.tct-feed-head a {
  font-size: 13px;
  color: #8d2b38 !important;
  font-weight: 700;
  white-space: nowrap;
}

.tct-feed-search {
  width: 100%;
  min-height: 43px;
  padding: 10px 13px;
  border: 1px solid #cbd3db;
  border-radius: 8px;
  font-size: 14px;
  background: #fff;
  box-sizing: border-box;
}

.tct-feed-search:focus {
  outline: 2px solid #8d2b38;
  outline-offset: 1px;
}

.tct-feed-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 11px 0;
  font-size: 12px;
  color: #64717f;
}

.tct-feed-controls button {
  border: 1px solid #ddd7d9;
  background: #fff;
  color: #872936;
  border-radius: 6px;
  padding: 6px 10px;
  cursor: pointer;
  font-size: 12px;
}

.tct-feed-controls button:focus-visible {
  outline: 2px solid #8d2b38;
  outline-offset: 2px;
}

.tct-feed-scroll {
  height: 315px;
  max-height: 315px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #9c7480 #f0f2f4;
  border-top: 1px solid #e9e9ee;
  border-bottom: 1px solid #e9e9ee;
}

.tct-feed-scroll::-webkit-scrollbar {
  width: 9px;
}

.tct-feed-scroll::-webkit-scrollbar-track {
  background: #f0f2f4;
}

.tct-feed-scroll::-webkit-scrollbar-thumb {
  background: #9c7480;
  border-radius: 5px;
}

.tct-feed-item {
  padding: 14px 7px 15px 0;
  border-bottom: 1px solid #eef0f3;
}

.tct-feed-item[hidden] {
  display: none !important;
}

.tct-feed-item-meta {
  display: block;
  font-size: 11px;
  color: #9b5059;
  margin-bottom: 5px;
  line-height: 1.5;
}

.tct-feed-item a {
  display: block;
  color: #24394b !important;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
}

.tct-feed-item a:hover {
  color: #862635 !important;
  text-decoration: underline;
}

.tct-feed-empty,.tct-feed-no-match {
  color: #617184;
  font-size: 13px;
  padding: 16px 4px;
}

.tct-feed-no-match[hidden] {
  display: none !important;
}

@media(max-width:780px){.tct-public-feed-grid{grid-template-columns:1fr}.tct-feed-panel{padding:16px}.tct-feed-scroll{height:280px;max-height:280px}}

/* CV 3948 - 19-area disclosure catalog */

.tct-disclosure-filter,.tct-disclosure-form {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(265px,1fr));
  gap: 15px;
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 14px;
  background: #fcfaf7;
}

.tct-disclosure-filter label,.tct-disclosure-form label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-weight: 600;
}

.tct-disclosure-filter input,.tct-disclosure-filter select,.tct-disclosure-form input,.tct-disclosure-form select,.tct-disclosure-form textarea {
  padding: 11px;
  max-width: 100%;
  min-width: 0;
  border: 1px solid #bbc4ce;
  border-radius: 7px;
  background: #fff;
  color: #253040;
}

.tct-disclosure-filter button,.tct-disclosure-form button,.tct-disclosure-item button {
  padding: 11px 17px;
  border: 0;
  border-radius: 8px;
  background: #842735;
  color: #fff;
  cursor: pointer;
}

.tct-disclosure-results {
  display: grid;
  gap: 16px;
  margin: 24px 0;
}

.tct-disclosure-item {
  padding: 20px;
  border: 1px solid #e1e4e8;
  border-radius: 12px;
  background: #fff;
}

.tct-disclosure-item h2 {
  font-size: 1.18rem;
}

.tct-disclosure-item form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

/* v2.6.1: professional app-like sidebar with scroll and disclosure category management */

.tct-app-layout {
  display: grid;
  grid-template-columns: 280px minmax(0,1fr);
  align-items: start;
  min-height: calc(100vh - 170px);
}

.tct-sidebar {
  border-top: 1px solid var(--tct-line);
  border-right: 1px solid var(--tct-line);
  background: #f8fafb;
  min-width: 0;
  position: sticky;
  top: 0;
  align-self: start;
  height: 100%;
}

.tct-sidebar-scroll {
  max-height: calc(100vh - 92px);
  overflow: auto;
  padding: 16px 12px 22px;
  scrollbar-width: thin;
  scrollbar-color: #b8bfc8 #eef1f4;
}

.tct-sidebar-scroll::-webkit-scrollbar {
  width: 8px;
}

.tct-sidebar-scroll::-webkit-scrollbar-track {
  background: #eef1f4;
}

.tct-sidebar-scroll::-webkit-scrollbar-thumb {
  background: #b8bfc8;
  border-radius: 5px;
}

.tct-sidebar-head {
  padding: 4px 6px 14px;
}

.tct-sidebar-head strong {
  display: block;
  color: var(--tct-deep);
  font-size: 17px;
}

.tct-sidebar-head small {
  display: block;
  color: var(--tct-muted);
  font-size: 12px;
  margin-top: 3px;
}

.tct-nav-group+.tct-nav-group {
  margin-top: 18px;
}

.tct-nav-group h2 {
  margin: 0 0 9px;
  padding: 0 8px;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7a8796;
}

.tct-sidebar .tct-nav {
  display: grid;
  gap: 6px;
  padding: 0;
  background: transparent;
  border: 0;
  overflow: visible;
}

.tct-sidebar .tct-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  color: #223444;
  font-size: 14px;
  font-weight: 650;
  min-height: 44px;
}

.tct-sidebar .tct-nav a:hover {
  background: #fff;
  border-color: #e2e7ec;
  box-shadow: 0 3px 10px rgba(22,39,55,.05);
}

.tct-sidebar .tct-nav a.is-active {
  background: #fff1f2;
  border-color: #ebc6cb;
  color: var(--tct-deep);
  box-shadow: inset 4px 0 0 var(--tct-red);
}

.tct-main {
  border-top: 1px solid var(--tct-line);
}

.tct-list-intro {
  padding: 15px 18px;
  border: 1px solid #eadfd7;
  background: #faf7f3;
  border-radius: 12px;
  color: #5b6672;
}

.tct-inline-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 8px;
  border: 1px solid #c8d0d9;
  background: #fff;
  color: #7e2732 !important;
  font-weight: 650;
}

.tct-inline-btn:hover {
  background: #faf5f6;
  border-color: #bca0a5;
}

.tct-form-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}

.tct-pending-list {
  display: grid;
  gap: 10px;
  padding-left: 0;
  list-style: none;
  margin: 14px 0 18px;
}

.tct-pending-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #e3e8ee;
  border-radius: 10px;
  background: #fff;
}

.tct-pending-row a {
  font-weight: 600;
  color: #7a2430 !important;
}

.tct-inline-form {
  display: flex;
  gap: 10px;
  align-items: center;
}

@media(max-width:1100px){.tct-app-layout{grid-template-columns:240px minmax(0,1fr)}}

@media(max-width:860px){.tct-app-layout{grid-template-columns:1fr}.tct-sidebar{position:static;border-right:0;border-bottom:1px solid var(--tct-line)}.tct-sidebar-scroll{max-height:none}.tct-nav-group h2{padding-inline:0}.tct-sidebar .tct-nav{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}

@media(max-width:560px){.tct-sidebar .tct-nav{grid-template-columns:1fr}.tct-pending-row,.tct-inline-form,.tct-form-actions{flex-direction:column;align-items:stretch}.tct-inline-btn,.tct-inline-form button{width:100%}}

/* v2.6.2: authoritative app layout rules; replaces historical horizontal-nav behavior */

body.tct-standalone .tct-app-layout {
  display: grid;
  grid-template-columns: 260px minmax(0,1fr);
  min-height: calc(100vh - 145px);
  width: 100%;
}

body.tct-standalone .tct-sidebar {
  width: 260px;
  min-width: 0;
  position: sticky;
  top: 0;
  height: calc(100vh - 85px);
  background: #f7f9fc;
  border-right: 1px solid #e1e6ed;
}

body.tct-standalone .tct-sidebar-scroll {
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
}

body.tct-standalone .tct-sidebar .tct-nav {
  display: grid;
  grid-template-columns: 1fr;
  flex-wrap: nowrap;
  gap: 5px;
  width: auto;
  overflow: visible;
  padding: 0;
  background: transparent;
  border: 0;
}

body.tct-standalone .tct-sidebar .tct-nav a {
  display: flex;
  white-space: normal;
  width: 100%;
  padding: 11px 13px;
  line-height: 1.45;
  border-radius: 9px;
  box-shadow: none;
}

body.tct-standalone .tct-sidebar .tct-nav a.is-active {
  box-shadow: inset 4px 0 0 var(--tct-red);
  background: #fff0f2;
}

body.tct-standalone .tct-app-layout>.tct-main {
  width: auto;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
  padding: 28px clamp(18px,3vw,46px) 48px;
}

body.tct-standalone .tct-main :is(input,textarea,select) {
  max-width: 100%;
}

body.tct-standalone .tct-main .tct-inline-form {
  width: auto;
  max-width: max-content;
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

body.tct-standalone .tct-main .tct-inline-form button {
  width: auto;
  padding: 9px 13px;
  min-height: 38px;
}

body.tct-standalone .tct-main .tct-pending-list .tct-pending-row {
  min-width: 0;
  align-items: center;
}

@media(max-width:900px){body.tct-standalone .tct-app-layout{grid-template-columns:220px minmax(0,1fr)}body.tct-standalone .tct-sidebar{width:220px}body.tct-standalone .tct-app-layout>.tct-main{padding:20px}}

@media(max-width:680px){body.tct-standalone .tct-app-layout{display:block}body.tct-standalone .tct-sidebar{position:static;width:100%;height:auto;border-right:0;border-bottom:1px solid #e1e6ed}body.tct-standalone .tct-sidebar-scroll{height:auto;max-height:260px;padding:12px}body.tct-standalone .tct-sidebar .tct-nav{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}body.tct-standalone .tct-app-layout>.tct-main{padding:18px 14px 32px}body.tct-standalone .tct-main .tct-inline-form{max-width:100%}}

/* v2.6.3 | Unified workspace finishing layer (scoped, no CMS-wide styling). */
body.tct-standalone .tct-shell{
  --tct-red:#8c2533;--tct-deep:#651b29;--tct-text:#213245;
  --tct-muted:#637385;--tct-line:#e2e8ee;
  border:0;border-radius:0;box-shadow:none;
  min-height:100vh;background:#fff;
}
body.tct-standalone .tct-topbar{
  min-height:84px;border-bottom:1px solid var(--tct-line);
  padding-inline:clamp(18px,2.4vw,38px);
}
body.tct-standalone .tct-sidebar{
  background:#f7f9fb;border-right:1px solid var(--tct-line);
}
body.tct-standalone .tct-sidebar-scroll{
  scrollbar-color:#a4aeba #edf1f5;scrollbar-width:thin;
}
body.tct-standalone .tct-nav-group h2{
  font-size:11px;letter-spacing:.09em;color:#758292;
}
body.tct-standalone .tct-sidebar .tct-nav a{
  border-radius:9px;line-height:1.35;transition:background-color .16s,border-color .16s;
}
body.tct-standalone .tct-sidebar .tct-nav a.is-active{
  background:#fbeff0;border-color:#e8c9ce;color:#702230;
  box-shadow:inset 3px 0 #9e2c3b;
}
body.tct-standalone .tct-app-layout>.tct-main{
  background:#fff;padding-bottom:55px;
}
body.tct-standalone .tct-page-title h1{
  font-size:clamp(23px,2.2vw,30px);letter-spacing:-.025em;
}
body.tct-standalone .tct-main :is(.tct-disclosure-form,.tct-disclosure-filter){
  border:1px solid var(--tct-line);background:#fafbfd;border-radius:14px;
  padding:clamp(15px,2vw,25px);max-width:none;
}
body.tct-standalone .tct-main :is(input,select,textarea){
  border-color:#cbd5df;border-radius:9px;min-height:44px;
}
body.tct-standalone .tct-main :is(button,.tct-inline-btn){
  border-radius:9px;transition:background-color .15s,border-color .15s;
}
body.tct-standalone .tct-disclosure-item{
  box-shadow:0 3px 12px rgba(22,39,55,.035);border-color:#e1e7ed;
}
body.tct-standalone .tct-pending-row{
  background:#fff;border:1px solid #e3e9ef;border-radius:10px;
}
@media(max-width:680px){
  body.tct-standalone .tct-topbar{min-height:70px}
  body.tct-standalone .tct-app-layout>.tct-main{padding:18px 14px 35px}
  body.tct-standalone .tct-sidebar-scroll{max-height:240px}
}
@media(prefers-reduced-motion:reduce){
  body.tct-standalone .tct-sidebar .tct-nav a,
  body.tct-standalone .tct-main :is(button,.tct-inline-btn){transition:none}
}

/* v2.6.7: official notice print drafting (not a digital signature). */
.tct-print-toolbar{display:flex;gap:12px;align-items:center;margin:0 0 18px}.tct-print-toolbar a{padding:12px;border:1px solid #bbc5d1;border-radius:8px}.tct-print-document{max-width:210mm;margin:0 auto;padding:18mm 17mm;background:white;color:#101010;font:14pt/1.4 'Times New Roman',serif;border:1px solid #d6d6d6;min-height:275mm}.tct-print-letterhead{display:grid;grid-template-columns:45% 55%;gap:12px;text-align:center;font-size:12pt}.tct-print-letterhead strong{font-size:12pt}.tct-print-letterhead p{margin:5px 0}.tct-print-document h2,.tct-print-document h3{text-align:center;font-family:'Times New Roman',serif;color:#111}.tct-print-document h2{margin:38px 0 0;font-size:16pt}.tct-print-document h3{margin:2px 0 30px;font-size:15pt}.tct-print-document>p{text-align:justify;margin:12px 0}.tct-print-signature{width:48%;margin:34px 0 0 auto;text-align:center;font-size:13pt}.tct-sign-blank{min-height:95px}.tct-print-warning{padding:16px;border:1px solid #e8a5a5;background:#fff5f5}.tct-print-source{font-size:12px;color:#617184}
@page{size:A4;margin:14mm}
@media print{body.tct-standalone{background:#fff!important}.tct-topbar,.tct-sidebar,.tct-footer,.tct-page-title,.tct-print-toolbar,.tct-print-warning,.tct-print-source{display:none!important}.tct-shell,.tct-app-layout,.tct-main{display:block!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0!important;overflow:visible!important;width:100%!important}.tct-print-document{width:100%!important;max-width:none!important;min-height:0!important;border:0!important;padding:0!important;margin:0!important;page-break-inside:auto}}

/* v2.7.4 registration and user selection */
.tct-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.tct-auth-register{background:#f7edf0;color:#802735!important;border:1px solid #e3bac1}.tct-auth-register-link{padding:12px 16px;background:#f7f8fa;border-radius:9px}.tct-auth-register-link a{font-weight:700;color:#842735!important}.tct-role-search,.tct-role-form{padding:20px;border:1px solid #e2e8ed;border-radius:14px;background:#fff;margin:16px 0}.tct-role-count{font-size:13px;color:#566579}.tct-role-form select{min-width:0}.tct-role-search button{justify-self:start}@media(max-width:640px){.tct-user{gap:7px}.tct-auth-register{padding:8px 10px}.tct-role-search,.tct-role-form{padding:14px}}

/* v2.7.8: lựa chọn phương thức nộp văn bản ký số */
.tct-sign-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin:22px 0}.tct-sign-methods .tct-sign-method{padding:20px;background:#fff;border:1px solid #d9e0e7;border-radius:12px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}.tct-sign-method h2{margin:0;font-size:1.08rem}.tct-sign-method p{margin:0;color:#59697a}.tct-sign-method a{padding:11px 16px;background:#822b37;color:#fff!important;border-radius:8px;font-weight:650}.tct-sign-method button:disabled{background:#e2e4e8;color:#596879;cursor:not-allowed}.tct-sign-methods .tct-sign-method{border-bottom:1px solid #d9e0e7!important}

/* v2.8.1: highly visible result notifications, private per account */
.tct-result-notices{margin:0 0 24px;padding:22px 24px;border-radius:16px;border:1px solid #dfb6bd;border-left:5px solid #922e3e;background:#fff8f8;box-shadow:0 6px 26px rgba(88,24,37,.055)}
.tct-result-notices-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.tct-result-notices-head h2{margin:4px 0 8px;color:#782433;font-size:23px}.tct-result-notices-head .tct-inline-btn{background:#fff}
.tct-result-summary{font-weight:700;color:#7d2532}.tct-result-notice-list{display:grid;gap:8px}.tct-result-notice{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ebd7db;border-radius:11px;padding:14px 15px;color:#263443!important}.tct-result-notice:hover{border-color:#b86877;box-shadow:0 4px 12px rgba(88,24,37,.09)}.tct-result-notice span:nth-child(2){flex:1;min-width:0}.tct-result-notice strong{display:block;font-size:14px}.tct-result-notice small{display:block;margin-top:5px;color:#5c6675;line-height:1.55}.tct-result-notice-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#ab3848}.tct-result-empty{margin-bottom:0;color:#596679}
.tct-public-result-banner{margin:22px 0 0;padding:22px 24px;border:1px solid #e8ccd1;border-left:6px solid #922e3e;background:linear-gradient(180deg,#fff8f8 0%,#fff 100%);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 10px 26px rgba(88,24,37,.05)}.tct-public-result-banner strong{color:#752630;font-size:20px}.tct-public-result-banner p{margin:7px 0 0;max-width:760px;color:#556272;line-height:1.65}.tct-public-result-banner>a{padding:13px 17px;border-radius:10px;background:#822936;color:#fff!important;font-weight:700;white-space:nowrap}
@media(max-width:700px){.tct-result-notices{padding:17px}.tct-public-result-banner{flex-direction:column;align-items:stretch}.tct-public-result-banner>a{white-space:normal;text-align:center}}

/* v2.8.2 — Public result status board, anonymized and clearly separated from citizen inbox. */
.tct-public-results-board{margin:22px 0 28px;padding:24px;border:1px solid #e5d9d9;background:#fff;border-radius:15px;box-shadow:0 5px 22px rgba(32,47,65,.06)}
.tct-public-results-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.tct-public-results-heading h2{font-size:clamp(19px,2vw,26px);color:#742630;margin:6px 0 0}
.tct-public-results-heading a{border:1px solid #9a4952;border-radius:8px;padding:10px 15px;color:#742630;font-weight:700}
.tct-public-results-board>p{font-size:14px;color:#596876;line-height:1.65}
.tct-public-results-scroll{margin-top:16px;max-height:335px;overflow:auto;border:1px solid #e2e7ec;border-radius:10px;scrollbar-width:thin}
.tct-public-results-table{width:100%;border-collapse:collapse;text-align:left;display:table!important;overflow:visible!important}
.tct-public-results-table thead{position:sticky;top:0;background:#f8f4f1;z-index:1}
.tct-public-results-table th,.tct-public-results-table td{padding:12px 14px;border-bottom:1px solid #e9edf0;font-size:13px}
.tct-public-results-table td:first-child{color:#263443;overflow-wrap:anywhere}
.tct-demo-tag{display:inline-block;font-size:10px;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:#fef1d8;color:#784b07;font-weight:800}
.tct-public-results-note{padding-top:6px;font-size:12px!important;color:#687686!important}
.tct-public-results-empty{background:#f8fafc;padding:16px;border-radius:9px}
.tct-main .tct-public-visibility-opt{display:flex;align-items:flex-start;gap:10px;font-size:13px;background:#f8f7f4;border:1px solid #e0e2e5;border-radius:8px;padding:12px}
.tct-main .tct-public-visibility-opt input[type=checkbox]{margin:3px 0 0;flex:0 0 auto;width:18px;height:18px}
@media(max-width:600px){.tct-public-results-board{padding:16px}.tct-public-results-table th,.tct-public-results-table td{padding:9px 8px;font-size:12px}}

/* v2.8.3: separated public notices and demo showcase */
.tct-public-results-group-title{font-size:16px;margin:22px 0 8px;color:#742630}
.tct-public-results-demo-explain{font-size:13px;color:#596876;margin:6px 0 10px}
.tct-public-results-board .tct-public-results-group-title + .tct-public-results-scroll{margin-top:8px}

/* v2.8.5.3: compact horizontally scrolling DEMO results, independent from real results. */
.tct-demo-ticker{margin:10px 0 4px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;border:1px solid #eadfe0;border-radius:10px;background:#fffaf8;max-width:100%;overscroll-behavior-x:contain}
.tct-demo-ticker-track{display:flex;width:max-content;animation:tct-demo-marquee 50s linear infinite;will-change:transform}
.tct-demo-ticker-set{display:flex;align-items:stretch;gap:12px;padding:10px 12px;flex-shrink:0}
.tct-demo-ticker-card{box-sizing:border-box;width:220px;min-width:220px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;border:1px solid #ebd9d9;border-radius:9px;background:#fff;font-size:12px;line-height:1.4}
.tct-demo-ticker-card strong{font-size:13px;color:#742630;overflow-wrap:anywhere}
.tct-demo-ticker-status{font-weight:600;color:#243b50}
.tct-demo-ticker-card small{font-size:11px;color:#6b7581}
.tct-demo-ticker:hover .tct-demo-ticker-track,.tct-demo-ticker:focus .tct-demo-ticker-track,.tct-demo-ticker:focus-within .tct-demo-ticker-track{animation-play-state:paused}
@keyframes tct-demo-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.tct-demo-ticker-track{animation:none}}
@media(max-width:600px){.tct-demo-ticker-card{width:190px;min-width:190px}.tct-demo-ticker-track{animation-duration:65s}}

/* v2.8.5.4: explicit motion control and narrower ticker header. */
.tct-demo-ticker-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:8px 0 5px;font-size:12px;color:#475569}
.tct-demo-ticker-toggle{border:1px solid #9f5961;border-radius:6px;background:#fff;color:#742630;padding:7px 12px;font:inherit;font-weight:600;cursor:pointer}
.tct-demo-ticker-toggle:hover,.tct-demo-ticker-toggle:focus-visible{background:#fbebed;outline-offset:2px}
.tct-demo-ticker[data-tct-paused="true"] .tct-demo-ticker-track{animation-play-state:paused}

/* Contact directory */
.tct-contact-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:20px 0}.tct-contact-card,.tct-contact-editor{background:#fff;border:1px solid #e9dfe0;border-radius:12px;padding:18px}.tct-contact-card h2{font-size:1.12rem;margin:0 0 8px}.tct-contact-card p{margin:8px 0;overflow-wrap:anywhere}.tct-contact-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}.tct-contact-form label{display:flex;flex-direction:column;gap:5px}.tct-contact-form input:not([type=checkbox]),.tct-contact-form textarea{width:100%;border:1px solid #b4b4b4;border-radius:6px;padding:8px}.tct-contact-form button{align-self:end}.tct-public-contact-link{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;margin:15px 0;background:#fff7f2;border:1px solid #edc6c6;border-radius:10px;flex-wrap:wrap}

/* v2.8.7.3: three approved-information feeds, responsive at intermediate widths */
@media (min-width:781px) and (max-width:1200px){.tct-public-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tct-public-feed-grid>.tct-feed-panel:last-child{grid-column:1/-1}}

/* v2.8.7.7: full category attribution for each individual published disclosure */
.tct-feed-item-category{display:block;margin-top:7px;color:#7a3440;font-size:13px;line-height:1.5;font-weight:650;overflow-wrap:anywhere}

/* v2.8.7.10: deep-link to the exact published disclosure. */
.tct-disclosure-item{scroll-margin-top:24px}
.tct-disclosure-item:target{border:2px solid #a12c40;background:#fff9f3;box-shadow:0 0 0 4px rgba(161,44,64,.1),0 8px 24px rgba(26,42,58,.07)}
.tct-disclosure-item:target h2{color:#792331}
/* v2.8.8.0 — manager-only, period-filtered content report */
.tct-report-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0;padding:18px;border-radius:12px;background:#faf7f4;border:1px solid #eadfda}
.tct-report-filters label{display:grid;gap:6px;font-weight:700;color:#29384a}
.tct-report-filters input,.tct-report-filters select{border:1px solid #cbd4dd;border-radius:7px;padding:10px;background:#fff;color:#29384a}
.tct-report-filters button{background:#822936;color:#fff;border:0;border-radius:8px;padding:12px 18px;font-weight:700;cursor:pointer}
.tct-report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:20px 0}
.tct-report-metrics>div{padding:18px;border-radius:12px;border:1px solid #e8dedb;background:#fff9f8;display:grid;gap:6px}
.tct-report-metrics strong{font-size:30px;line-height:1.1;color:#812934}
.tct-report-metrics span{font-size:14px;color:#475569}
.tct-report-tablewrap{overflow-x:auto}
.tct-report-table{width:100%;border-collapse:collapse}
.tct-report-table th,.tct-report-table td{padding:12px;border-bottom:1px solid #e4e7ec;text-align:left;vertical-align:top}
.tct-report-table th{background:#f9f5f2}

/* v2.8.8.2 report export controls */
.tct-report-export-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}
.tct-report-export-actions .tct-btn-outline{background:#fff!important;color:#752630!important;border:1px solid #b78b90}.tct-report-export-actions a:last-child{color:#752630;font-weight:700}

/* v2.8.8.5: Select an eligible assignee by identity, never ask for numeric user IDs. */
.tct-process-form{display:grid;gap:17px;padding:22px;border:1px solid #e1e7ed;border-radius:14px;background:#fff;max-width:960px}
.tct-process-form label{display:grid;gap:9px;font-weight:700;color:#263748;font-size:16px}
.tct-process-form select,.tct-process-form textarea{width:100%;min-width:0;border:1px solid #c3d0dc;border-radius:10px;padding:13px 14px;background:#fff;color:#243647;font-size:16px;line-height:1.5}
.tct-process-form select:focus-visible{outline:3px solid #dcae52;outline-offset:2px}
.tct-assignee-help{color:#617080;font-size:13px;line-height:1.6;font-weight:400}
.tct-process-form button[name="save"]{padding:14px 20px;border:0;border-radius:10px;background:#862936;color:#fff;font-size:16px;font-weight:700;cursor:pointer}

/* Request-specific workflow; never confused with the legal-document publication module. */
.tct-request-workflow{background:#fcf8f6;border:1px solid #e6d4d5;border-left:5px solid #8b2938;border-radius:13px;padding:18px 22px;margin:0 0 23px}
.tct-request-workflow h3{margin:0 0 14px;font-size:20px;color:#782634}
.tct-request-workflow ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px 24px;margin:0;padding-left:22px}
.tct-request-workflow li{padding:5px 0;font-size:15px;line-height:1.6;font-weight:600}
.tct-request-workflow a{color:#7e2936!important;text-decoration:underline}
.tct-request-workflow-note{font-size:13px;color:#5a6270;margin:14px 0 0}

/* v2.8.8.9: in-context specialist draft upload on request processing page */
.tct-process-attachment{margin:22px 0;padding:24px;background:#fffaf7;border:1px solid #e4c4ba;border-left:5px solid #8a2a39;border-radius:14px;box-shadow:0 8px 24px rgba(60,28,35,.045)}
.tct-process-attachment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.tct-process-attachment-head h3{color:#762633;font-size:23px;margin:5px 0 8px;line-height:1.3}
.tct-process-attachment-tag{border-radius:999px;padding:6px 12px;background:#f2e1e2;color:#742735;font-size:13px;font-weight:800}
.tct-process-attachment>p{font-size:15px;color:#495766;line-height:1.7}
.tct-process-attachment-form{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
.tct-process-attachment-form label{font-weight:750;font-size:16px;color:#283b4d}
.tct-process-attachment-form input[type=file]{display:block;width:100%;min-height:52px;padding:12px;border:1px solid #c5cfd8;border-radius:9px;background:#fff;font-size:15px;box-sizing:border-box}
.tct-process-attachment-form input[type=file]:focus-visible{outline:3px solid #d8a445;outline-offset:2px}
.tct-process-attachment-form button{justify-self:start;background:#852938;color:#fff;border:0;border-radius:9px;padding:14px 20px;font-size:16px;font-weight:750;cursor:pointer}
.tct-process-attachment-form button:hover{background:#70212d}
.tct-process-attachment-note{font-size:13px!important}
@media(max-width:600px){.tct-process-attachment{padding:17px}.tct-process-attachment-form button{width:100%}}

/* Citizen's optional request attachment, within the initial submission form */
.tct-citizen-attachment{margin:16px 0;padding:18px;border:1px solid #e1cdd1;border-left:4px solid #862936;border-radius:12px;background:#fff9f8;display:grid;gap:10px}
.tct-citizen-attachment strong{color:#782630;font-size:17px}
.tct-citizen-attachment input[type=file]{display:block;width:100%;box-sizing:border-box;padding:14px;border:1px dashed #b97983;border-radius:8px;background:#fff;color:#243446;font-size:15px}
.tct-citizen-attachment input[type=file]:focus-visible{outline:3px solid #bc8d34;outline-offset:2px}
.tct-citizen-attachment small{color:#596a77;font-size:14px;line-height:1.5}

/* Citizen request withdrawal: distinct from the normal submit action. */
.tct-citizen-withdraw{margin:24px 0;padding:20px 24px;border:1px solid #e2c6ca;border-left:4px solid #a03b46;border-radius:12px;background:#fffafa;max-width:850px}
.tct-citizen-withdraw h3{margin:0 0 10px;color:#7c2936;font-size:21px}
.tct-citizen-withdraw p{color:#596575;line-height:1.65}
.tct-citizen-withdraw form{display:grid;gap:12px}
.tct-citizen-withdraw label{font-weight:700}
.tct-citizen-withdraw textarea{width:100%;max-width:100%;border:1px solid #c7d1da;border-radius:8px;padding:12px;font:inherit}
.tct-citizen-withdraw button{justify-self:start;padding:12px 20px;border:1px solid #9b3541;background:#fff;color:#8a2d39;font:inherit;font-weight:700;border-radius:8px;cursor:pointer}
.tct-citizen-withdraw button:hover{background:#f5e8eb}
.tct-citizen-withdraw button:focus-visible{outline:3px solid #c99c45;outline-offset:3px}
