/* ── Token system ───────────────────────────────────────── */
:root {
  --tt-cobalt:  #1A3FA0;
  --tt-active:  #3B5FD4;
  --tt-sky:     #38BDF8;
  --tt-light:   #E6EFFC;
  --tt-surface: #F0F2F5;
  --tt-ink:     #1C1F26;
  --tt-muted:   #6B7280;
  --tt-border:  #D1D8E8;
  --tt-white:   #FFFFFF;
  --tt-ok:      #16A34A;
  --tt-ok-bg:   #DCFCE7;
  /* light-mode semantic */
  --bg-page:    #F8F9FB;
  --bg-card:    #FFFFFF;
  --bg-nav:     #FFFFFF;
  --text-head:  #1C1F26;
  --text-body:  #374151;
  --text-muted: #6B7280;
  --card-border:#E2E8F0;
  --nav-shadow: 0 1px 0 rgba(0,0,0,0.07);
  font-family: 'Inter', sans-serif;
}
[data-bs-theme="dark"] {
  --bg-page:    #0F1117;
  --bg-card:    #181C26;
  --bg-nav:     #13161E;
  --text-head:  #F1F5FF;
  --text-body:  #A8B4CC;
  --text-muted: #5A6480;
  --card-border:#232A3C;
  --nav-shadow: 0 1px 0 rgba(255,255,255,0.05);
  --tt-light:   #1A2540;
  --tt-surface: #181C26;
  --tt-border:  #232A3C;
  --bg-card-alt:#1E2434;
}

/* ── Base ────────────────────────────────────────────────── */
body { background: var(--bg-page); color: var(--text-body); transition: background .25s, color .25s; }
h1,h2,h3,h4,h5 { font-family: 'Manrope', sans-serif; color: var(--text-head); }
.tt-muted { color: var(--text-muted) !important; }
.tt-primary { color: var(--tt-cobalt) !important; }
a { color: var(--tt-active); }

