:root{
  --vfb-primary:#22d3a6;
  --vfb-primary-dark:#6c63ff;
  --vfb-bg:#f8fcfb;
  --vfb-surface:#ffffff;
  --vfb-surface-2:#f3fbf8;
  --vfb-offset:#eef7f4;
  --vfb-text:#0d1728;
  --vfb-muted:#6d7685;
  --vfb-faint:#97a2b4;
  --vfb-border:rgba(13,23,40,.10);
  --vfb-border-strong:rgba(34,211,166,.22);
  --vfb-shadow:0 24px 60px rgba(13,23,40,.10);
  --vfb-shadow-soft:0 16px 40px rgba(13,23,40,.08);
  --vfb-success:#19a566;
  --vfb-error:#d25b5b;
  --vfb-font-body:"Manrope","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --vfb-font-display:"Sora","Inter",system-ui,sans-serif;
}

html[data-ntx-theme="dark"]{
  --vfb-bg:#08111f;
  --vfb-surface:#0f1b31;
  --vfb-surface-2:#11203a;
  --vfb-offset:#16243f;
  --vfb-text:#f5fbff;
  --vfb-muted:#a8b2c1;
  --vfb-faint:#74809a;
  --vfb-border:rgba(255,255,255,.10);
  --vfb-border-strong:rgba(108,99,255,.28);
  --vfb-shadow:0 28px 66px rgba(0,0,0,.34);
  --vfb-shadow-soft:0 16px 44px rgba(0,0,0,.28);
}

.ntd-driver-app{
  --ntd-bg:var(--vfb-bg);
  --ntd-surface:var(--vfb-surface);
  --ntd-surface-2:var(--vfb-surface-2);
  --ntd-offset:var(--vfb-offset);
  --ntd-border:var(--vfb-border);
  --ntd-text:var(--vfb-text);
  --ntd-muted:var(--vfb-muted);
  --ntd-faint:var(--vfb-faint);
  --ntd-accent:var(--vfb-primary);
  --ntd-accent-hover:color-mix(in srgb,var(--vfb-primary) 70%,var(--vfb-primary-dark));
  --ntd-accent-subtle:color-mix(in srgb,var(--vfb-primary) 14%,transparent);
  --ntd-accent-border:var(--vfb-border-strong);
  --ntd-success:var(--vfb-success);
  --ntd-error:var(--vfb-error);
  --ntd-shadow:var(--vfb-shadow);
  --ntd-font:var(--vfb-font-body);
  --ntd-display:var(--vfb-font-display);
  background:
    radial-gradient(circle at 14% 0%,color-mix(in srgb,var(--vfb-primary) 14%,transparent),transparent 34%),
    radial-gradient(circle at 82% 0%,color-mix(in srgb,var(--vfb-primary-dark) 10%,transparent),transparent 28%),
    var(--ntd-bg);
  border:1px solid color-mix(in srgb,var(--ntd-accent) 10%,transparent);
  box-shadow:var(--vfb-shadow-soft);
}

