/* Canonical ns-gp/ns-gp-ag scopes own the palettes, including the surrounding content frame. */
@font-face {
    font-family: Roboto;
    src: url('/vendor/fonts/roboto/mission-control/roboto-latin-400.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: Roboto;
    src: url('/vendor/fonts/roboto/mission-control/roboto-latin-500.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: Roboto;
    src: url('/vendor/fonts/roboto/mission-control/roboto-latin-600.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}
body:has(.ns-polish20-frame),
body:has(.ns-polish20-frame) :is(#main-content, .ns-main) {
    background: var(--ns-bg);
    color: var(--ns-text);
    font-family: var(--ns-font);
}
.ns-polish-20 {
    font-family: var(--ns-font);
    color: var(--ns-text);
    --bs-body-font-family: var(--ns-font);
    --ns-font-body: var(--ns-font);
}
.ns-polish20-frame { background: var(--ns-bg); }
.ns-polish-20.ns-door-headline { background: var(--ns-bg); }
.ns-polish-20 :is(h1, h2, h3, h4) { color: var(--ns-text); }
.ns-polish-20 :is(.text-muted, .text-secondary) { color: var(--ns-text-2) !important; }
.ns-polish-20 :is(.card, .form-control, .form-select) {
    background-color: var(--ns-card);
    color: var(--ns-text);
    border-color: var(--ns-border);
}
.ns-polish-20 :is(.form-control, .form-select) { min-height: 44px; }
.ns-polish-20 .form-control::placeholder { color: var(--ns-text-2); opacity: 1; }
.ns-polish-20 :is(.btn-primary, .btn-success) {
    background: var(--ns-gold);
    border-color: var(--ns-gold);
    color: var(--ns-on-accent);
    min-height: 44px;
}
.ns-polish-20 :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-danger, .btn-link) {
    color: var(--ns-text);
    border-color: var(--ns-border-strong);
    min-height: 44px;
}
.ns-polish-20 :is(.btn-outline-primary, .btn-outline-secondary, .btn-outline-danger):hover {
    background: var(--ns-surface);
    color: var(--ns-text);
}
.ns-polish-20 .alert { background: var(--ns-surface); color: var(--ns-text); border-color: var(--ns-border-strong); }
.ns-polish-20 :focus-visible { outline-color: var(--ns-gold-light); }
.ns-polish-20 .ns-lifecycle__link { min-height: 44px; }
.ns-polish20-marketing { background: var(--ns-bg); color: var(--ns-text); --bs-border-color: var(--ns-border); }
.ns-polish20-marketing [class*="text-white"] { color: var(--ns-text-2) !important; }
.ns-polish20-marketing .text-white { color: var(--ns-text) !important; }
.ns-polish20-marketing [class*="text-slate-"] { color: var(--ns-text); }
.ns-polish20-marketing [class*="text-amber-"] { color: var(--ns-gold-light); }
.ns-polish20-marketing :is([class*="text-emerald-"], [class*="text-orange-"], [class*="text-blue-"], [class*="text-fuchsia-"]) { color: var(--ns-text); }
.ns-polish20-marketing [class*="bg-slate-"] { background: var(--ns-card); }
.ns-polish20-marketing [class*="bg-amber-"] { background: var(--ns-surface); }
.ns-polish20-marketing :is([class*="bg-emerald-"], [class*="bg-orange-"], [class*="bg-blue-"], [class*="bg-fuchsia-"], [class*="bg-white/"]) { background: var(--ns-surface); }
.ns-polish20-marketing [class*="bg-gradient-"] { background-image: none; background-color: var(--ns-surface); }
.ns-polish20-marketing [class*="border-"] { border-color: var(--ns-border); }
.ns-polish20-marketing [class*="shadow-"] { box-shadow: 0 4px 16px var(--ns-border); }
.ns-polish20-marketing .ns-polish20-primary { background: var(--ns-gold); color: var(--ns-on-accent); }
.ns-polish20-glow { background: radial-gradient(circle at top, var(--ns-gold-border), transparent 60%); }
.ns-polish20-shade { background: linear-gradient(to bottom, transparent, var(--ns-surface), transparent); }
.ns-polish20-shadow { box-shadow: 0 4px 16px var(--ns-border); }
.ns-polish-20.ns-pricing-page :is(.ns-pricing-card, .ns-pricing-status) { color: var(--ns-text); }
.ns-polish-20.ns-pricing-page .ns-pricing-card { background: var(--ns-card); border-color: var(--ns-border); }
.ns-polish-20 .history-table { color: var(--ns-text); }
.ns-polish-20.token-page { --ns-muted: var(--ns-text-2); }
.ns-polish-20.token-page .btn-checkout:hover { color: var(--ns-on-accent); }
@media (max-width: 420px) {
    .ns-polish20-frame.token-page { padding: 1rem; }
    .ns-polish-20 .balance-card { padding: 1rem; }
    .ns-polish-20 .packages-grid { grid-template-columns: minmax(0, 1fr); }
}