/* ── Navbar ──────────────────────────────────────────────── */
.tt-nav {
  background: var(--bg-nav);
  box-shadow: var(--nav-shadow);
  position: sticky; top: 0; z-index: 100;
  transition: background .25s;
}
.tt-nav .navbar-brand { font-family:'Manrope',sans-serif; font-weight:700; font-size:1.25rem; letter-spacing:-.025em; color: var(--text-head); }
.tt-nav .navbar-brand span { color: var(--tt-cobalt); font-weight:500; }
.tt-logo-mark { width:36px;height:36px;background:transparent url('/images/brand/trans-tender-container-icon-light.svg') center/contain no-repeat;border-radius:0;display:inline-flex;align-items:center;justify-content:center;margin-right:8px;flex-shrink:0; }
.tt-logo-mark > svg,.tt-logo-mark > i { display:none !important; }
[data-bs-theme="dark"] .tt-logo-mark { background-image:url('/images/brand/trans-tender-container-icon-dark.svg'); }
.tt-nav .nav-link { color: var(--text-body); font-size:.875rem; padding:.5rem .9rem !important; border-radius:6px; transition:background .15s,color .15s; }
.tt-nav .nav-link:hover { background:var(--tt-light); color:var(--tt-cobalt); }
.tt-nav .nav-link.active { color:var(--tt-cobalt); font-weight:500; }
.btn-theme { background:transparent; border:1px solid var(--card-border); border-radius:8px; padding:6px 10px; color:var(--text-body); cursor:pointer; transition:background .15s; font-size:.9rem; display:flex;align-items:center;gap:4px; }
.btn-theme:hover { background:var(--tt-light); }
.btn-cta-nav { background:var(--tt-cobalt); color:#fff; border:none; border-radius:8px; padding:7px 18px; font-size:.875rem; font-weight:500; cursor:pointer; transition:background .15s; }
.btn-cta-nav:hover { background:var(--tt-active); }

/* ── Hero ────────────────────────────────────────────────── */
.tt-hero {
  padding: 96px 0 80px;
  position: relative;
  overflow: hidden;
}
.tt-hero::before {
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(ellipse 70% 60% at 60% -10%, rgba(59,95,212,.13) 0%, transparent 70%),
              radial-gradient(ellipse 40% 40% at 10% 80%, rgba(56,189,248,.08) 0%, transparent 60%);
  pointer-events:none;
}
.hero-eyebrow { display:inline-flex;align-items:center;gap:6px;background:var(--tt-light);color:var(--tt-cobalt);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin-bottom:20px; }
.hero-eyebrow i { font-size:.9rem; }
.tt-hero h1 { font-size: clamp(2.2rem,5vw,3.5rem); font-weight:800; line-height:1.1; letter-spacing:-.03em; color:var(--text-head); }
.tt-hero h1 em { font-style:normal; color:var(--tt-cobalt); }
.hero-sub { font-size:1.05rem; line-height:1.7; color:var(--text-muted); max-width:520px; margin-top:16px; }
.btn-hero-primary { background:var(--tt-cobalt);color:#fff;border:none;border-radius:10px;padding:14px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;display:inline-flex;align-items:center;gap:8px; }
.btn-hero-primary:hover { background:var(--tt-active); transform:translateY(-1px); }
.btn-hero-ghost { background:transparent;color:var(--text-body);border:1.5px solid var(--card-border);border-radius:10px;padding:14px 28px;font-size:1rem;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s;display:inline-flex;align-items:center;gap:8px; }
.btn-hero-ghost:hover { border-color:var(--tt-cobalt);color:var(--tt-cobalt);background:var(--tt-light); }
.hero-stats { display:flex;gap:32px;margin-top:40px;flex-wrap:wrap; }
.hero-stat-val { font-family:'Manrope',sans-serif;font-size:1.75rem;font-weight:800;color:var(--text-head);line-height:1; }
.hero-stat-lbl { font-size:.75rem;color:var(--text-muted);margin-top:3px; }

/* ── Hero image panel ────────────────────────────────────── */
.hero-panel { position:relative; }
.hero-img-wrap { border-radius:16px; overflow:hidden; border:1px solid var(--card-border); position:relative; }
.hero-img-wrap img { width:100%;height:340px;object-fit:cover;display:block; }
.hero-float-card { position:absolute;bottom:16px;left:16px;background:var(--bg-card);border:1px solid var(--card-border);border-radius:12px;padding:12px 16px;backdrop-filter:blur(8px);min-width:200px; }
.hero-float-card2 { position:absolute;top:16px;right:16px;background:var(--bg-card);border:1px solid var(--card-border);border-radius:12px;padding:10px 14px;font-size:.8rem; }
.hfc-label { font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px; }
.hfc-val { font-family:'Manrope',sans-serif;font-size:1.1rem;font-weight:700;color:var(--tt-cobalt); }
.hfc-sub { font-size:.72rem;color:var(--text-muted);margin-top:2px; }
.status-dot { display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px; }

/* ── Sections general ────────────────────────────────────── */
.tt-section { padding:80px 0; }
.tt-section-alt { background:var(--bg-card); }
.section-eyebrow { font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tt-cobalt);margin-bottom:10px; }
.section-title { font-size:clamp(1.6rem,3vw,2.25rem);font-weight:800;line-height:1.15;letter-spacing:-.025em;color:var(--text-head); }
.section-sub { font-size:1rem;line-height:1.7;color:var(--text-muted);margin-top:12px;max-width:560px; }

/* ── How it works ────────────────────────────────────────── */
.step-card { background:var(--bg-card);border:1px solid var(--card-border);border-radius:16px;padding:28px 24px;height:100%;transition:border-color .2s; }
.step-card:hover { border-color:var(--tt-cobalt); }
.step-num { font-family:'Manrope',sans-serif;font-size:.72rem;font-weight:700;color:var(--tt-cobalt);background:var(--tt-light);border-radius:6px;padding:3px 9px;display:inline-block;margin-bottom:16px; }
.step-icon { width:44px;height:44px;background:var(--tt-light);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--tt-cobalt);margin-bottom:14px; }
.step-title { font-size:1rem;font-weight:700;color:var(--text-head);margin-bottom:8px; }
.step-body { font-size:.875rem;line-height:1.65;color:var(--text-muted); }
.step-connector { display:flex;align-items:center;justify-content:center;color:var(--tt-border);font-size:1.3rem;padding-top:20px; }