[data-theme="light"] .ntd-driver-app.ntd-client-portal,
html[data-ntx-theme="light"] body .ntd-driver-app.ntd-client-portal,
html[data-ntx-theme="light"] body .ntd-driver-app{
  --ntd-bg:#f8fcfb !important;
  --ntd-surface:#ffffff !important;
  --ntd-surface-2:#f3fbf8 !important;
  --ntd-offset:#eef7f4 !important;
  --ntd-border:rgba(13,23,40,.10) !important;
  --ntd-text:#0d1728 !important;
  --ntd-muted:#6d7685 !important;
  --ntd-faint:#97a2b4 !important;
  --ntd-accent:#22d3a6 !important;
  --ntd-accent-hover:color-mix(in srgb,#22d3a6 70%,#6c63ff) !important;
  --ntd-accent-subtle:rgba(34,211,166,.14) !important;
  --ntd-accent-border:rgba(34,211,166,.22) !important;
  --ntd-shadow:0 24px 60px rgba(13,23,40,.10) !important;
}

.ntd-driver-card,
.ntd-login-method{
  border-color:color-mix(in srgb,var(--ntd-accent) 14%,var(--ntd-border));
  box-shadow:var(--vfb-shadow-soft);
}

.ntd-driver-btn,
.ntd-driver-app .button,
.ntd-driver-app .button-primary{
  background:linear-gradient(135deg,var(--ntd-accent),color-mix(in srgb,var(--ntd-accent) 66%,var(--vfb-primary-dark) 34%));
  color:#ffffff;
  border-color:transparent;
  box-shadow:0 14px 30px color-mix(in srgb,var(--ntd-accent) 22%,transparent);
}

.ntd-driver-btn.ghost{
  background:var(--ntd-surface-2);
  color:var(--ntd-text);
  border:1px solid var(--ntd-border);
  box-shadow:none;
}

.ntd-driver-btn.ghost:hover,
.ntd-driver-btn.ghost:focus-visible{
  border-color:var(--ntd-accent);
  color:var(--ntd-accent);
}

.ntd-login-method__icon,
.ntd-driver-chip,
.ntd-driver-badge{
  background:color-mix(in srgb,var(--ntd-accent) 14%,var(--ntd-surface));
  border-color:color-mix(in srgb,var(--ntd-accent) 22%,transparent);
}

.ntm-wrap{
  --ntm-bg:var(--vfb-bg);
  --ntm-surface:var(--vfb-surface);
  --ntm-surface2:var(--vfb-surface-2);
  --ntm-border:var(--vfb-border);
  --ntm-text:var(--vfb-text);
  --ntm-muted:var(--vfb-muted);
  --ntm-faint:var(--vfb-faint);
  --ntm-accent:var(--vfb-primary);
  --ntm-accent2:color-mix(in srgb,var(--vfb-primary) 14%,transparent);
  --ntm-shadow:var(--vfb-shadow);
  color:var(--ntm-text);
  font-family:var(--vfb-font-body);
  background:
    radial-gradient(circle at 14% 0%,color-mix(in srgb,var(--vfb-primary) 12%,transparent),transparent 32%),
    radial-gradient(circle at 86% 0%,color-mix(in srgb,var(--vfb-primary-dark) 10%,transparent),transparent 28%);
  border-radius:28px;
}

.ntm-card{
  border-color:color-mix(in srgb,var(--ntm-accent) 14%,var(--ntm-border));
  box-shadow:var(--vfb-shadow-soft);
}

.ntm-btn-primary{
  background:linear-gradient(135deg,var(--ntm-accent),color-mix(in srgb,var(--ntm-accent) 64%,var(--vfb-primary-dark) 36%));
  color:#ffffff!important;
  box-shadow:0 14px 30px color-mix(in srgb,var(--ntm-accent) 22%,transparent);
}

.ntm-btn-primary:visited,
.ntm-btn-primary:hover,
.ntm-btn-primary:focus{
  color:#ffffff!important;
}

.ntm-field input,
.ntm-field select,
.ntm-field textarea,
.ntm-summary,
.ntm-form-note{
  background:color-mix(in srgb,var(--ntm-surface2) 88%,var(--ntm-surface));
}

.ntm-summary,
.ntm-form-note{
  color:var(--ntm-text);
  border-color:color-mix(in srgb,var(--ntm-accent) 14%,var(--ntm-border));
}

.ntm-summary p,
.ntm-form-note p,
.ntm-form-note{
  color:var(--ntm-muted)!important;
}

.ntpc{
  --color-bg:var(--vfb-bg);
  --color-surface:var(--vfb-surface);
  --color-surface-2:var(--vfb-surface-2);
  --color-surface-offset:var(--vfb-offset);
  --color-surface-dynamic:color-mix(in srgb,var(--vfb-surface-2) 84%,var(--vfb-offset));
  --color-divider:color-mix(in srgb,var(--vfb-text) 10%,transparent);
  --color-border:var(--vfb-border);
  --color-text:var(--vfb-text);
  --color-text-muted:var(--vfb-muted);
  --color-text-faint:var(--vfb-faint);
  --color-text-inverse:#ffffff;
  --color-accent:var(--vfb-primary);
  --color-accent-hover:color-mix(in srgb,var(--vfb-primary) 68%,var(--vfb-primary-dark));
  --color-accent-subtle:color-mix(in srgb,var(--vfb-primary) 12%,transparent);
  --color-accent-border:var(--vfb-border-strong);
  --color-success:var(--vfb-success);
  --color-warning:#d19f34;
  --color-error:var(--vfb-error);
  --font-body:var(--vfb-font-body);
  --font-display:var(--vfb-font-display);
}

.ntpc-shell,
.ntpc-panel,
.ntpc-breakdown,
.ntpc-form-card{
  border-color:color-mix(in srgb,var(--color-accent) 14%,var(--color-border));
  box-shadow:var(--vfb-shadow-soft);
}

.ntpc-btn-primary,
.ntpc-lang-btn.is-active,
.ntpc-preset-btn.is-active{
  background:linear-gradient(135deg,var(--color-accent),color-mix(in srgb,var(--color-accent) 64%,var(--vfb-primary-dark) 36%));
  border-color:transparent;
  color:#ffffff;
  box-shadow:0 14px 30px color-mix(in srgb,var(--color-accent) 22%,transparent);
}

.ntpc-btn-ghost,
.ntpc-lang-btn,
.ntpc-preset-btn{
  border-color:var(--color-border);
}

:root{
  --ncc-brand:var(--vfb-primary);
  --ncc-bg-dark:#0f1b31;
  --ncc-bg-light:#ffffff;
  --ncc-text-dark:#f5fbff;
  --ncc-text-light:#0d1728;
  --ncc-border-dark:rgba(255,255,255,.12);
  --ncc-border-light:rgba(13,23,40,.12);
  --ncc-muted-dark:#a8b2c1;
  --ncc-muted-light:#6d7685;
}

.ncc-inner{
  border-radius:22px;
}

.ncc-btn-accept,
.ncc-btn-save{
  background:linear-gradient(135deg,var(--ncc-brand),color-mix(in srgb,var(--ncc-brand) 64%,var(--vfb-primary-dark) 36%));
  color:#ffffff;
}

.ncc-btn-reject,
.ncc-btn-settings:hover,
.ncc-btn-settings:focus-visible{
  color:var(--ncc-brand)!important;
  border-color:var(--ncc-brand)!important;
}

.ncc-inline-settings{
  border:1px solid color-mix(in srgb,var(--ncc-brand) 18%,transparent);
  background:color-mix(in srgb,var(--ncc-brand) 8%,transparent);
  color:var(--ncc-brand);
}

.npi-install-button{
  background:linear-gradient(135deg,var(--vfb-primary),color-mix(in srgb,var(--vfb-primary) 64%,var(--vfb-primary-dark) 36%));
  border-color:rgba(255,255,255,.44);
  box-shadow:0 16px 38px color-mix(in srgb,var(--vfb-primary) 28%,transparent);
}

.npi-install-button:hover,
.npi-install-button:focus-visible{
  box-shadow:0 18px 42px color-mix(in srgb,var(--vfb-primary) 34%,transparent);
  outline-color:color-mix(in srgb,var(--vfb-primary) 30%,transparent);
}

.npi-install-modal__dialog{
  background:var(--vfb-surface);
  color:var(--vfb-text);
  border:1px solid var(--vfb-border);
}

.npi-install-modal__overlay{
  background:rgba(8,17,31,.62);
}

@media (max-width: 900px){
  .ntd-driver-app,
  .ntm-wrap{
    border-radius:22px;
  }
}