/* ── Feature grid ────────────────────────────────────────── */
.feat-card { background:var(--bg-card);border:1px solid var(--card-border);border-radius:16px;padding:28px 24px;height:100%; }
.feat-icon { width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin-bottom:18px; }
.feat-title { font-size:1rem;font-weight:700;color:var(--text-head);margin-bottom:8px; }
.feat-body { font-size:.875rem;line-height:1.65;color:var(--text-muted); }
.fi-blue  { background:var(--tt-light); color:var(--tt-cobalt); }
.fi-sky   { background:#E0F7FF; color:#0077A3; }
.fi-green { background:#DCFCE7; color:#166534; }
.fi-amber { background:#FEF3C7; color:#92400E; }
.fi-violet{ background:#EDE9FE; color:#5B21B6; }
.fi-coral { background:#FEE2E2; color:#991B1B; }
[data-bs-theme="dark"] .fi-sky   { background:#0C2D3D; color:#7DD3FC; }
[data-bs-theme="dark"] .fi-green { background:#052E16; color:#6EE7B7; }
[data-bs-theme="dark"] .fi-amber { background:#1C1002; color:#FCD34D; }
[data-bs-theme="dark"] .fi-violet{ background:#1E1442; color:#C4B5FD; }
[data-bs-theme="dark"] .fi-coral { background:#2D0B0B; color:#FCA5A5; }

/* ── Platform metrics ────────────────────────────────────── */
.tt-metrics { padding:24px 0 0; }
.metrics-shell {
  position:relative;
  display:grid;
  grid-template-columns:minmax(250px,.82fr) minmax(0,1.58fr);
  gap:36px;
  overflow:hidden;
  padding:42px;
  border-radius:28px;
  background:
    radial-gradient(circle at 8% 110%,rgba(56,189,248,.22),transparent 34%),
    radial-gradient(circle at 100% 0,rgba(255,255,255,.11),transparent 29%),
    linear-gradient(135deg,#15388F 0%,var(--tt-cobalt) 48%,#244BB6 100%);
  box-shadow:0 22px 55px rgba(26,63,160,.18);
}
.metrics-shell::before,
.metrics-shell::after {
  content:'';
  position:absolute;
  border:1px solid rgba(255,255,255,.09);
  border-radius:50%;
  pointer-events:none;
}
.metrics-shell::before { width:290px;height:290px;left:-170px;bottom:-205px; }
.metrics-shell::after { width:220px;height:220px;right:-110px;top:-135px; }
.metrics-intro { position:relative;z-index:1;align-self:center; }
.metrics-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:17px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#DCE8FF;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.metrics-eyebrow i { color:var(--tt-sky);font-size:.95rem; }
.metrics-intro h2 {
  margin:0;
  color:#fff;
  font-size:clamp(1.75rem,3vw,2.4rem);
  font-weight:800;
  line-height:1.12;
  letter-spacing:-.035em;
}
.metrics-intro > p {
  max-width:390px;
  margin:16px 0 0;
  color:rgba(255,255,255,.66);
  font-size:.9rem;
  line-height:1.7;
}
.metrics-availability {
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:24px;
  color:rgba(255,255,255,.76);
  font-size:.77rem;
  line-height:1.45;
}
.metrics-live-dot {
  width:8px;
  height:8px;
  margin-top:2px;
  flex:0 0 auto;
  border-radius:50%;
  background:#4ADE80;
  box-shadow:0 0 0 5px rgba(74,222,128,.12);
}
.metrics-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.metric-card {
  min-width:0;
  padding:20px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(255,255,255,.09);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(8px);
  transition:transform .2s ease,background .2s ease,border-color .2s ease;
}
.metric-card:hover {
  transform:translateY(-3px);
  border-color:rgba(255,255,255,.24);
  background:rgba(255,255,255,.13);
}
.metric-card-head { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px; }
.metric-icon {
  width:36px;
  height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:10px;
  background:rgba(56,189,248,.15);
  color:#8EDCFF;
  font-size:1.05rem;
}
.metric-tag {
  overflow:hidden;
  color:rgba(255,255,255,.45);
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.08em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.metric-value {
  color:#fff;
  font-family:'Manrope',sans-serif;
  font-size:2rem;
  font-weight:800;
  line-height:1;
  letter-spacing:-.035em;
}
.metric-value span { color:#85DAFF;font-size:.62em;font-weight:700;letter-spacing:-.015em; }
.metric-title { margin-top:9px;color:#fff;font-size:.84rem;font-weight:600; }
.metric-card p { margin:6px 0 0;color:rgba(255,255,255,.52);font-size:.73rem;line-height:1.5; }

/* ── Roles ───────────────────────────────────────────────── */
.role-card { border-radius:20px;overflow:hidden;border:1px solid var(--card-border);background:var(--bg-card); }
.role-img { width:100%;height:220px;object-fit:cover;display:block; }
.role-body { padding:24px; }
.role-badge { display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:4px 11px;border-radius:20px;margin-bottom:12px; }
.rb-client   { background:var(--tt-light);color:var(--tt-cobalt); }
.rb-carrier  { background:#DCFCE7;color:#166534; }
.rb-logist   { background:#EDE9FE;color:#5B21B6; }
[data-bs-theme="dark"] .rb-carrier { background:#052E16;color:#6EE7B7; }
[data-bs-theme="dark"] .rb-logist  { background:#1E1442;color:#C4B5FD; }
.role-title { font-size:1.15rem;font-weight:700;color:var(--text-head);margin-bottom:8px; }
.role-body p { font-size:.875rem;line-height:1.65;color:var(--text-muted); }
.role-list { list-style:none;padding:0;margin:12px 0 0; }
.role-list li { font-size:.8rem;color:var(--text-muted);display:flex;align-items:center;gap:7px;margin-bottom:6px; }
.role-list li i { color:var(--tt-cobalt);font-size:.9rem;flex-shrink:0; }

/* ── Infographic process bar ─────────────────────────────── */
.process-track { display:flex;align-items:flex-start;gap:0;position:relative;overflow-x:auto;padding-bottom:4px; }
.process-step { flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative; }
.process-step:not(:last-child)::after { content:'';position:absolute;top:20px;left:calc(50% + 22px);right:calc(-50% + 22px);height:2px;background:var(--tt-border); }
.ps-circle { width:40px;height:40px;border-radius:50%;background:var(--tt-cobalt);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;position:relative;z-index:1;margin-bottom:10px;flex-shrink:0; }
.ps-circle.done   { background:var(--tt-cobalt); }
.ps-circle.active { background:var(--tt-active);box-shadow:0 0 0 4px rgba(59,95,212,.2); }
.ps-circle.next   { background:var(--bg-card);border:2px solid var(--tt-border);color:var(--text-muted); }
.ps-label { font-size:.75rem;font-weight:600;color:var(--text-head);margin-bottom:2px; }
.ps-sub   { font-size:.68rem;color:var(--text-muted); }

/* ── Testimonials ────────────────────────────────────────── */
.testi-card { background:var(--bg-card);border:1px solid var(--card-border);border-radius:16px;padding:28px 24px; }
.testi-stars { color:#FBBF24;font-size:.9rem;margin-bottom:14px; }
.testi-text  { font-size:.9rem;line-height:1.7;color:var(--text-body);font-style:italic; }
.testi-author { display:flex;align-items:center;gap:10px;margin-top:18px; }
.testi-avatar { width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0; }
.testi-name  { font-size:.85rem;font-weight:600;color:var(--text-head); }
.testi-role  { font-size:.75rem;color:var(--text-muted); }

/* ── CTA section ─────────────────────────────────────────── */
.tt-cta-section { background:var(--tt-ink);padding:80px 0;position:relative;overflow:hidden; }
[data-bs-theme="dark"] .tt-cta-section { background:#0A0C12; }
.tt-cta-section::before { content:'';position:absolute;top:-120px;left:-80px;width:400px;height:400px;border-radius:50%;background:rgba(59,95,212,.15);pointer-events:none; }
.tt-cta-section::after  { content:'';position:absolute;bottom:-80px;right:-60px;width:280px;height:280px;border-radius:50%;background:rgba(56,189,248,.08);pointer-events:none; }

/* ── FAQ ─────────────────────────────────────────────────── */
.tt-accordion .accordion-button { background:var(--bg-card);color:var(--text-head);font-weight:500;font-size:.95rem;border-radius:10px !important;box-shadow:none !important; }
.tt-accordion .accordion-button:not(.collapsed) { background:var(--tt-light);color:var(--tt-cobalt); }
.tt-accordion .accordion-item { background:var(--bg-card);border:1px solid var(--card-border);border-radius:10px !important;margin-bottom:8px;overflow:hidden; }
.tt-accordion .accordion-body { font-size:.875rem;line-height:1.7;color:var(--text-muted);background:var(--bg-card); }
[data-bs-theme="dark"] .tt-accordion .accordion-button:not(.collapsed) { background:var(--tt-light); }

/* ── Footer ──────────────────────────────────────────────── */
.tt-footer { background:var(--bg-card);border-top:1px solid var(--card-border);padding:48px 0 32px; }
.footer-brand { font-family:'Manrope',sans-serif;font-size:1.1rem;font-weight:700;color:var(--text-head);letter-spacing:-.02em; }
.footer-brand span { color:var(--tt-cobalt);font-weight:500; }
.footer-link { font-size:.85rem;color:var(--text-muted);text-decoration:none;display:block;margin-bottom:8px;transition:color .15s; }
.footer-link:hover { color:var(--tt-cobalt); }
.footer-col-title { font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-head);margin-bottom:14px; }
.footer-copy { font-size:.78rem;color:var(--text-muted); }
.social-btn { width:34px;height:34px;border-radius:8px;border:1px solid var(--card-border);display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1rem;transition:background .15s,color .15s;cursor:pointer;text-decoration:none; }
.social-btn:hover { background:var(--tt-light);color:var(--tt-cobalt); }

/* ── Misc ────────────────────────────────────────────────── */
.badge-tt { background:var(--tt-ok-bg);color:var(--tt-ok);font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:20px; }
[data-bs-theme="dark"] .badge-tt { background:#052E16;color:#6EE7B7; }
.section-divider { height:1px;background:var(--card-border);margin:0; }
@media(max-width:991px){
  .metrics-shell { grid-template-columns:1fr;padding:34px;gap:28px; }
  .metrics-intro > p { max-width:620px; }
}
@media(max-width:767px){
  .tt-metrics { padding:12px 0 0; }
  .metrics-shell { padding:26px 20px;border-radius:22px; }
  .metrics-grid { grid-template-columns:1fr; }
  .metric-card { padding:18px; }
  .tt-hero { padding:60px 0 48px; }
  .hero-stats { gap:20px; }
  .process-step:not(:last-child)::after { display:none; }
}

/* ── Extracted landing helpers ───────────────────────────── */
.btn-nav-register { padding:8px 18px; font-size:.875rem; }
.hero-stat-divider { width:1px; background:var(--card-border); align-self:stretch; }
.status-dot-ok { background:var(--tt-ok); }
.hfc-arrival { color:var(--tt-cobalt); font-weight:600; }
.text-head { color:var(--text-head); }
.hero-result-label { font-size:.7rem; color:var(--text-muted); margin-bottom:4px; }
.hero-result-value { font-family:'Manrope',sans-serif; font-size:1.3rem; font-weight:800; color:var(--tt-cobalt); }
.hero-result-growth { font-size:.8rem; font-weight:500; color:var(--tt-ok); }
.photo-tall { height:240px; object-fit:cover; }
.photo-short { height:160px; object-fit:cover; }
.reliability-stat { padding:16px; background:var(--bg-page); border-radius:12px; border:1px solid var(--card-border); }
.reliability-stat-value { font-size:1.5rem; font-weight:800; font-family:'Manrope',sans-serif; color:var(--tt-cobalt); }
.reliability-stat-label { font-size:.8rem; color:var(--text-muted); margin-top:4px; }
.avatar-client { background:#E6EFFC; color:#1A3FA0; }
.avatar-carrier { background:#DCFCE7; color:#166534; }
.avatar-logist { background:#EDE9FE; color:#5B21B6; }
[data-bs-theme="dark"] .avatar-client { background:#1A2540; color:#9DB5FF; }
[data-bs-theme="dark"] .avatar-carrier { background:#052E16; color:#6EE7B7; }
[data-bs-theme="dark"] .avatar-logist { background:#1E1442; color:#C4B5FD; }
.cta-content { z-index:1; }
.cta-title { color:#fff; font-size:clamp(1.8rem,4vw,2.8rem); }
.cta-text { color:rgba(255,255,255,.6); font-size:1rem; max-width:480px; margin:0 auto 32px; line-height:1.7; }
.btn-cta-large { font-size:1rem; padding:14px 32px; }
.btn-cta-ghost { color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.2); }
.cta-benefits { margin-top:28px; display:flex; gap:24px; justify-content:center; flex-wrap:wrap; }
.cta-benefit { font-size:.8rem; color:rgba(255,255,255,.45); display:flex; align-items:center; gap:5px; }
.cta-check { color:var(--tt-sky); }
.tt-logo-mark-sm { width:30px; height:30px; border-radius:0; }
.footer-description { font-size:.85rem; color:var(--text-muted); line-height:1.65; max-width:280px; }
.footer-separator { border-color:var(--card-border); }

/* ── Shared application shell ────────────────────────────── */
.tt-brand-link { text-decoration:none; }
.tt-brand-link:hover { color:inherit; }
.tt-page-nav { position:relative; }
.tt-page-nav .container { min-height:64px; }
.tt-page-nav-actions { display:flex; align-items:center; gap:.65rem; }
.tt-page-link { color:var(--text-body); font-size:.875rem; text-decoration:none; }
.tt-page-link:hover { color:var(--tt-cobalt); }
.tt-compact-footer { padding:22px 0; background:var(--bg-card); border-top:1px solid var(--card-border); }
.tt-compact-footer a { color:var(--text-muted); text-decoration:none; }
.tt-compact-footer a:hover { color:var(--tt-cobalt); }
.tt-compact-footer-row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.tt-compact-footer-links { display:flex; gap:18px; flex-wrap:wrap; font-size:.78rem; }

/* ── Authentication pages ────────────────────────────────── */
.auth-page { min-height:100vh; display:flex; flex-direction:column; }
.auth-main { flex:1; display:flex; align-items:stretch; position:relative; overflow:hidden; }
.auth-main::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 55% at 80% 10%,rgba(59,95,212,.12),transparent 72%),radial-gradient(ellipse 45% 45% at 8% 90%,rgba(56,189,248,.08),transparent 62%); pointer-events:none; }
.auth-container { position:relative; z-index:1; width:100%; padding-top:56px; padding-bottom:56px; }
.auth-layout { min-height:620px; border:1px solid var(--card-border); border-radius:24px; overflow:hidden; background:var(--bg-card); box-shadow:0 24px 70px rgba(24,39,75,.10); }
[data-bs-theme="dark"] .auth-layout { box-shadow:0 24px 70px rgba(0,0,0,.28); }
.auth-visual { min-height:620px; padding:54px; color:#fff; background:linear-gradient(145deg,#102A75 0%,var(--tt-cobalt) 55%,#315BD4 100%); position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; }
.auth-visual::before { content:''; position:absolute; width:360px; height:360px; border-radius:50%; background:rgba(255,255,255,.055); top:-120px; right:-120px; }
.auth-visual::after { content:''; position:absolute; width:260px; height:260px; border-radius:50%; border:1px solid rgba(255,255,255,.10); bottom:-110px; left:-80px; }
.auth-visual-content,.auth-visual-bottom { position:relative; z-index:1; }
.auth-kicker { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:20px; background:rgba(255,255,255,.11); color:rgba(255,255,255,.84); font-size:.73rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.auth-visual h1 { color:#fff; font-size:clamp(2rem,4vw,3rem); line-height:1.08; letter-spacing:-.035em; font-weight:800; margin:24px 0 16px; }
.auth-visual-copy { color:rgba(255,255,255,.67); font-size:.98rem; line-height:1.75; max-width:470px; }
.auth-flow { margin-top:36px; display:grid; gap:14px; }
.auth-flow-item { display:flex; gap:12px; align-items:flex-start; }
.auth-flow-icon { width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.05rem; }
.auth-flow-title { font-size:.86rem; font-weight:600; color:#fff; margin-bottom:2px; }
.auth-flow-text { font-size:.75rem; line-height:1.5; color:rgba(255,255,255,.56); }
.auth-mini-status { padding:16px 18px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.08); backdrop-filter:blur(8px); border-radius:14px; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.auth-mini-status-label { color:rgba(255,255,255,.57); font-size:.72rem; }
.auth-mini-status-value { color:#fff; font-family:'Manrope',sans-serif; font-size:.93rem; font-weight:700; margin-top:2px; }
.auth-mini-status-badge { display:inline-flex; align-items:center; gap:5px; padding:5px 9px; border-radius:18px; background:rgba(22,163,74,.22); color:#A7F3D0; font-size:.72rem; white-space:nowrap; }
.auth-form-panel { padding:48px 54px; display:flex; align-items:center; background:var(--bg-card); }
.auth-form-wrap { width:100%; max-width:450px; margin:0 auto; }
.auth-form-wrap-wide { max-width:560px; }
.auth-heading { font-size:1.8rem; font-weight:800; letter-spacing:-.03em; margin-bottom:8px; }
.auth-subheading { color:var(--text-muted); font-size:.9rem; line-height:1.6; margin-bottom:28px; }
.auth-subheading a { text-decoration:none; font-weight:600; }
.form-label { color:var(--text-head); font-size:.8rem; font-weight:600; margin-bottom:7px; }
.tt-form-control,.tt-form-select { min-height:48px; border:1px solid var(--card-border); border-radius:10px; color:var(--text-head); background-color:var(--bg-card); font-size:.9rem; padding:.72rem .9rem; box-shadow:none; }
.tt-form-control::placeholder { color:var(--text-muted); opacity:.7; }
.tt-form-control:focus,.tt-form-select:focus { background-color:var(--bg-card); color:var(--text-head); border-color:var(--tt-active); box-shadow:0 0 0 .22rem rgba(59,95,212,.12); }
.input-icon-wrap { position:relative; }
.input-icon-wrap .tt-form-control { padding-left:42px; }
.input-icon { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:1rem; pointer-events:none; }
.password-toggle { position:absolute; right:8px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:var(--text-muted); width:34px; height:34px; border-radius:7px; display:flex; align-items:center; justify-content:center; }
.password-toggle:hover { background:var(--tt-light); color:var(--tt-cobalt); }
.has-password-toggle .tt-form-control { padding-right:46px; }
.form-check-input { background-color:var(--bg-card); border-color:var(--card-border); }
.form-check-input:checked { background-color:var(--tt-cobalt); border-color:var(--tt-cobalt); }
.form-check-label { font-size:.8rem; color:var(--text-muted); }
.auth-meta-row { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:4px 0 22px; }
.auth-meta-link { color:var(--tt-active); font-size:.8rem; text-decoration:none; font-weight:500; }
.auth-meta-link:hover { color:var(--tt-cobalt); text-decoration:underline; }
.btn-auth-primary { min-height:49px; border:0; border-radius:10px; background:var(--tt-cobalt); color:#fff; font-size:.9rem; font-weight:600; display:flex; align-items:center; justify-content:center; gap:8px; width:100%; transition:background .15s,transform .1s; }
.btn-auth-primary:hover { background:var(--tt-active); color:#fff; transform:translateY(-1px); }
.auth-divider { display:flex; align-items:center; gap:12px; color:var(--text-muted); font-size:.74rem; margin:24px 0; }
.auth-divider::before,.auth-divider::after { content:''; height:1px; background:var(--card-border); flex:1; }
.auth-support { text-align:center; color:var(--text-muted); font-size:.78rem; }
.auth-support a { text-decoration:none; font-weight:500; }

/* ── Registration role selector ──────────────────────────── */
.role-selector { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.role-option { position:relative; }
.role-option input { position:absolute; opacity:0; pointer-events:none; }
.role-option-card { display:flex; align-items:flex-start; gap:11px; min-height:91px; padding:14px; border:1px solid var(--card-border); border-radius:12px; cursor:pointer; background:var(--bg-card); transition:border-color .15s,background .15s,box-shadow .15s; }
.role-option-card:hover { border-color:var(--tt-active); background:var(--tt-light); }
.role-option input:checked + .role-option-card { border-color:var(--tt-active); background:var(--tt-light); box-shadow:0 0 0 3px rgba(59,95,212,.10); }
.role-option-icon { width:35px; height:35px; border-radius:9px; background:var(--bg-page); color:var(--tt-cobalt); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.role-option input:checked + .role-option-card .role-option-icon { background:var(--tt-cobalt); color:#fff; }
.role-option-title { font-size:.8rem; font-weight:700; color:var(--text-head); margin-bottom:3px; }
.role-option-text { font-size:.7rem; color:var(--text-muted); line-height:1.45; }
.password-hint { color:var(--text-muted); font-size:.7rem; line-height:1.45; margin-top:6px; }
.register-submit-row { display:grid; grid-template-columns:126px minmax(130px,1fr) minmax(180px,.72fr); gap:10px; align-items:center; }
.register-captcha-field { display:contents; }
.register-captcha-image { width:126px; height:48px; object-fit:cover; border:1px solid var(--card-border); border-radius:10px; background:var(--bg-page); cursor:pointer; }
.register-submit-row .btn-auth-primary { height:48px; }

/* ── Error page ──────────────────────────────────────────── */
.error-page { min-height:100vh; display:flex; flex-direction:column; }
.error-main { flex:1; display:flex; align-items:center; position:relative; overflow:hidden; padding:64px 0; }
.error-main::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 62% 60% at 72% 20%,rgba(59,95,212,.13),transparent 72%),radial-gradient(ellipse 40% 40% at 12% 88%,rgba(56,189,248,.09),transparent 65%); }
.error-content { position:relative; z-index:1; }
.error-code { display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:20px; background:var(--tt-light); color:var(--tt-cobalt); font-size:.74rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.error-title { font-size:clamp(2.2rem,5vw,4.2rem); font-weight:800; line-height:1.02; letter-spacing:-.045em; margin:20px 0 18px; max-width:650px; }
.error-text { font-size:1rem; line-height:1.75; color:var(--text-muted); max-width:560px; }
.error-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.error-illustration { position:relative; min-height:390px; display:flex; align-items:center; justify-content:center; }
.error-orbit { width:330px; height:330px; border-radius:50%; border:1px dashed var(--tt-border); position:absolute; }
.error-orbit::before { content:''; position:absolute; width:14px; height:14px; border-radius:50%; background:var(--tt-sky); top:34px; left:48px; box-shadow:0 0 0 7px rgba(56,189,248,.12); }
.error-card { position:relative; z-index:1; width:280px; background:var(--bg-card); border:1px solid var(--card-border); border-radius:24px; padding:34px 30px; box-shadow:0 24px 65px rgba(24,39,75,.12); text-align:center; }
[data-bs-theme="dark"] .error-card { box-shadow:0 24px 65px rgba(0,0,0,.28); }
.error-card-icon { width:76px; height:76px; margin:0 auto 18px; border-radius:20px; background:var(--tt-light); color:var(--tt-cobalt); display:flex; align-items:center; justify-content:center; font-size:2.15rem; }
.error-card-code { font-family:'Manrope',sans-serif; color:var(--tt-cobalt); font-size:3.2rem; font-weight:800; letter-spacing:-.04em; line-height:1; }
.error-card-label { color:var(--text-muted); font-size:.78rem; margin-top:8px; }
.error-route { margin-top:22px; border-top:1px solid var(--card-border); padding-top:17px; display:flex; align-items:center; justify-content:center; gap:8px; color:var(--text-muted); font-size:.75rem; }

@media(max-width:991.98px){
  .auth-visual { min-height:auto; padding:38px; }
  .auth-form-panel { padding:42px 38px; }
  .auth-layout { min-height:auto; }
  .auth-visual-copy { max-width:620px; }
  .auth-flow { grid-template-columns:repeat(3,1fr); }
  .auth-mini-status { margin-top:32px; }
}
@media(max-width:767.98px){
  .tt-page-nav .container { min-height:58px; }
  .tt-page-nav-actions .tt-page-link { display:none; }
  .auth-container { padding-top:26px; padding-bottom:26px; }
  .auth-layout { border-radius:18px; }
  .auth-visual { padding:30px 24px; }
  .auth-visual h1 { margin-top:18px; }
  .auth-flow { grid-template-columns:1fr; margin-top:24px; }
  .auth-flow-item:nth-child(n+3) { display:none; }
  .auth-form-panel { padding:34px 24px; }
  .role-selector { grid-template-columns:1fr; }
  .register-submit-row { grid-template-columns:96px minmax(86px,1fr) minmax(158px,.95fr); gap:8px; }
  .register-captcha-image { width:96px; }
  .register-submit-row .btn-auth-primary { grid-column:auto; padding-inline:10px; font-size:.82rem; white-space:nowrap; }
  .auth-meta-row { align-items:flex-start; }
  .error-main { padding:46px 0; }
  .error-illustration { min-height:330px; margin-top:36px; }
  .error-orbit { width:290px; height:290px; }
  .error-actions .btn-hero-primary,.error-actions .btn-hero-ghost { width:100%; justify-content:center; }
  .tt-compact-footer-row { justify-content:center; text-align:center; }
  .tt-compact-footer-links { justify-content:center; }
}
@media(max-width:420px){
  .auth-form-panel { padding:30px 18px; }
  .auth-visual { padding:26px 18px; }
  .auth-heading { font-size:1.55rem; }
  .auth-meta-row { flex-direction:column; gap:10px; }
}
