/* *****************************************************

    ** Custom Stylesheet **

    Any custom styling you want to apply should be
    defined here.

***************************************************** */

/* Custom CSS for Nexus Cart
 *
 * This block allows you to customize theme colors and styles for the entire Nexus Cart template.
 *
 * To customize colors:
 * - Replace the var() references with your own hex colors or other CSS values.
 * - For example, instead of --primary: #4b5563; use --primary: #your-color;
 * - You can also override any CSS properties here.
 */

html {
    font-size: 14px;
}

:root {
    --white: #fff;

    /* Neutral shades */
    --neutral-50: #fbf9fa;
    --neutral-100: #f4f5f7;
    --neutral-200: #e4e4e7;
    --neutral-300: #d0d5dd;
    --neutral-400: #9ca3af;
    --neutral-500: #6b7280;
    --neutral-600: #4b5563;
    --neutral-700: #374151;
    --neutral-800: #1f2937;
    --neutral-900: #111827;
    --neutral-950: #030712;

    /* Neutral shades */
    /* define own pallet with brand colors */
    --primary-50: var(--neutral-50);
    --primary-100: var(--neutral-100);
    --primary-200: var(--neutral-200);
    --primary-300: var(--neutral-300);
    --primary-400: var(--neutral-400);
    --primary-500: var(--neutral-500);
    --primary-600: var(--neutral-600);
    --primary-700: var(--neutral-700);
    --primary-800: var(--neutral-800);
    --primary-900: var(--neutral-900);
    --primary-950: var(--neutral-900);

    /* Primary colors */
    /* Use shades from comments if `primary` colors use other colors, then neutral */
    --primary: var(--neutral-900);          /* var(--primary-600) */
    --primary-lifted: var(--neutral-800);   /* var(--primary-700) */
    --primary-accented: var(--neutral-700); /* var(--primary-800) */

    /* Secondary colors */
    --secondary: var(--neutral-500);
    --secondary-lifted: var(--neutral-600);
    --secondary-accented: var(--neutral-700);

    /* Success colors */
    --success: #00a63e;
    --success-lifted: #008236;
    --success-accented: #016630;

    /* Info colors */
    --info: #155dfc;
    --info-lifted: #1447e6;
    --info-accented: #193cb8;

    /* Notice colors */
    --notice: #7f22fe;
    --notice-lifted: #7008e7;
    --notice-accented: #5d0ec0;

    /* Warning colors */
    --warning: #f54a00;
    --warning-lifted: #ca3500;
    --warning-accented: #9f2d00;

    /* Error colors */
    --error: #e7000b;
    --error-lifted: #c10007;
    --error-accented: #9f0712;

    /* Grayscale colors */
    --grayscale: var(--neutral-900);
    --grayscale-lifted: var(--neutral-800);
    --grayscale-accented: var(--neutral-700);

    /* Neutral colors */
    --neutral: var(--neutral-500);
    --neutral-lifted: var(--neutral-600);
    --neutral-accented: var(--neutral-700);

    /* Text neutral colors */
    --text-inverted: var(--white);
    --text-muted: var(--neutral-400);
    --text-lifted: var(--neutral-500);
    --text-accented: var(--neutral-600);
    --text: var(--neutral-900);

    /* Border neutral colors */
    --border-muted: var(--neutral-200);
    --border: var(--neutral-300);
    --border-lifted: var(--neutral-400);
    --border-accented: var(--neutral-600);

    /* Background neutral colors */
    --bg: var(--white);
    --bg-muted: var(--neutral-50);
    --bg-lifted: var(--neutral-100);
    --bg-accented: var(--neutral-200);
    --bg-inverted: var(--neutral-900);

    /* Additional colors */
    --yellow-200: #fff085;
    --yellow-300: #ffdf20;
    --teal-300: #46edd5;
    --teal-400: #00d5be;
    --emerald-300: #5ee9b5;
    --pink-400: #fb64b6;

    /* Additional custom properties */
    /* Font sizes */
    --text-xs: 0.625rem;
    --text-sm: 0.75rem;
    --text-md: 0.875rem;
    --text-lg: 1rem;

    /* Spacing */
    --outline-sm: 1px;
    --outline-md: 2px;
    --outline-lg: 3px;

    /* Rounding */
    --rounding-sm: 0.25rem;
    --rounding-md: 0.5rem;
    --rounding-lg: 0.75rem;

    /* Other */
    --letter-spacing: 0em;
    --disabled-opacity: 25%;
}


/* Schrift (lokal) */
/* latin-ext */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffGjEGIVzY4SY.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffGjEGItzYw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/NaPecZTIAOhVxoMyOr9n_E7fdM3mDbRS.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/NaPecZTIAOhVxoMyOr9n_E7fdMPmDQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffBzCGIVzY4SY.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffBzCGItzYw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGIVzY4SY.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Titillium Web';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/NaPDcZTIAOhVxoMyOr9n_E7ffHjDGItzYw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   Nodvaro - Login, Registrierung, Passwort-Reset und Zwei-Faktor-Abfrage
   im Stil der Website. Alle Regeln gelten nur auf diesen Seiten
   (erkennbar am Rahmen .nv-auth); der Rest des Kundenbereichs bleibt wie er ist.
   ========================================================================== */

/* ---------- Seite: zwei Spalten, Kopfzeile des Standard-Themes ausgeblendet ---------- */
body.nv-auth-page {
  --nv-bg: #101010; --nv-s1: #1c1c1c; --nv-s2: #262626; --nv-line: #363636;
  --nv-txt: #d6d6d6; --nv-mut: #a8a8a8; --nv-acc: #ffd23f; --nv-ink: rgba(16,16,16,.86);
  --nv-font: 'Titillium Web', -apple-system, system-ui, 'Segoe UI', Roboto, Ubuntu, 'Noto Sans', Arial, sans-serif;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  grid-template-rows: 1fr auto;
  min-height: 100vh;
  height: auto !important;
  margin: 0;
  background: var(--nv-bg) !important;
  color: var(--nv-txt);
  font-family: var(--nv-font);
  font-size: 16px;
  line-height: 1.5;
}
body:has(.nv-auth) {
  --nv-bg: #101010; --nv-s1: #1c1c1c; --nv-s2: #262626; --nv-line: #363636;
  --nv-txt: #d6d6d6; --nv-mut: #a8a8a8; --nv-acc: #ffd23f; --nv-ink: rgba(16,16,16,.86);
  --nv-font: 'Titillium Web', -apple-system, system-ui, 'Segoe UI', Roboto, Ubuntu, 'Noto Sans', Arial, sans-serif;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  grid-template-rows: 1fr auto;
  min-height: 100vh;
  height: auto !important;
  margin: 0;
  background: var(--nv-bg) !important;
  color: var(--nv-txt);
  font-family: var(--nv-font);
  font-size: 16px;
  line-height: 1.5;
}
html.nv-auth-root { background: #101010 !important; height: auto !important; }
html:has(.nv-auth) { background: #101010 !important; height: auto !important; }
body.nv-auth-page::before { content: ""; position: fixed; inset: 0 0 auto 0; height: 4px; background: var(--nv-acc); z-index: 20; }
body:has(.nv-auth)::before { content: ""; position: fixed; inset: 0 0 auto 0; height: 4px; background: var(--nv-acc); z-index: 20; }
body.nv-auth-page > #header,
body.nv-auth-page > .master-breadcrumb { display: none !important; }
body:has(.nv-auth) > #header,
body:has(.nv-auth) > .master-breadcrumb { display: none !important; }
body.nv-auth-page > * { grid-column: 1 / -1; }
body:has(.nv-auth) > * { grid-column: 1 / -1; }
/* Alle Huellen zwischen <body> und dem Rahmen aufloesen, egal wie das Eltern-Theme sie nennt.
   Moderne Browser: ueber :has(). Aeltere: das Skript am Ende der Seite setzt .nv-auth-pass. */
body.nv-auth-page #main-body,
body.nv-auth-page #main-body .primary-content,
body.nv-auth-page .nv-auth,
body.nv-auth-page .nv-auth-pass { display: contents; }
body:has(.nv-auth) #main-body,
body:has(.nv-auth) #main-body .primary-content,
body:has(.nv-auth) .nv-auth,
body:has(.nv-auth) .nv-auth-pass { display: contents; }
body:has(.nv-auth) #main-body :has(.nv-auth) { display: contents; }

/* ---------- linke Seite ---------- */
body.nv-auth-page .nv-auth__side {
  grid-column: 1; grid-row: 1 / span 2;
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 44px 110px 56px 48px;
  background-color: #1c1c1c;
  background-image:
    var(--nv-shade, linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(0,0,0,.30) 100%)),
    var(--nv-art, none),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 1.5px);
  background-size: cover, cover, 18px 18px;
  background-position: center, center, 0 0;
  clip-path: polygon(0 0, 100% 0, calc(100% - 72px) 100%, 0 100%);
}
body:has(.nv-auth) .nv-auth__side {
  grid-column: 1; grid-row: 1 / span 2;
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 44px 110px 56px 48px;
  background-color: #1c1c1c;
  background-image:
    var(--nv-shade, linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(0,0,0,.30) 100%)),
    var(--nv-art, none),
    radial-gradient(circle at 1px 1px, rgba(255,255,255,.10) 1px, transparent 1.5px);
  background-size: cover, cover, 18px 18px;
  background-position: center, center, 0 0;
  clip-path: polygon(0 0, 100% 0, calc(100% - 72px) 100%, 0 100%);
}
.nv-auth__brand {
  display: inline-flex; align-items: center; gap: 10px; align-self: flex-start;
  color: #fff !important; font-size: 26px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; text-decoration: none !important; line-height: 1;
}
.nv-auth__brand svg { width: 30px; height: 30px; flex: none; }
.nv-auth__pitch { max-width: 460px; }
.nv-auth__title { margin: 0 0 14px; color: #fff; font-size: clamp(32px, 3.3vw, 54px); font-weight: 400; line-height: 1.12; letter-spacing: -.01em; }
.nv-auth__sub { margin: 0; color: var(--nv-txt); font-size: 18px; max-width: 34ch; }

/* ---------- rechte Seite ---------- */
body.nv-auth-page .nv-auth__main {
  grid-column: 2; grid-row: 1;
  position: relative;
  display: flex; flex-direction: column; justify-content: center;
  min-width: 0;
  padding: 96px 48px 40px 24px;
}
body:has(.nv-auth) .nv-auth__main {
  grid-column: 2; grid-row: 1;
  position: relative;
  display: flex; flex-direction: column; justify-content: center;
  min-width: 0;
  padding: 96px 48px 40px 24px;
}
.nv-auth__back {
  position: absolute; top: 34px; left: 24px;
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--nv-mut) !important; font-size: 13px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; text-decoration: none !important;
  transition: color .2s;
}
.nv-auth__back:hover { color: #fff !important; }
.nv-auth__back svg { width: 18px; height: 12px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nv-auth__form { width: 100%; max-width: 470px; margin: 0 auto; }
.nv-auth--clientregister .nv-auth__form { max-width: 700px; }
.nv-auth--clientregister.nv-auth .nv-auth__main,
.nv-auth--clientregister .nv-auth__main { justify-content: flex-start; }

/* ---------- Karten, Texte ---------- */
.nv-auth__main .card {
  max-width: none; margin-left: 0; margin-right: 0;
  background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; box-shadow: none; color: var(--nv-txt);
}
.nv-auth__main .mw-540 { max-width: none; }
.nv-auth__main .row.justify-content-center { margin: 0; display: block; }
.nv-auth__main .card-footer { background: transparent; border-top: 1px solid var(--nv-line); color: var(--nv-mut); }
.nv-auth__main .h3,
.nv-auth__main h3,
.nv-auth__main .card-title { color: #fff; font-family: var(--nv-font); font-weight: 400; font-size: 28px; line-height: 1.2; letter-spacing: 0; }
.nv-auth__main .card-title small { color: var(--nv-mut); font-size: 14px; }
.nv-auth__main p { color: var(--nv-txt); }
.nv-auth__main .text-muted { color: var(--nv-mut) !important; }
.nv-auth__main a { color: var(--nv-acc); }
.nv-auth__main a:hover { color: #ffe48a; }
.nv-auth__main small, .nv-auth__main .small { font-size: 14px; }

/* ---------- Felder ---------- */
.nv-auth__main .form-control-label,
.nv-auth__main .form-group > label:not(.field-icon):not(.form-check) {
  color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 6px;
}
.nv-auth__main .form-control,
.nv-auth__main input.field,
.nv-auth__main select.field,
.nv-auth__main .custom-select,
.nv-auth__main #registration .field,
.nv-auth__main #registration .form-control {
  height: 46px; padding-top: 10px; padding-bottom: 10px;
  background: var(--nv-bg) !important; border-style: solid; border-width: 1px; border-color: var(--nv-line) !important;
  border-radius: 4px !important; box-shadow: none !important;
  color: #fff !important; font-family: var(--nv-font); font-size: 16px;
  transition: border-color .2s;
}
.nv-auth__main select.form-control,
.nv-auth__main select.field,
.nv-auth__main select.custom-select,
.nv-auth__main #registration select.field,
.nv-auth__main #registration select.form-control {
  padding-top: 0; padding-bottom: 0; padding-right: 36px; line-height: 44px;
  -webkit-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8a8a8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right 14px center !important; background-size: 10px 6px !important;
}
.nv-auth__main textarea.form-control { height: auto; }
.nv-auth__main .form-control-lg { height: 52px; font-size: 18px; }
.nv-auth__main .form-control:focus,
.nv-auth__main input.field:focus,
.nv-auth__main select.field:focus,
.nv-auth__main #registration .field:focus,
.nv-auth__main #registration .form-control:focus { border-color: var(--nv-acc) !important; outline: 0; }
.nv-auth__main ::placeholder { color: #7d7d7d; opacity: 1; }
.nv-auth__main input:-webkit-autofill,
.nv-auth__main input:-webkit-autofill:focus {
  -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 1000px var(--nv-bg) inset; box-shadow: 0 0 0 1000px var(--nv-bg) inset; caret-color: #fff;
}
.nv-auth__main select.form-control,
.nv-auth__main select.field { color-scheme: dark; }
.nv-auth__main .input-group-text { background: var(--nv-bg); border: 1px solid var(--nv-line); color: var(--nv-mut); }
.nv-auth__main .input-group-merge .input-group-prepend .input-group-text { border-right: 0; border-radius: 4px 0 0 4px; }
.nv-auth__main .input-group-merge .form-control { border-left-width: 0; border-radius: 0 4px 4px 0 !important; }
.nv-auth__main .input-group-merge .form-control:not(:last-child) { border-right-width: 0; border-radius: 0 !important; }
.nv-auth__main .input-group-merge:focus-within .input-group-text,
.nv-auth__main .input-group-merge:focus-within .btn-reveal-pw { border-color: var(--nv-acc); }
.nv-auth__main .btn-reveal-pw,
.nv-auth__main .btn-reveal-pw:hover,
.nv-auth__main .btn-reveal-pw:focus { background: var(--nv-bg); border: 1px solid var(--nv-line); border-left: 0; border-radius: 0 4px 4px 0; color: var(--nv-mut); box-shadow: none; }
.nv-auth__main .btn-reveal-pw:hover { color: #fff; }
.nv-auth__main #registration { padding-bottom: 0; }
.nv-auth__main #registration .prepend-icon .field-icon { width: 44px; height: 46px; line-height: 46px; color: var(--nv-mut); }
.nv-auth__main #registration .prepend-icon > .field,
.nv-auth__main #registration .prepend-icon > .form-control { padding-left: 42px; }
.nv-auth__main #registration label { color: var(--nv-mut); font-size: 12px; font-weight: 600; }
.nv-auth__main #registration label.form-check { color: var(--nv-txt); font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.nv-auth--clientregister .card-title { font-size: 22px !important; margin-bottom: 18px; }
.nv-auth__main #registration .password-strength-meter p { color: var(--nv-mut) !important; margin: 8px 0 0; }
.nv-auth__main #registration p.text-center:last-child { margin-bottom: 0; }

/* Ja/Nein-Schalter (Newsletter) */
.nv-auth__main .bootstrap-switch { border-color: var(--nv-line); border-radius: 4px; }
.nv-auth__main .bootstrap-switch .bootstrap-switch-handle-on,
.nv-auth__main .bootstrap-switch .bootstrap-switch-handle-off { background: var(--nv-s2); color: var(--nv-txt); border-color: var(--nv-line); }
.nv-auth__main .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success { background: var(--nv-acc); color: var(--nv-ink); font-weight: 600; }
.nv-auth__main .bootstrap-switch .bootstrap-switch-label { background: #3a3a3a; }
.nv-auth__main .field-help-text { color: var(--nv-mut); font-size: 13px; }

/* Telefonfeld mit Laendervorwahl */
.nv-auth__main .intl-tel-input { width: 100%; }
.nv-auth__main .intl-tel-input .selected-flag { background: transparent; }
.nv-auth__main .intl-tel-input .selected-dial-code { color: var(--nv-txt); }
.nv-auth__main .intl-tel-input.separate-dial-code .selected-flag { background: transparent; border-radius: 4px 0 0 4px; }
.nv-auth__main .intl-tel-input .iti-arrow { border-top-color: var(--nv-mut); }
.nv-auth__main .intl-tel-input .country-list { background: var(--nv-s1); border: 1px solid var(--nv-line); color: var(--nv-txt); box-shadow: 0 14px 40px rgba(0,0,0,.55); }
.nv-auth__main .intl-tel-input .country-list .country.highlight { background: var(--nv-s2); }
.nv-auth__main .intl-tel-input .country-list .dial-code { color: var(--nv-mut); }
.nv-auth__main .intl-tel-input .country-list .divider { border-bottom-color: var(--nv-line); }

/* ---------- Schaltflaechen ---------- */
.nv-auth__main .btn { font-family: var(--nv-font); border-radius: 4px; }
.nv-auth__main .btn-primary,
.nv-auth__main input.btn-primary {
  background: var(--nv-acc); border: 1px solid var(--nv-acc); color: var(--nv-ink);
  font-size: 16px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; padding: 11px 22px; box-shadow: none;
  transition: background-color .2s, border-color .2s;
}
.nv-auth__main .btn-primary:hover,
.nv-auth__main .btn-primary:focus,
.nv-auth__main .btn-primary:active,
.nv-auth__main .btn-primary:not(:disabled):not(.disabled):active { background: #ffe07a; border-color: #ffe07a; color: var(--nv-ink); box-shadow: none; }
.nv-auth__main .btn-primary:focus-visible,
.nv-auth__main .btn-default:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.nv-auth__main .btn-primary.disabled,
.nv-auth__main .btn-primary:disabled { background: #6f6336; border-color: #6f6336; color: rgba(16,16,16,.7); }
.nv-auth__main .btn-lg { padding: 13px 28px; font-size: 17px; }
.nv-auth__main .btn-default,
.nv-auth__main .btn-secondary {
  background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff; box-shadow: none;
}
.nv-auth__main .btn-default:hover,
.nv-auth__main .btn-secondary:hover { background: #303030; border-color: #4a4a4a; color: #fff; }

/* ---------- Login: Knopf ueber die ganze Breite, "angemeldet bleiben" darunter ---------- */
.nv-auth__main .login-form .float-left { float: none !important; }
.nv-auth__main .login-form #login { display: block; width: 100%; }
.nv-auth__main .login-form .text-right { text-align: left !important; margin-top: 16px; }
.nv-auth__main .login-form .text-right label { display: inline-flex; align-items: center; gap: 10px; margin: 0; color: var(--nv-txt); font-size: 15px; cursor: pointer; }
.nv-auth__main .form-check-input { position: static; margin: 0; width: 16px; height: 16px; accent-color: var(--nv-acc); flex: none; }
.nv-auth__main label.form-check { display: inline-flex; align-items: center; gap: 10px; padding-left: 0; color: var(--nv-txt); cursor: pointer; }

/* ---------- Hinweise ---------- */
.nv-auth__main .alert { border-radius: 4px; border: 1px solid var(--nv-line); background: var(--nv-s2); color: var(--nv-txt); }
.nv-auth__main .alert-danger { background: rgba(229,72,77,.12); border-color: rgba(229,72,77,.45); color: #ffb3b6; }
.nv-auth__main .alert-success { background: rgba(74,222,128,.10); border-color: rgba(74,222,128,.40); color: #a7f0c1; }
.nv-auth__main .alert-warning { background: rgba(255,210,63,.10); border-color: rgba(255,210,63,.40); color: #ffe48a; }
.nv-auth__main .alert-info { background: rgba(255,255,255,.05); border-color: var(--nv-line); color: var(--nv-txt); }
.nv-auth__main .alert a, .nv-auth__main .alert .alert-link { color: inherit; text-decoration: underline; }
.nv-auth__main .progress { background: var(--nv-s2); border-radius: 4px; }

/* ---------- Dialoge (Passwort generieren, Sprache und Waehrung) ---------- */
body.nv-auth-page .modal { font-family: var(--nv-font); }
body:has(.nv-auth) .modal { font-family: var(--nv-font); }
body.nv-app .modal { font-family: var(--nv-font); }
body.nv-auth-page .modal-backdrop.show { opacity: .72; }
body:has(.nv-auth) .modal-backdrop.show { opacity: .72; }
body.nv-app .modal-backdrop.show { opacity: .72; }
body.nv-auth-page .modal-content {
  background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; color: var(--nv-txt);
  box-shadow: 0 24px 80px rgba(0,0,0,.6); overflow: hidden;
}
body:has(.nv-auth) .modal-content {
  background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; color: var(--nv-txt);
  box-shadow: 0 24px 80px rgba(0,0,0,.6); overflow: hidden;
}
body.nv-app .modal-content {
  background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; color: var(--nv-txt);
  box-shadow: 0 24px 80px rgba(0,0,0,.6); overflow: hidden;
}
body.nv-auth-page .modal .modal-header { background: var(--nv-s1) !important; border-bottom: 1px solid var(--nv-line); color: #fff !important; padding: 18px 22px; align-items: center; }
body:has(.nv-auth) .modal .modal-header { background: var(--nv-s1) !important; border-bottom: 1px solid var(--nv-line); color: #fff !important; padding: 18px 22px; align-items: center; }
body.nv-app .modal .modal-header { background: var(--nv-s1) !important; border-bottom: 1px solid var(--nv-line); color: #fff !important; padding: 18px 22px; align-items: center; }
body.nv-auth-page .modal .modal-title { color: #fff; font-size: 22px; font-weight: 400; line-height: 1.2; }
body:has(.nv-auth) .modal .modal-title { color: #fff; font-size: 22px; font-weight: 400; line-height: 1.2; }
body.nv-app .modal .modal-title { color: #fff; font-size: 22px; font-weight: 400; line-height: 1.2; }
body.nv-auth-page .modal .close { color: var(--nv-mut) !important; text-shadow: none; opacity: 1; font-weight: 400; }
body:has(.nv-auth) .modal .close { color: var(--nv-mut) !important; text-shadow: none; opacity: 1; font-weight: 400; }
body.nv-app .modal .close { color: var(--nv-mut) !important; text-shadow: none; opacity: 1; font-weight: 400; }
body.nv-auth-page .modal .close:hover { color: #fff !important; }
body:has(.nv-auth) .modal .close:hover { color: #fff !important; }
body.nv-app .modal .close:hover { color: #fff !important; }
body.nv-auth-page .modal .modal-body { padding: 22px; }
body:has(.nv-auth) .modal .modal-body { padding: 22px; }
body.nv-app .modal .modal-body { padding: 22px; }
body.nv-auth-page .modal .modal-footer { background: transparent; border-top: 1px solid var(--nv-line); padding: 14px 22px; gap: 4px; }
body:has(.nv-auth) .modal .modal-footer { background: transparent; border-top: 1px solid var(--nv-line); padding: 14px 22px; gap: 4px; }
body.nv-app .modal .modal-footer { background: transparent; border-top: 1px solid var(--nv-line); padding: 14px 22px; gap: 4px; }
body.nv-auth-page .modal label { color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
body:has(.nv-auth) .modal label { color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
body.nv-app .modal label { color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
body.nv-auth-page .modal .form-control {
  height: 46px; background: var(--nv-bg) !important; border: 1px solid var(--nv-line) !important; border-radius: 4px !important;
  box-shadow: none !important; color: #fff !important; font-family: var(--nv-font); font-size: 16px;
}
body:has(.nv-auth) .modal .form-control {
  height: 46px; background: var(--nv-bg) !important; border: 1px solid var(--nv-line) !important; border-radius: 4px !important;
  box-shadow: none !important; color: #fff !important; font-family: var(--nv-font); font-size: 16px;
}
body.nv-app .modal .form-control {
  height: 46px; background: var(--nv-bg) !important; border: 1px solid var(--nv-line) !important; border-radius: 4px !important;
  box-shadow: none !important; color: #fff !important; font-family: var(--nv-font); font-size: 16px;
}
body.nv-auth-page .modal .form-control:focus { border-color: var(--nv-acc) !important; outline: 0; }
body:has(.nv-auth) .modal .form-control:focus { border-color: var(--nv-acc) !important; outline: 0; }
body.nv-app .modal .form-control:focus { border-color: var(--nv-acc) !important; outline: 0; }
body.nv-auth-page .modal .btn { font-family: var(--nv-font); border-radius: 4px; box-shadow: none; }
body:has(.nv-auth) .modal .btn { font-family: var(--nv-font); border-radius: 4px; box-shadow: none; }
body.nv-app .modal .btn { font-family: var(--nv-font); border-radius: 4px; box-shadow: none; }
body.nv-auth-page .modal .btn-primary {
  background: var(--nv-acc); border: 1px solid var(--nv-acc); color: var(--nv-ink);
  font-size: 14px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; padding: 10px 16px;
}
body:has(.nv-auth) .modal .btn-primary {
  background: var(--nv-acc); border: 1px solid var(--nv-acc); color: var(--nv-ink);
  font-size: 14px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; padding: 10px 16px;
}
body.nv-app .modal .btn-primary {
  background: var(--nv-acc); border: 1px solid var(--nv-acc); color: var(--nv-ink);
  font-size: 14px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; padding: 10px 16px;
}
body.nv-auth-page .modal .btn-primary:hover,
body.nv-auth-page .modal .btn-primary:focus,
body.nv-auth-page .modal .btn-primary:not(:disabled):not(.disabled):active { background: #ffe07a; border-color: #ffe07a; color: var(--nv-ink); box-shadow: none; }
body:has(.nv-auth) .modal .btn-primary:hover,
body:has(.nv-auth) .modal .btn-primary:focus,
body:has(.nv-auth) .modal .btn-primary:not(:disabled):not(.disabled):active { background: #ffe07a; border-color: #ffe07a; color: var(--nv-ink); box-shadow: none; }
body.nv-app .modal .btn-primary:hover,
body.nv-app .modal .btn-primary:focus,
body.nv-app .modal .btn-primary:not(:disabled):not(.disabled):active { background: #ffe07a; border-color: #ffe07a; color: var(--nv-ink); box-shadow: none; }
body.nv-auth-page .modal .btn-default { background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff; }
body:has(.nv-auth) .modal .btn-default { background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff; }
body.nv-app .modal .btn-default { background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff; }
body.nv-auth-page .modal .btn-default:hover,
body.nv-auth-page .modal .btn-default:focus { background: #303030; border-color: #4a4a4a; color: #fff; }
body:has(.nv-auth) .modal .btn-default:hover,
body:has(.nv-auth) .modal .btn-default:focus { background: #303030; border-color: #4a4a4a; color: #fff; }
body.nv-app .modal .btn-default:hover,
body.nv-app .modal .btn-default:focus { background: #303030; border-color: #4a4a4a; color: #fff; }
body.nv-auth-page .modal .btn-default img { filter: invert(1); opacity: .85; }
body:has(.nv-auth) .modal .btn-default img { filter: invert(1); opacity: .85; }
body.nv-app .modal .btn-default img { filter: invert(1); opacity: .85; }
body.nv-auth-page .modal .btn-sm { padding: 7px 12px; font-size: 14px; margin: 0 4px 6px 0; }
body:has(.nv-auth) .modal .btn-sm { padding: 7px 12px; font-size: 14px; margin: 0 4px 6px 0; }
body.nv-app .modal .btn-sm { padding: 7px 12px; font-size: 14px; margin: 0 4px 6px 0; }
body.nv-auth-page .modal .alert-danger { background: rgba(229,72,77,.12); border: 1px solid rgba(229,72,77,.45); border-radius: 4px; color: #ffb3b6; }
body:has(.nv-auth) .modal .alert-danger { background: rgba(229,72,77,.12); border: 1px solid rgba(229,72,77,.45); border-radius: 4px; color: #ffb3b6; }
body.nv-app .modal .alert-danger { background: rgba(229,72,77,.12); border: 1px solid rgba(229,72,77,.45); border-radius: 4px; color: #ffb3b6; }
body.nv-auth-page .modal-localisation .modal-content { background: var(--nv-s1); }
body:has(.nv-auth) .modal-localisation .modal-content { background: var(--nv-s1); }
body.nv-app .modal-localisation .modal-content { background: var(--nv-s1); }
body.nv-auth-page .modal-localisation .modal-body { background: none; }
body:has(.nv-auth) .modal-localisation .modal-body { background: none; }
body.nv-app .modal-localisation .modal-body { background: none; }
body.nv-auth-page .modal-localisation .h5 { color: #fff; font-size: 20px; font-weight: 400; }
body:has(.nv-auth) .modal-localisation .h5 { color: #fff; font-size: 20px; font-weight: 400; }
body.nv-app .modal-localisation .h5 { color: #fff; font-size: 20px; font-weight: 400; }
body.nv-auth-page .modal-localisation .item-selector .item { margin: 4px 0; padding: 8px; border: 1px solid var(--nv-line); border-radius: 4px; color: var(--nv-txt); }
body:has(.nv-auth) .modal-localisation .item-selector .item { margin: 4px 0; padding: 8px; border: 1px solid var(--nv-line); border-radius: 4px; color: var(--nv-txt); }
body.nv-app .modal-localisation .item-selector .item { margin: 4px 0; padding: 8px; border: 1px solid var(--nv-line); border-radius: 4px; color: var(--nv-txt); }
body.nv-auth-page .modal-localisation .item-selector .item:hover { background: var(--nv-s2); color: #fff; text-decoration: none; }
body:has(.nv-auth) .modal-localisation .item-selector .item:hover { background: var(--nv-s2); color: #fff; text-decoration: none; }
body.nv-app .modal-localisation .item-selector .item:hover { background: var(--nv-s2); color: #fff; text-decoration: none; }
body.nv-auth-page .modal-localisation .item-selector .item.active { background: transparent; border-color: var(--nv-acc); color: var(--nv-acc); }
body:has(.nv-auth) .modal-localisation .item-selector .item.active { background: transparent; border-color: var(--nv-acc); color: var(--nv-acc); }
body.nv-app .modal-localisation .item-selector .item.active { background: transparent; border-color: var(--nv-acc); color: var(--nv-acc); }

/* ---------- Fusszeile (Sprachwahl bleibt erreichbar) ---------- */
body.nv-auth-page > #footer {
  grid-column: 2; grid-row: 2;
  background: transparent; border: 0; border-top: 1px solid var(--nv-line);
  margin: 0 48px 0 24px; padding: 18px 0 22px;
  color: var(--nv-mut); font-family: var(--nv-font); font-size: 13px;
}
body:has(.nv-auth) > #footer {
  grid-column: 2; grid-row: 2;
  background: transparent; border: 0; border-top: 1px solid var(--nv-line);
  margin: 0 48px 0 24px; padding: 18px 0 22px;
  color: var(--nv-mut); font-family: var(--nv-font); font-size: 13px;
}
body.nv-auth-page > #footer .container { max-width: none; padding: 0; }
body:has(.nv-auth) > #footer .container { max-width: none; padding: 0; }
body.nv-auth-page > #footer .nav-link { color: var(--nv-mut); padding: 4px 16px 4px 0; }
body:has(.nv-auth) > #footer .nav-link { color: var(--nv-mut); padding: 4px 16px 4px 0; }
body.nv-auth-page > #footer .nav-link:hover { color: #fff; }
body:has(.nv-auth) > #footer .nav-link:hover { color: #fff; }
body.nv-auth-page > #footer .copyright { color: #7d7d7d; margin-top: 4px; }
body:has(.nv-auth) > #footer .copyright { color: #7d7d7d; margin-top: 4px; }
body.nv-auth-page > #footer .btn-outline-light { border-color: var(--nv-line); color: var(--nv-txt); border-radius: 4px; }
body:has(.nv-auth) > #footer .btn-outline-light { border-color: var(--nv-line); color: var(--nv-txt); border-radius: 4px; }
body.nv-auth-page > #footer .btn-outline-light:hover { background: var(--nv-s2); color: #fff; }
body:has(.nv-auth) > #footer .btn-outline-light:hover { background: var(--nv-s2); color: #fff; }

/* ---------- niedrige Bildschirme: etwas enger, damit der Login ohne Scrollen passt ---------- */
@media (max-height: 800px) and (min-width: 901px) {
  body.nv-auth-page .nv-auth__main { padding-top: 78px; padding-bottom: 20px; }
  body:has(.nv-auth) .nv-auth__main { padding-top: 78px; padding-bottom: 20px; }
  .nv-auth__main .card-body.py-5 { padding-top: 34px !important; padding-bottom: 34px !important; }
  body.nv-auth-page > #footer { padding: 12px 0 14px; }
  body:has(.nv-auth) > #footer { padding: 12px 0 14px; }
}

/* ---------- schmale Bildschirme: eine Spalte ---------- */
@media (max-width: 900px) {
  body.nv-auth-page { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; }
  body:has(.nv-auth) { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr auto; }
  body.nv-auth-page .nv-auth__side {
    grid-column: 1; grid-row: 1; position: relative; height: auto; min-height: 150px;
    padding: 28px 20px 24px; clip-path: none; gap: 28px;
  }
  body:has(.nv-auth) .nv-auth__side {
    grid-column: 1; grid-row: 1; position: relative; height: auto; min-height: 150px;
    padding: 28px 20px 24px; clip-path: none; gap: 28px;
  }
  body.nv-auth-page .nv-auth__main { grid-column: 1; grid-row: 2; padding: 64px 20px 32px; justify-content: flex-start; }
  body:has(.nv-auth) .nv-auth__main { grid-column: 1; grid-row: 2; padding: 64px 20px 32px; justify-content: flex-start; }
  body.nv-auth-page > #footer { grid-column: 1; grid-row: 3; margin: 0 20px; }
  body:has(.nv-auth) > #footer { grid-column: 1; grid-row: 3; margin: 0 20px; }
  .nv-auth__brand { font-size: 22px; }
  .nv-auth__brand svg { width: 26px; height: 26px; }
  .nv-auth__title { font-size: 28px; margin-bottom: 0; }
  .nv-auth__sub { display: none; }
  .nv-auth__back { top: 22px; left: 20px; }
}

/* ==========================================================================
   Nodvaro - angemeldeter Bereich (Dashboard, Server, Rechnungen, Tickets, Konto):
   schlanke Navigation links, dunkle Oberflaeche im Stil der Website.
   Alle Regeln gelten nur, wenn <body> die Klasse nv-app traegt. Die setzt die
   header.tpl des Themes: angemeldet und nicht im Bestellvorgang.
   ========================================================================== */

/* ---------- Grundton ---------- */
body.nv-app {
  --nv-bg: #101010; --nv-s1: #1c1c1c; --nv-s2: #262626; --nv-line: #363636; --nv-soft: #2a2a2a;
  --nv-txt: #d6d6d6; --nv-mut: #a8a8a8; --nv-dim: #7d7d7d; --nv-acc: #ffd23f; --nv-ink: rgba(16,16,16,.86);
  --nv-ok: #5fd98a; --nv-bad: #ff7a7f; --nv-rail: 248px;
  --nv-font: 'Titillium Web', -apple-system, system-ui, 'Segoe UI', Roboto, Ubuntu, 'Noto Sans', Arial, sans-serif;
  display: flex; flex-direction: column;
  min-height: 100vh;
  background: var(--nv-bg) !important;
  color: var(--nv-txt);
  font-family: var(--nv-font);
  font-size: 15px;
  line-height: 1.5;
}
body.nv-app::before { content: ""; position: fixed; inset: 0 0 auto 0; height: 4px; background: var(--nv-acc); z-index: 1036; }
body.nv-app a { color: var(--nv-acc); }
body.nv-app a:hover { color: #ffe48a; }
body.nv-app h1, body.nv-app h2, body.nv-app h3, body.nv-app h4, body.nv-app h5, body.nv-app h6,
body.nv-app .h1, body.nv-app .h2, body.nv-app .h3, body.nv-app .h4, body.nv-app .h5, body.nv-app .h6 { color: #fff; font-family: var(--nv-font); }
body.nv-app hr { border-color: var(--nv-line); }
body.nv-app .text-muted { color: var(--nv-mut) !important; }
body.nv-app small, body.nv-app .small { color: inherit; }
body.nv-app code { color: #ffe48a; background: var(--nv-s2); padding: 1px 5px; border-radius: 3px; }
body.nv-app pre { color: var(--nv-txt); background: var(--nv-bg); border: 1px solid var(--nv-line); border-radius: 4px; padding: 12px; }
body.nv-app ::selection { background: var(--nv-acc); color: #101010; }
body.nv-app :focus-visible { outline: 2px solid var(--nv-acc); outline-offset: 2px; }
body.nv-app .container { max-width: 1260px; padding-left: 32px; padding-right: 32px; }

/* ---------- Navigation links ---------- */
.nv-bar, .nv-rail, .nv-veil { display: none; }
.nv-brand {
  display: inline-flex; align-items: center; gap: 10px;
  color: #fff !important; font-size: 22px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; text-decoration: none !important; line-height: 1;
}
.nv-brand svg { width: 28px; height: 28px; flex: none; }
body.nv-app .nv-rail {
  display: flex; flex-direction: column;
  position: fixed; top: 0; bottom: 0; left: 0; width: var(--nv-rail); z-index: 1030;
  padding: 4px 0 0; overflow-y: auto;
  background: #141414; border-right: 1px solid var(--nv-soft);
}
body.nv-app .nv-rail .nv-brand { height: 72px; padding: 0 24px; flex: none; }
.nv-nav { list-style: none; margin: 0; padding: 8px 12px; }
.nv-nav li { margin: 2px 0; }
.nv-nav__link {
  position: relative; display: flex; align-items: center; gap: 14px;
  min-height: 44px; padding: 8px 14px;
  color: var(--nv-txt) !important; font-size: 14px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; text-decoration: none !important; line-height: 1.2;
  transition: color .15s;
}
.nv-nav__link::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background: var(--nv-s2); opacity: 0; transition: opacity .15s;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%);
}
.nv-nav__link > * { position: relative; z-index: 1; }
.nv-nav__link svg, .nv-burger svg {
  width: 20px; height: 20px; flex: none; fill: none; stroke: var(--nv-mut); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .15s;
}
.nv-nav__link:hover, .nv-nav__link:focus-visible { color: #fff !important; }
.nv-nav__link:hover::before, .nv-nav__link:focus-visible::before { opacity: .55; }
.nv-nav__link:hover svg { stroke: #fff; }
.nv-nav__link.is-on { color: #fff !important; }
.nv-nav__link.is-on::before { opacity: 1; }
.nv-nav__link.is-on::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--nv-acc); z-index: 1; }
.nv-nav__link.is-on svg { stroke: var(--nv-acc); }
.nv-cta {
  display: block; margin: 14px 24px 0; padding: 11px 14px;
  background: var(--nv-acc); border-radius: 4px;
  color: var(--nv-ink) !important; font-size: 14px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; text-align: center; text-decoration: none !important;
  transition: background-color .15s;
}
.nv-cta:hover, .nv-cta:focus-visible { background: #ffe07a; }
.nv-nav--foot { margin-top: auto; padding-top: 12px; padding-bottom: 16px; border-top: 1px solid var(--nv-soft); }
.nv-nav--foot .nv-nav__link { font-size: 13px; color: var(--nv-mut) !important; min-height: 40px; }
.nv-nav--foot .nv-nav__link:hover, .nv-nav--foot .nv-nav__link.is-on { color: #fff !important; }

@media (min-width: 1200px) {
  body.nv-app:not(.nv-guest) { padding-left: var(--nv-rail); }
}

/* schmale Bildschirme: Leiste oben, Navigation faehrt von links herein */
@media (max-width: 1199.98px) {
  body.nv-app .nv-bar {
    display: flex; align-items: center; justify-content: space-between;
    position: sticky; top: 0; z-index: 1020; height: 60px; padding: 4px 16px 0;
    background: var(--nv-bg); border-bottom: 1px solid var(--nv-soft);
  }
  .nv-burger { display: grid; place-items: center; width: 44px; height: 44px; margin-right: -8px; padding: 0; background: none; border: 0; cursor: pointer; }
  .nv-burger svg { width: 24px; height: 24px; stroke: #fff; }
  body.nv-app .nv-rail { z-index: 1035; width: min(300px, 86vw); transform: translateX(-100%); visibility: hidden; transition: transform .22s ease, visibility 0s .22s; }
  html.nv-open body.nv-app .nv-rail { transform: none; visibility: visible; transition: transform .22s ease; box-shadow: 24px 0 80px rgba(0,0,0,.6); }
  html.nv-open body.nv-app .nv-veil { display: block; position: fixed; inset: 0; z-index: 1034; background: rgba(0,0,0,.62); }
  html.nv-open { overflow: hidden; }
  body.nv-app .container { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  body.nv-app .nv-rail, .nv-nav__link, .nv-nav__link::before { transition: none; }
}

/* ---------- Kopf: nur die schmale Zeile mit Benachrichtigungen und Konto bleibt ---------- */
body.nv-app #header { background: transparent; }
body.nv-app #header > .navbar { display: none; }
body.nv-app #header .topbar { padding: 14px 0 10px; background: transparent; border-bottom: 1px solid var(--nv-soft); color: var(--nv-mut); }
body.nv-app #header .topbar .d-flex { align-items: center; }
body.nv-app #header .topbar .btn { padding: 6px 10px; color: var(--nv-mut); font-family: var(--nv-font); font-size: 14px; border-radius: 4px; }
body.nv-app #header .topbar .btn:hover, body.nv-app #header .topbar .btn:focus { color: #fff; background: var(--nv-s1); }
body.nv-app #header .topbar #accountNotifications { margin-left: -10px; }
body.nv-app #header .topbar #accountNotifications i { margin-right: 6px; color: var(--nv-acc); }
body.nv-app #header .topbar .active-client .input-group-text { color: var(--nv-dim); font-size: 14px; padding: 6px 4px 6px 0; }
body.nv-app #header .topbar .active-client .btn { color: var(--nv-txt); }
body.nv-app #header .topbar .active-client .btn.btn-active-client span { border-bottom: 0; color: #fff; font-weight: 600; }
body.nv-app .btn-return-to-admin { background: var(--nv-s2) !important; color: var(--nv-txt) !important; border: 1px solid var(--nv-line) !important; }
body.nv-app .btn-return-to-admin:hover { background: #303030 !important; color: #fff !important; }
body.nv-app .popover { background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; box-shadow: 0 18px 60px rgba(0,0,0,.6); font-family: var(--nv-font); }
body.nv-app .popover .arrow::before { border-bottom-color: var(--nv-line); border-top-color: var(--nv-line); }
body.nv-app .popover .arrow::after { border-bottom-color: var(--nv-s1); border-top-color: var(--nv-s1); }
body.nv-app .popover-header { background: var(--nv-s1); border-bottom: 1px solid var(--nv-line); color: #fff; }
body.nv-app .popover-body { color: var(--nv-txt); }
body.nv-app .popover-user-notifications { padding: 4px; }
body.nv-app .popover-user-notifications ul li { border-bottom-color: var(--nv-line); }
body.nv-app .popover-user-notifications ul li a { color: var(--nv-txt); border-radius: 4px; }
body.nv-app .popover-user-notifications ul li a:hover { background: var(--nv-s2); color: #fff; }
body.nv-app .popover-user-notifications ul li.none { color: var(--nv-mut); font-weight: 400; }

/* Hinweisbaender (E-Mail bestaetigen, Stoerungen) */
body.nv-app .verification-banner { background: var(--nv-s1); border-bottom: 1px solid var(--nv-soft); color: var(--nv-txt); font-weight: 400; }
body.nv-app .verification-banner .fas, body.nv-app .verification-banner .fal, body.nv-app .verification-banner .far { color: var(--nv-acc); font-size: 22px; padding-top: 6px; }
body.nv-app .verification-banner .btn.close { color: var(--nv-mut); }
body.nv-app .verification-banner .btn.close:hover { color: #fff; }
body.nv-app .verification-banner.email-verification .btn.btn-action,
body.nv-app .verification-banner .btn.btn-action { background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff; }
body.nv-app .verification-banner.email-verification .btn.btn-action:hover,
body.nv-app .verification-banner .btn.btn-action:hover { background: #303030; border-color: #4a4a4a; }
body.nv-app .network-issue-alert { border-radius: 0; border-width: 0 0 1px; }

/* ---------- Seitentitel (aus dem Brotkruemelpfad) ---------- */
body.nv-app .master-breadcrumb { background: transparent; }
body.nv-app .master-breadcrumb .breadcrumb { display: flex; flex-wrap: wrap; align-items: baseline; margin: 0; padding: 30px 0 0; background: transparent; font-size: 12px; }
body.nv-app .breadcrumb-item { color: var(--nv-dim); font-weight: 600; letter-spacing: .8px; text-transform: uppercase; }
body.nv-app .breadcrumb-item a { color: var(--nv-mut); }
body.nv-app .breadcrumb-item a:hover { color: #fff; text-decoration: none; }
body.nv-app .breadcrumb-item + .breadcrumb-item::before { color: var(--nv-line); }
body.nv-app .breadcrumb-item:first-child { display: none; }
body.nv-app .breadcrumb-item:first-child + .breadcrumb-item { padding-left: 0; }
body.nv-app .breadcrumb-item:first-child + .breadcrumb-item::before { display: none; }
body.nv-app .breadcrumb-item.active {
  flex: 0 0 100%; margin-top: 4px; padding-left: 0;
  color: #fff; font-size: 34px; font-weight: 400; letter-spacing: -.01em; line-height: 1.15; text-transform: none;
}
body.nv-app .breadcrumb-item.active::before { display: none; }
body.nv-app.nv-page-clientareahome .master-breadcrumb { display: none; }

/* ---------- Inhalt ---------- */
body.nv-app section#main-body { flex: 1 0 auto; padding: 26px 0 56px; }
body.nv-app .nv-hello { margin: 14px 0 26px; }
body.nv-app .nv-hello__title { margin: 0 0 6px; color: #fff; font-size: clamp(28px, 3vw, 40px); font-weight: 400; letter-spacing: -.01em; line-height: 1.12; }
body.nv-app .nv-hello__sub { margin: 0; color: var(--nv-mut); font-size: 17px; }
body.nv-app .nv-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
body.nv-app .nv-actions .btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; font-size: 14px; }
body.nv-app .nv-actions .btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }

/* Seitenleisten der einzelnen Seiten (Filter, Aktionen): nach rechts, nur das Noetige */
@media (min-width: 992px) {
  body.nv-app #main-body .container > .row > .col-lg-4 { order: 2; }
}
body.nv-app #main-body .sidebar.d-lg-block,
body.nv-app #main-body .sidebar.sidebar-secondary { display: none !important; }
body.nv-app.nv-page-viewticket #main-body .sidebar.d-lg-block { display: block !important; }
body.nv-app.nv-page-viewticket #main-body .sidebar [menuItemName="Support"] { display: none; }
body.nv-app.nv-page-clientareahome #main-body .container > .row > .col-lg-4 { display: none; }
body.nv-app.nv-page-clientareahome #main-body .container > .row > .primary-content { flex: 0 0 100%; max-width: 100%; }
body.nv-app:not(.nv-page-viewticket) #main-body .container > .row > .col-lg-4:not(:has(> .sidebar:first-child > *)) { display: none; }
body.nv-app:not(.nv-page-viewticket) #main-body .container > .row:not(:has(> .col-lg-4 > .sidebar:first-child > *)) > .primary-content { flex: 0 0 100%; max-width: 100%; }

/* ---------- Karten und Listen ---------- */
body.nv-app .card { background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; box-shadow: none; color: var(--nv-txt); }
body.nv-app .card[class*="card-accent-"] { border-top: 1px solid var(--nv-soft); }
body.nv-app .card-header { background: transparent; border-bottom: 1px solid var(--nv-soft); color: #fff; }
body.nv-app .card-footer { background: transparent; border-top: 1px solid var(--nv-soft); color: var(--nv-mut); }
body.nv-app .card-footer:empty { display: none; }
body.nv-app .card-title { color: #fff; font-family: var(--nv-font); font-weight: 600; letter-spacing: 0; }
body.nv-app .card-header .card-title > i { color: var(--nv-mut); margin-right: 4px; }
body.nv-app .bg-light, body.nv-app .bg-white { background: var(--nv-s1) !important; }
body.nv-app .border, body.nv-app .border-top, body.nv-app .border-bottom, body.nv-app .border-left, body.nv-app .border-right { border-color: var(--nv-line) !important; }
body.nv-app .list-group-item { background: transparent; border-color: var(--nv-soft); color: var(--nv-txt); }
body.nv-app a.list-group-item, body.nv-app .list-group-item-action { color: var(--nv-txt); }
body.nv-app .list-group-item-action:hover, body.nv-app .list-group-item-action:focus { background: var(--nv-s2); color: #fff; }
body.nv-app .list-group-item.active { background: var(--nv-s2); border-color: var(--nv-soft); color: #fff; box-shadow: inset 3px 0 0 var(--nv-acc); }
body.nv-app .list-group-item.disabled { color: var(--nv-dim); background: transparent; }
body.nv-app .badge { background: var(--nv-s2); color: var(--nv-txt); font-weight: 600; border-radius: 3px; }
body.nv-app .sidebar .list-group-item .badge { width: auto; min-width: 28px; padding: 4px 6px; background: var(--nv-s2); color: var(--nv-txt); }
body.nv-app .list-group-item.active .badge, body.nv-app .sidebar .list-group-item.active .badge { background: var(--nv-acc); color: var(--nv-ink); }
body.nv-app .sidebar .list-group-item.active, body.nv-app .sidebar .list-group-item.active:hover, body.nv-app .sidebar .list-group-item.active:focus { background: var(--nv-s2); border-color: var(--nv-soft); }
body.nv-app .sidebar .list-group-item > i.far.fa-circle { color: var(--nv-mut); }
body.nv-app .sidebar .card-sidebar { margin-bottom: 16px !important; }
body.nv-app .sidebar .card-sidebar .card-header { padding: 14px 16px; }
body.nv-app .sidebar .card-sidebar .card-title { font-size: 13px; letter-spacing: .8px; text-transform: uppercase; color: var(--nv-mut); }
body.nv-app .sidebar .card-sidebar .card-title i:not(.card-minimise) { display: none; }
body.nv-app .sidebar .card-sidebar .card-minimise { color: var(--nv-dim); }
body.nv-app .sidebar .card-sidebar .list-group-item { padding: 11px 16px; }
body.nv-app .sidebar .card-sidebar .card-body { color: var(--nv-txt); }
body.nv-app .sidebar .sidebar-menu-item-icon-wrapper { margin-right: 10px; color: var(--nv-mut); }
body.nv-app .sidebar .list-group-item.active .sidebar-menu-item-icon-wrapper { color: var(--nv-acc); }
body.nv-app .sidebar .list-group-item .title { color: #fff; font-weight: 600; }

/* ---------- Dashboard ---------- */
body.nv-app .tiles { margin-bottom: 20px !important; }
body.nv-app .tiles .row { margin: 0 -8px; }
body.nv-app .tiles .row > div { flex: 1 1 0; max-width: none; min-width: 180px; padding: 0 8px 16px; }
body.nv-app .tiles .row > div:has(> a[href*="action=domains"]),
body.nv-app .tiles .row > div:has(> a[href*="action=quotes"]),
body.nv-app .tiles .row > div:has(> a[href*="affiliates.php"]) { display: none; }
body.nv-app .tiles .tile {
  height: 100%; padding: 20px 22px 18px; overflow: hidden;
  background: var(--nv-s1); border: 1px solid var(--nv-soft) !important; border-radius: 6px;
  color: #fff; transition: border-color .15s, background-color .15s;
}
body.nv-app .tiles .tile:hover, body.nv-app .tiles .tile:focus-visible { background: var(--nv-s2); border-color: var(--nv-acc) !important; }
body.nv-app .tiles .tile i { top: 18px; right: 20px; font-size: 26px; color: var(--nv-dim); transition: color .15s; }
body.nv-app .tiles .tile:hover i { font-size: 26px; color: var(--nv-acc); }
body.nv-app .tiles .tile .stat { margin-top: 0; color: #fff; font-size: 44px; font-weight: 300; line-height: 1; }
body.nv-app .tiles .tile .title { margin-top: 10px; color: var(--nv-mut); font-size: 13px; font-weight: 600; letter-spacing: .8px; }
body.nv-app .tiles .tile .highlight { display: none; }

body.nv-app .client-home-cards > .row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: 16px; margin: 0; }
body.nv-app .client-home-cards > .row > div { display: contents; }
body.nv-app .client-home-cards > .row > .col-12 > .card { grid-column: 1 / -1; }
body.nv-app .client-home-cards .card { margin: 0; font-size: 15px; }
body.nv-app .client-home-cards .card-header { padding: 16px 18px; background: transparent; border-bottom: 1px solid var(--nv-soft); font-weight: 400; }
body.nv-app .client-home-cards .card-title { font-size: 17px; font-weight: 600; line-height: 1.6; }
body.nv-app .client-home-cards .card-header .btn {
  padding: 4px 10px; background: transparent !important; border: 1px solid var(--nv-line); border-radius: 4px;
  color: var(--nv-txt); font-family: var(--nv-font); font-size: 13px; font-weight: 600;
}
body.nv-app .client-home-cards .card-header .btn:hover { border-color: var(--nv-acc); color: var(--nv-acc); }
body.nv-app .client-home-cards .card-body p { padding: 16px 18px; margin: 0; }
body.nv-app .client-home-cards .card-body form { padding: 16px 18px; }
body.nv-app .client-home-cards .list-group { max-height: 260px; border-top: 0 !important; border-bottom: 0 !important; }
body.nv-app .client-home-cards .list-group .list-group-item { padding: 12px 18px; border-bottom: 1px solid var(--nv-soft) !important; }
body.nv-app .client-home-cards .list-group .list-group-item:last-child { border-bottom: 0 !important; }
body.nv-app .client-home-cards .card-footer { padding: 0 18px; border: 0; }
body.nv-app .client-home-cards .card-footer:has(*) { padding: 4px 18px 16px; }
body.nv-app .client-home-cards small { color: var(--nv-mut); }
body.nv-app .client-home-cards .card-header .badge { background: var(--nv-bad); color: #101010; }
body.nv-app .div-service-name .font-weight-bold { color: #fff; font-weight: 600 !important; }
body.nv-app .div-service-name .text-domain { color: var(--nv-mut); font-size: 14px; }
body.nv-app .div-service-status { width: auto !important; min-width: 108px; text-align: left; }
body.nv-app .div-service-status .label:not(.label-placeholder) { width: auto !important; overflow: visible; }
body.nv-app .div-service-name { margin-left: 6px; }
body.nv-app .div-service-buttons .btn { font-size: 13px; }

/* ---------- Statusmarken ---------- */
body.nv-app .label {
  display: inline-block; margin: 0; padding: 4px 9px; border: 1px solid transparent; border-radius: 3px;
  font-size: 11px; font-weight: 700; letter-spacing: .6px; line-height: 1.2; text-transform: uppercase;
}
body.nv-app .label-default, body.nv-app .status-terminated, body.nv-app .status-closed, body.nv-app .status-cancelled, body.nv-app .status-expired,
body.nv-app .status-transferred-away, body.nv-app .status-fraud, body.nv-app .status-lost, body.nv-app .status-dead, body.nv-app .status-collections {
  background: rgba(255,255,255,.06); border-color: var(--nv-line); color: var(--nv-mut);
}
body.nv-app .label-success, body.nv-app .status-active, body.nv-app .status-open, body.nv-app .status-completed, body.nv-app .status-paid, body.nv-app .status-accepted {
  background: rgba(95,217,138,.12); border-color: rgba(95,217,138,.42); color: var(--nv-ok);
}
body.nv-app .label-danger, body.nv-app .status-unpaid, body.nv-app .status-inprogress {
  background: rgba(255,122,127,.12); border-color: rgba(255,122,127,.45); color: var(--nv-bad);
}
body.nv-app .label-warning, body.nv-app .label-info, body.nv-app .status-pending, body.nv-app .status-pending-transfer, body.nv-app .status-suspended, body.nv-app .status-answered,
body.nv-app .status-customer-reply, body.nv-app .status-pending-registration, body.nv-app .status-redemption, body.nv-app .status-grace, body.nv-app .status-onhold,
body.nv-app .status-refunded, body.nv-app .status-payment-pending, body.nv-app .status-delivered {
  background: rgba(255,210,63,.10); border-color: rgba(255,210,63,.42); color: var(--nv-acc);
}
body.nv-app .label[style*="background-color"] { color: #fff; border-color: transparent; }

/* ---------- Tabellen ---------- */
body.nv-app .table { color: var(--nv-txt); }
body.nv-app .table th, body.nv-app .table td { border-color: var(--nv-soft); }
body.nv-app .table thead th { border-bottom: 1px solid var(--nv-line); color: var(--nv-mut); }
body.nv-app .table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,.025); }
body.nv-app .table-hover tbody tr:hover { background: var(--nv-s2); color: #fff; }
body.nv-app .table-container { overflow-x: auto; }
/* SSL-Spalte der Serverliste: fuer Gameserver ohne Bedeutung */
body.nv-app #tableServicesList > thead > tr > th:first-child,
body.nv-app #tableServicesList > tbody > tr > td:first-child:not(.dataTables_empty) { display: none; }
body.nv-app .dataTables_wrapper table.table-list { margin: 14px 0 !important; border: 1px solid var(--nv-soft); border-radius: 6px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
body.nv-app table.table-list thead th,
body.nv-app .dataTables_wrapper table.table-list thead th {
  padding: 12px 14px; background: var(--nv-s1); border-top: 0; border-bottom: 1px solid var(--nv-line);
  color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase;
}
body.nv-app .dataTables_wrapper table.table-list thead th.sorting_asc,
body.nv-app .dataTables_wrapper table.table-list thead th.sorting_desc { background: var(--nv-s1); color: #fff; }
body.nv-app .dataTables_wrapper table.table-list thead th { width: auto !important; text-align: left; white-space: nowrap; padding-right: 30px; }
body.nv-app table.table-list tbody td { padding: 14px; font-size: 15px; border-top: 1px solid var(--nv-soft); }
body.nv-app table.table-list tbody td.text-center { text-align: left !important; }
body.nv-app table.table-list tbody td small { display: block; color: var(--nv-mut); }
body.nv-app .table-list > tbody > tr > td { background: #171717; color: var(--nv-txt); }
body.nv-app .table-list > tbody > tr:first-child > td { border-top: 0; }
body.nv-app .table-list > tbody > tr:hover > td { background: var(--nv-s2); }
body.nv-app .table-list > tbody > tr > td strong { color: #fff; font-weight: 600; }
body.nv-app .table-list > tbody > tr > td a.border-left { border-left: 0 !important; padding-left: 0; color: #fff; }
body.nv-app .table-list .ticket-number { color: var(--nv-mut); margin-right: 6px; }
body.nv-app .table-list .ticket-subject.unread { font-weight: 700; }
body.nv-app .dataTables_wrapper .dataTables_info { color: var(--nv-mut); font-size: 14px; background: transparent; border: 0; }
body.nv-app .dataTables_wrapper .dataTables_filter label .form-control {
  min-width: 220px; height: 40px; padding: 8px 12px 8px 38px !important; font-size: 15px;
  background: var(--nv-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") no-repeat 11px center / 18px 18px !important;
}
body.nv-app .dataTables_wrapper .dataTables_length { color: var(--nv-mut); font-size: 14px; }
body.nv-app .dataTables_wrapper .dataTables_length label { color: var(--nv-mut); font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; }
body.nv-app .dataTables_wrapper .dataTables_length select { display: inline-block; width: auto; height: 36px; padding: 0 30px 0 10px; margin: 0 6px; }
body.nv-app .page-link { background: var(--nv-s1); border-color: var(--nv-line); color: var(--nv-txt); }
body.nv-app .page-link:hover { background: var(--nv-s2); border-color: var(--nv-line); color: #fff; }
body.nv-app .page-item.active .page-link { background: var(--nv-acc); border-color: var(--nv-acc); color: var(--nv-ink); font-weight: 600; }
body.nv-app .page-item.disabled .page-link { background: transparent; border-color: var(--nv-soft); color: var(--nv-dim); }

/* ---------- Formulare ---------- */
body.nv-app label, body.nv-app .col-form-label { color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; }
body.nv-app .form-check-label, body.nv-app label.form-check, body.nv-app label.form-check-inline, body.nv-app .form-check label, body.nv-app .custom-control-label, body.nv-app label.checkbox-inline, body.nv-app label.radio-inline,
body.nv-app .checkbox label, body.nv-app .radio label, body.nv-app label:has(input[type="checkbox"]), body.nv-app label:has(input[type="radio"]) {
  color: var(--nv-txt); font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none;
}
body.nv-app .form-control, body.nv-app .custom-select {
  height: 44px; background-color: var(--nv-bg); border: 1px solid var(--nv-line); border-radius: 4px; box-shadow: none;
  color: #fff; font-family: var(--nv-font); font-size: 16px; transition: border-color .15s;
}
body.nv-app textarea.form-control { height: auto; min-height: 120px; }
body.nv-app .form-control-sm { height: 36px; font-size: 14px; }
body.nv-app .form-control:focus, body.nv-app .custom-select:focus { background-color: var(--nv-bg); border-color: var(--nv-acc); box-shadow: none; color: #fff; outline: 0; }
body.nv-app .form-control:disabled, body.nv-app .form-control[readonly], body.nv-app .form-control.disabled { background-color: var(--nv-s2); color: var(--nv-mut); opacity: 1; }
body.nv-app .form-control::placeholder { color: var(--nv-dim); opacity: 1; }
body.nv-app select.form-control, body.nv-app .custom-select {
  -webkit-appearance: none; appearance: none; padding-right: 36px; color-scheme: dark;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8a8a8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 10px 6px;
}
body.nv-app select.form-control[multiple], body.nv-app select.form-control[size] { height: auto; background-image: none; padding-right: 12px; }
body.nv-app input:-webkit-autofill, body.nv-app input:-webkit-autofill:focus { -webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 1000px var(--nv-bg) inset; box-shadow: 0 0 0 1000px var(--nv-bg) inset; caret-color: #fff; }
body.nv-app .input-group-text { background: var(--nv-s2); border: 1px solid var(--nv-line); color: var(--nv-mut); }
body.nv-app .form-text, body.nv-app .help-block, body.nv-app .field-help-text { color: var(--nv-mut); }
body.nv-app input[type="checkbox"], body.nv-app input[type="radio"] { accent-color: var(--nv-acc); }
body.nv-app .custom-file { height: 44px; }
body.nv-app .custom-file-label { background: var(--nv-bg); border-color: var(--nv-line); color: var(--nv-mut); height: 44px; line-height: 30px; font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; }
body.nv-app .custom-file-label::after { background: var(--nv-s2); border-left-color: var(--nv-line); color: #fff; height: 42px; line-height: 30px; }
body.nv-app .custom-file-input { height: 44px; }
body.nv-app .bootstrap-switch { border-color: var(--nv-line); border-radius: 4px; }
body.nv-app .bootstrap-switch .bootstrap-switch-handle-on, body.nv-app .bootstrap-switch .bootstrap-switch-handle-off { background: var(--nv-s2); color: var(--nv-txt); }
body.nv-app .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success,
body.nv-app .bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary { background: var(--nv-acc); color: var(--nv-ink); font-weight: 600; }
body.nv-app .bootstrap-switch .bootstrap-switch-label { background: #3a3a3a; }
body.nv-app .intl-tel-input { width: 100%; }
body.nv-app .intl-tel-input .selected-flag, body.nv-app .intl-tel-input.separate-dial-code .selected-flag { background: transparent; }
body.nv-app .intl-tel-input .selected-dial-code { color: var(--nv-txt); }
body.nv-app .intl-tel-input .iti-arrow { border-top-color: var(--nv-mut); }
body.nv-app .intl-tel-input .country-list { background: var(--nv-s1); border: 1px solid var(--nv-line); color: var(--nv-txt); box-shadow: 0 14px 40px rgba(0,0,0,.55); }
body.nv-app .intl-tel-input .country-list .country.highlight { background: var(--nv-s2); }
body.nv-app .intl-tel-input .country-list .dial-code { color: var(--nv-mut); }
body.nv-app .intl-tel-input .country-list .divider { border-bottom-color: var(--nv-line); }
body.nv-app .progress { background: var(--nv-s2); border-radius: 4px; }
body.nv-app .md-editor, body.nv-app div.md-editor.active { border: 1px solid var(--nv-line); border-radius: 4px; overflow: hidden; }
body.nv-app .md-editor > .btn-toolbar, body.nv-app .md-editor .md-header { background: var(--nv-s2) !important; border: 0; padding: 6px; }
body.nv-app .md-editor > textarea.markdown-editor, body.nv-app .md-editor > .md-preview {
  background: var(--nv-bg) !important; border-top: 1px solid var(--nv-line) !important; border-bottom: 1px solid var(--nv-line) !important; border-radius: 0; color: #fff;
}
body.nv-app .md-editor .md-footer { background: var(--nv-s2); color: var(--nv-mut); padding: 4px 10px; font-size: 13px; }
body.nv-app .md-editor .btn-toolbar .btn { padding: 4px 9px; font-size: 13px; text-transform: none; letter-spacing: 0; }

/* ---------- Schaltflaechen ---------- */
body.nv-app .btn { font-family: var(--nv-font); border-radius: 4px; box-shadow: none !important; }
body.nv-app .btn-primary, body.nv-app .btn-success {
  background: var(--nv-acc); border: 1px solid var(--nv-acc); color: var(--nv-ink);
  font-weight: 600; letter-spacing: .5px; text-transform: uppercase;
}
body.nv-app .btn-primary:hover, body.nv-app .btn-primary:focus, body.nv-app .btn-primary:not(:disabled):not(.disabled):active,
body.nv-app .btn-success:hover, body.nv-app .btn-success:focus, body.nv-app .btn-success:not(:disabled):not(.disabled):active { background: #ffe07a; border-color: #ffe07a; color: var(--nv-ink); }
body.nv-app .btn-primary.disabled, body.nv-app .btn-primary:disabled, body.nv-app .btn-success.disabled, body.nv-app .btn-success:disabled { background: #6f6336; border-color: #6f6336; color: rgba(16,16,16,.7); }
body.nv-app .btn-default, body.nv-app .btn-secondary, body.nv-app .btn-light, body.nv-app .btn-info, body.nv-app .btn-warning, body.nv-app .btn-outline-secondary, body.nv-app .btn-outline-primary, body.nv-app .btn-outline-light {
  background: var(--nv-s2); border: 1px solid var(--nv-line); color: #fff;
}
body.nv-app .btn-default:hover, body.nv-app .btn-default:focus, body.nv-app .btn-secondary:hover, body.nv-app .btn-light:hover, body.nv-app .btn-info:hover, body.nv-app .btn-warning:hover,
body.nv-app .btn-outline-secondary:hover, body.nv-app .btn-outline-primary:hover, body.nv-app .btn-outline-light:hover,
body.nv-app .btn-default:not(:disabled):not(.disabled):active, body.nv-app .show > .btn-default.dropdown-toggle { background: #303030; border-color: #4a4a4a; color: #fff; }
body.nv-app .btn-danger, body.nv-app .btn-outline-danger { background: transparent; border: 1px solid rgba(255,122,127,.5); color: var(--nv-bad); font-weight: 600; letter-spacing: .5px; text-transform: uppercase; }
body.nv-app .btn-danger:hover, body.nv-app .btn-danger:focus, body.nv-app .btn-outline-danger:hover, body.nv-app .btn-danger:not(:disabled):not(.disabled):active { background: rgba(255,122,127,.14); border-color: var(--nv-bad); color: #ffb3b6; }
body.nv-app .btn-link { color: var(--nv-acc); }
body.nv-app .btn-link:hover { color: #ffe48a; }
body.nv-app .btn.disabled, body.nv-app .btn:disabled { opacity: .55; }
body.nv-app .btn-lg { font-size: 16px; padding: 12px 26px; }
body.nv-app .close { color: var(--nv-mut); text-shadow: none; opacity: 1; }
body.nv-app .close:hover { color: #fff; }
body.nv-app .dropdown-menu { background: var(--nv-s1); border: 1px solid var(--nv-line); border-radius: 6px; box-shadow: 0 18px 60px rgba(0,0,0,.6); color: var(--nv-txt); }
body.nv-app .dropdown-item { color: var(--nv-txt); }
body.nv-app .dropdown-item:hover, body.nv-app .dropdown-item:focus { background: var(--nv-s2); color: #fff; }
body.nv-app .dropdown-item.disabled { color: var(--nv-dim); }
body.nv-app .dropdown-divider { border-top-color: var(--nv-line); }
body.nv-app .nav-tabs { border-bottom: 1px solid var(--nv-line); }
body.nv-app .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--nv-mut); font-weight: 600; }
body.nv-app .nav-tabs .nav-link:hover { color: #fff; }
body.nv-app .nav-tabs .nav-link.active { background: transparent; border-bottom-color: var(--nv-acc); color: #fff; }
body.nv-app .nav-pills .nav-link { color: var(--nv-txt); border-radius: 4px; }
body.nv-app .nav-pills .nav-link.active { background: var(--nv-s2); color: #fff; }

/* ---------- Hinweise ---------- */
body.nv-app .alert { border-radius: 4px; border: 1px solid var(--nv-line); background: var(--nv-s2); color: var(--nv-txt); }
body.nv-app .alert-danger { background: rgba(229,72,77,.12); border-color: rgba(229,72,77,.45); color: #ffb3b6; }
body.nv-app .alert-success { background: rgba(74,222,128,.10); border-color: rgba(74,222,128,.40); color: #a7f0c1; }
body.nv-app .alert-warning { background: rgba(255,210,63,.10); border-color: rgba(255,210,63,.40); color: #ffe48a; }
body.nv-app .alert-info { background: rgba(255,255,255,.05); border-color: var(--nv-line); color: var(--nv-txt); }
body.nv-app .alert a, body.nv-app .alert .alert-link { color: inherit; text-decoration: underline; }
body.nv-app .alert .btn { text-decoration: none; }

/* ---------- Produktdetails ---------- */
body.nv-app .product-status { background: var(--nv-s2); border: 1px solid var(--nv-soft); border-radius: 6px; overflow: hidden; }
body.nv-app div.product-details div.product-icon { background: transparent; border-radius: 0; padding: 26px 20px 20px; color: var(--nv-dim); font-size: 34px; }
body.nv-app div.product-details div.product-icon .fa-stack-2x { color: rgba(255,255,255,.07); }
body.nv-app div.product-details div.product-icon .fa-inverse { color: var(--nv-mut); }
body.nv-app div.product-details div.product-icon h3 { font-size: 22px; font-weight: 600; margin-top: 12px; }
body.nv-app div.product-details div.product-icon h4 { font-size: 15px; font-weight: 400; color: var(--nv-mut); }
body.nv-app .product-status-text { padding: 8px; background: rgba(255,255,255,.05); color: var(--nv-mut); font-size: 12px; font-weight: 700; letter-spacing: .8px; }
body.nv-app .product-status-active .product-status-text { background: rgba(95,217,138,.12); color: var(--nv-ok); }
body.nv-app .product-status-active .product-icon .fa-stack-2x { color: rgba(95,217,138,.14); }
body.nv-app .product-status-active .product-icon .fa-inverse { color: var(--nv-ok); }
body.nv-app .product-status-pending .product-status-text, body.nv-app .product-status-suspended .product-status-text { background: rgba(255,210,63,.10); color: var(--nv-acc); }
body.nv-app .product-status-pending .product-icon .fa-stack-2x, body.nv-app .product-status-suspended .product-icon .fa-stack-2x { color: rgba(255,210,63,.12); }
body.nv-app .product-status-pending .product-icon .fa-inverse, body.nv-app .product-status-suspended .product-icon .fa-inverse { color: var(--nv-acc); }
body.nv-app div.product-details-tab-container { background: var(--nv-s1); border-color: var(--nv-soft); }
body.nv-app .product-details .col-md-6.text-center { text-align: left !important; color: #fff; font-size: 16px; }
body.nv-app .product-details .col-md-6.text-center h4 { margin: 16px 0 2px; color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; }
body.nv-app .product-details .col-md-6.text-center h4:first-child { margin-top: 4px; }
body.nv-app .product-actions-wrapper .btn { margin-bottom: 8px; padding-top: 9px; padding-bottom: 9px; font-size: 14px; }

/* ---------- Ticket ---------- */
body.nv-app .view-ticket .card-body { border-bottom: 1px solid var(--nv-soft); }
body.nv-app .view-ticket .posted-by { background: var(--nv-s2); color: var(--nv-mut); }
body.nv-app .view-ticket .posted-by .posted-by-name { color: #fff; }
body.nv-app .view-ticket .ticket-reply.staff .posted-by { box-shadow: inset 3px 0 0 var(--nv-acc); }
body.nv-app .view-ticket .attachments { border-top: 1px dashed var(--nv-line); }
body.nv-app .view-ticket .attachment-list li span { border-color: var(--nv-line); color: var(--nv-txt); }
body.nv-app .view-ticket .attachment-list li figure { background: var(--nv-s2); color: var(--nv-dim); }
body.nv-app .requestor-badge { background: rgba(255,255,255,.06); border-color: var(--nv-line); color: var(--nv-mut); }
body.nv-app .requestor-type-operator { background: rgba(255,210,63,.10); border-color: rgba(255,210,63,.42); color: var(--nv-acc); }

/* ---------- Fusszeile ---------- */
body.nv-app footer.footer { padding: 22px 0 28px; background: transparent; border-top: 1px solid var(--nv-soft); color: var(--nv-mut); font-family: var(--nv-font); font-size: 13px; }
body.nv-app footer.footer ul { margin-bottom: 8px !important; }
body.nv-app footer.footer .nav-link { color: var(--nv-mut); padding: 4px 16px 4px 0; }
body.nv-app footer.footer .nav-link:hover { color: #fff; }
body.nv-app footer.footer .btn { background: transparent; border: 1px solid var(--nv-line); color: var(--nv-txt); }
body.nv-app footer.footer .btn:hover { background: var(--nv-s2); color: #fff; }
body.nv-app footer.footer .copyright { margin: 6px 0 0; color: var(--nv-dim); text-align: left; }
@media (max-width: 991.98px) {
  body.nv-app footer.footer .copyright { text-align: center; }
}

body.nv-app .responsive-tabs-sm .nav-item a:hover { background: transparent; }

@media (max-width: 575.98px) {
  body.nv-app .col-form-label { text-align: left !important; }
}

/* ---------- schmale Bildschirme ---------- */
@media (max-width: 767.98px) {
  /* Listen: nur die wichtigsten Spalten, damit nichts seitlich herausragt */
  body.nv-app #tableServicesList > thead > tr > th:nth-child(4), body.nv-app #tableServicesList > tbody > tr > td:nth-child(4),
  body.nv-app #tableInvoicesList > thead > tr > th:nth-child(2), body.nv-app #tableInvoicesList > tbody > tr > td:nth-child(2),
  body.nv-app #tableTicketsList > thead > tr > th:nth-child(4), body.nv-app #tableTicketsList > tbody > tr > td:nth-child(4),
  body.nv-app #tableTicketsList > thead > tr > th:first-child, body.nv-app #tableTicketsList > tbody > tr > td:first-child:not(.dataTables_empty) { display: none; }
  body.nv-app .dataTables_wrapper table.table-list thead th { padding: 10px; font-size: 10.5px; letter-spacing: .2px; white-space: normal; }
  body.nv-app .dataTables_wrapper table.table-list thead th::before, body.nv-app .dataTables_wrapper table.table-list thead th::after { display: none; }
  body.nv-app table.table-list tbody td { padding: 12px 10px; }
  body.nv-app table.table-list tbody td[data-order] { white-space: nowrap; }
  body.nv-app .dataTables_wrapper .dataTables_filter { float: none; width: 100%; margin: 0; }
  body.nv-app .dataTables_wrapper .dataTables_filter label { display: block; margin: 0 0 6px; padding: 0; }
  body.nv-app .dataTables_wrapper .dataTables_filter label .form-control { width: 100%; margin: 0; }
  body.nv-app .dataTables_wrapper .dataTables_info { padding: 6px 0 0; }
  body.nv-app .dataTables_wrapper .dataTables_paginate { margin-top: 10px; }
  body.nv-app .responsive-tabs-sm { width: 100%; background: var(--nv-s1); border-color: var(--nv-soft); border-radius: 6px 6px 0 0; }
  body.nv-app .responsive-tabs-sm .nav-item { margin-left: 0; border-bottom: 1px solid var(--nv-soft) !important; }
  body.nv-app .responsive-tabs-sm .nav-item a.active { background: var(--nv-s2) !important; color: #fff; }
  body.nv-app .responsive-tabs-sm-connector { display: none; }
  body.nv-app .client-home-cards .card-header .float-right { margin-left: 10px; }
  body.nv-app .breadcrumb-item.active { font-size: 26px; }
  body.nv-app .master-breadcrumb .breadcrumb { padding-top: 20px; }
  body.nv-app section#main-body { padding-top: 18px; }
  body.nv-app .tiles .row > div { min-width: 140px; }
  body.nv-app .tiles .tile .stat { font-size: 36px; }
  body.nv-app #header .topbar { padding: 8px 0; }
}

/* ==========================================================================
   Nodvaro - Seiten fuer nicht angemeldete Besucher: schmale Kopfzeile statt der
   Navigation links. <body> traegt dann zusaetzlich die Klasse nv-guest.
   ========================================================================== */
.nv-top { display: none; }
body.nv-app .nv-top {
  display: block; position: sticky; top: 0; z-index: 1020; padding-top: 4px;
  background: rgba(16,16,16,.94); border-bottom: 1px solid var(--nv-soft);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.nv-top__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 1260px; height: 60px; margin: 0 auto; padding: 0 32px; }
.nv-top__site { display: flex; flex-wrap: wrap; align-items: center; gap: 0 26px; flex: 0 1 auto; min-width: 0; height: 60px; overflow: hidden; margin: 0 auto 0 12px; }
.nv-top__site a { line-height: 60px; white-space: nowrap; }
.nv-top__site a {
  position: relative; padding: 18px 0;
  color: var(--nv-txt) !important; font-size: 14px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase; text-decoration: none !important; line-height: 1.4; white-space: nowrap;
  transition: color .2s;
}
.nv-top__site a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 12px; height: 2px; background: var(--nv-acc); transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nv-top__site a:hover, .nv-top__site a:focus-visible { color: #fff !important; }
.nv-top__site a:hover::after, .nv-top__site a:focus-visible::after { transform: scaleX(1); }
.nv-top__nav { display: flex; align-items: center; gap: 4px; flex: none; margin-right: -12px; }
.nv-top__nav a { white-space: nowrap; }
.nv-top__new {
  display: inline-flex; align-items: center; margin-right: 10px; padding: 6px 12px; border-radius: 4px;
  background: var(--nv-acc); color: #101010 !important; font-size: 13px; font-weight: 700; letter-spacing: .4px; line-height: 20px; text-transform: uppercase; text-decoration: none !important; white-space: nowrap;
  transition: background-color .15s;
}
.nv-top__new:hover, .nv-top__new:focus-visible { background: #ffe07a; }
.nv-top__link {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px;
  color: var(--nv-txt) !important; font-size: 13px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; text-decoration: none !important; line-height: 1;
  transition: color .15s;
}
.nv-top__link svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nv-top__link:hover, .nv-top__link:focus-visible { color: #fff !important; }
.nv-top__link--login { color: var(--nv-acc) !important; }
.nv-top__link--login:hover, .nv-top__link--login:focus-visible { color: #ffe48a !important; }
.nv-count {
  display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
  background: var(--nv-acc); color: #101010; font-size: 12px; font-weight: 700; letter-spacing: 0; line-height: 1;
}
.nv-nav__link .nv-count { margin-left: auto; }
@media (max-width: 1199.98px) {
  .nv-top__in { padding: 0 16px; }
}
@media (max-width: 1099.98px) {
  .nv-top__site { display: none; }
}
@media (max-width: 760px) {
  .nv-top__new { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nv-top__site a, .nv-top__site a::after { transition: none; }
}
@media (max-width: 480px) {
  .nv-top__link span { display: none; }
  .nv-top__link { padding: 8px 10px; }
}

/* ==========================================================================
   Nodvaro - Bestellvorgang (Bestellformular standard_cart): Shop, Konfiguration,
   Warenkorb, Kasse, Abschluss. <body> traegt hier zusaetzlich die Klasse nv-shop.
   ========================================================================== */
body.nv-app.nv-shop .master-breadcrumb { display: none; }
body.nv-app.nv-shop section#main-body { padding-top: 34px; }
body.nv-app #order-standard_cart { color: var(--nv-txt); font-size: 15px; }

/* Die Seitenleiste des Bestellformulars (Kategorien, Domain-Aktionen) entfaellt: der Shop ist die Website. */
body.nv-app #order-standard_cart .cart-sidebar,
body.nv-app #order-standard_cart .sidebar-collapsed { display: none !important; }
body.nv-app #order-standard_cart .cart-body { float: none; width: 100%; }

/* Ueberschriften */
body.nv-app #order-standard_cart .header-lined { margin: 0 0 24px; padding: 0; border: 0; }
body.nv-app #order-standard_cart .header-lined h1 { margin: 0; padding: 0; border: 0; color: #fff; font-size: 34px; font-weight: 400; letter-spacing: -.01em; line-height: 1.15; }
body.nv-app #order-standard_cart .header-lined p { margin: 8px 0 0; color: var(--nv-mut); font-size: 17px; }
body.nv-app #order-standard_cart .sub-heading,
body.nv-app #order-standard_cart .sub-heading-borderless {
  height: auto; margin: 36px 0 18px; padding: 0 0 10px; border-top: 0; border-bottom: 1px solid var(--nv-soft); text-align: left;
}
body.nv-app #order-standard_cart .sub-heading span,
body.nv-app #order-standard_cart .sub-heading-borderless span { position: static; top: auto; padding: 0; background: transparent !important; color: #fff; font-size: 18px; font-weight: 600; }
body.nv-app #order-standard_cart .sub-heading small { color: var(--nv-mut); font-size: 13px; font-weight: 400; font-style: normal; }
body.nv-app #order-standard_cart .sub-heading i { font-style: normal; }

/* Felder */
body.nv-app #order-standard_cart .field,
body.nv-app #order-standard_cart .form-control {
  height: 46px; background-color: var(--nv-bg); border: 1px solid var(--nv-line); border-radius: 4px; box-shadow: none;
  color: #fff; font-family: var(--nv-font); font-size: 16px; transition: border-color .15s;
}
body.nv-app #order-standard_cart textarea.field,
body.nv-app #order-standard_cart textarea.form-control { height: auto; min-height: 110px; padding-top: 10px; }
body.nv-app #order-standard_cart .field:focus,
body.nv-app #order-standard_cart .form-control:focus { border-color: var(--nv-acc); outline: 0; }
body.nv-app #order-standard_cart .field[disabled], body.nv-app #order-standard_cart .field[readonly],
body.nv-app #order-standard_cart .form-control[disabled], body.nv-app #order-standard_cart .form-control[readonly] { background-color: var(--nv-s2); color: var(--nv-mut); }
body.nv-app #order-standard_cart .field::placeholder { color: var(--nv-dim); opacity: 1; }
body.nv-app #order-standard_cart select.field,
body.nv-app #order-standard_cart select.form-control {
  -webkit-appearance: none; appearance: none; padding-top: 0; padding-bottom: 0; padding-right: 36px; line-height: 44px; color-scheme: dark;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8a8a8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 10px 6px;
}
body.nv-app #order-standard_cart .select-inline { width: auto; min-width: 280px; max-width: 100%; }
body.nv-app #order-standard_cart .prepend-icon .field-icon { width: 44px; height: 46px; line-height: 46px; }
body.nv-app #order-standard_cart .prepend-icon .field { padding-left: 42px; }
body.nv-app #order-standard_cart .field-icon i { color: var(--nv-mut); }
body.nv-app #order-standard_cart .field-help-text { color: var(--nv-mut); font-size: 13px; }
body.nv-app #order-standard_cart .field-error-msg { color: var(--nv-bad); }
body.nv-app #order-standard_cart .field-container { margin-bottom: 8px; }
body.nv-app #order-standard_cart .form-control-static { color: var(--nv-txt); }
body.nv-app #order-standard_cart input[type="number"].form-control { display: inline-block; width: 110px; }
body.nv-app #order-standard_cart .form-control-static-inline { margin-left: 8px; line-height: 46px; vertical-align: top; }

body.nv-app #order-standard_cart label { margin-right: 0; color: var(--nv-mut); font-size: 12px; font-weight: 600; }
body.nv-app #order-standard_cart label:has(input[type="radio"]), body.nv-app #order-standard_cart label:has(input[type="checkbox"]),
body.nv-app #order-standard_cart label.radio-inline, body.nv-app #order-standard_cart label.checkbox-inline, body.nv-app #order-standard_cart label.radio, body.nv-app #order-standard_cart label.checkbox {
  color: var(--nv-txt); font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; cursor: pointer;
}
body.nv-app #order-standard_cart .product-configurable-options label:has(input) { display: inline-flex; align-items: center; margin: 4px 0; }
body.nv-app #order-standard_cart .product-configurable-options br { display: none; }
body.nv-app #order-standard_cart .product-configurable-options .form-group > label:first-child { display: block; }
body.nv-app #order-standard_cart .product-configurable-options .form-group > label:has(input) { display: flex; }

/* Auswahlkaestchen (iCheck) */
body.nv-app .icheckbox_square-blue, body.nv-app .iradio_square-blue {
  position: relative; width: 20px; height: 20px; background: var(--nv-bg) none; border: 1px solid #5c5c5c; border-radius: 3px; transition: border-color .15s, background-color .15s;
}
body.nv-app .iradio_square-blue { border-radius: 50%; }
body.nv-app .icheckbox_square-blue.hover, body.nv-app .iradio_square-blue.hover { border-color: var(--nv-acc); }
body.nv-app .icheckbox_square-blue.checked { background: var(--nv-acc); border-color: var(--nv-acc); }
body.nv-app .icheckbox_square-blue.checked::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #101010; border-width: 0 2px 2px 0; transform: rotate(45deg); }
body.nv-app .iradio_square-blue.checked { border-color: var(--nv-acc); }
body.nv-app .iradio_square-blue.checked::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--nv-acc); }
body.nv-app .icheckbox_square-blue.disabled, body.nv-app .iradio_square-blue.disabled { opacity: .5; }
body.nv-app #order-standard_cart label .icheckbox_square-blue,
body.nv-app #order-standard_cart label .iradio_square-blue { margin-right: 8px; }

/* Shop: Produktkarten */
body.nv-app #order-standard_cart .products .row { margin-bottom: 0; }
body.nv-app #order-standard_cart .products .product {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 20px; padding: 0; overflow: hidden;
  background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; transition: border-color .15s;
}
body.nv-app #order-standard_cart .products .product:hover { border-color: #4a4a4a; }
body.nv-app #order-standard_cart .products .product::after { display: none; }
body.nv-app #order-standard_cart .products .product header { grid-column: 1 / -1; margin: 0; padding: 18px 20px 4px; background: transparent; border-radius: 0; }
body.nv-app #order-standard_cart .products .product header span { color: #fff; font-size: 22px; font-weight: 600; }
body.nv-app #order-standard_cart .products .product header .qty { color: var(--nv-mut); font-size: 13px; font-style: normal; font-weight: 400; }
body.nv-app #order-standard_cart .products .product div.product-desc { float: none; width: auto; padding: 6px 20px 20px; color: var(--nv-txt); font-size: 15px; }
body.nv-app #order-standard_cart .products .product div.product-desc p { color: var(--nv-mut); }
body.nv-app #order-standard_cart .products .product div.product-desc ul { margin: 0; padding: 0; list-style: none; }
body.nv-app #order-standard_cart .products .product div.product-desc li { padding: 3px 0; }
body.nv-app #order-standard_cart .products .product span.feature-value { color: #fff; font-weight: 600; }
body.nv-app #order-standard_cart .products .product footer { float: none; width: auto; min-width: 190px; margin: 0; padding: 6px 20px 20px; align-self: end; color: var(--nv-mut); font-size: 13px; text-align: right; }
body.nv-app #order-standard_cart .products .product div.product-pricing { margin-bottom: 12px; }
body.nv-app #order-standard_cart .products .product div.product-pricing span.price { color: #fff; font-size: 30px; font-weight: 300; line-height: 1.2; }
body.nv-app #order-standard_cart .products .product .btn-order-now { padding: 9px 16px; font-size: 14px; white-space: nowrap; }

/* Konfiguration */
body.nv-app #order-standard_cart .product-info { margin: 0 0 22px; padding: 18px 20px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; font-size: 15px; }
body.nv-app #order-standard_cart .product-info p { margin: 0; color: var(--nv-mut); }
body.nv-app #order-standard_cart .product-info .product-title { margin: 0 0 4px; color: #fff; font-size: 22px; font-weight: 600; }
body.nv-app #order-standard_cart .secondary-cart-body > p { color: var(--nv-mut); }
body.nv-app #order-standard_cart .product-configurable-options label,
body.nv-app #order-standard_cart .field-container label { margin-bottom: 6px; }
body.nv-app #order-standard_cart .panel-addon { margin-bottom: 16px; overflow: hidden; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; color: var(--nv-mut); font-size: 14px; text-align: left; transition: border-color .15s; }
body.nv-app #order-standard_cart .panel-addon:hover { border-color: #4a4a4a; }
body.nv-app #order-standard_cart .panel-addon .panel-body { padding: 16px 18px; border-radius: 0; }
body.nv-app #order-standard_cart .panel-addon .panel-body label { color: #fff; font-size: 16px; font-weight: 600; }
body.nv-app #order-standard_cart .panel-addon .panel-price { padding: 8px 18px; background: transparent; border-top: 1px solid var(--nv-soft); color: #fff; }
body.nv-app #order-standard_cart .panel-addon .panel-add { padding: 9px 18px; background: var(--nv-s2); border-radius: 0; color: var(--nv-txt); font-size: 13px; font-weight: 600; letter-spacing: .5px; text-align: center; text-transform: uppercase; }
body.nv-app #order-standard_cart .panel-addon-selected { border-color: var(--nv-acc); }
body.nv-app #order-standard_cart .panel-addon-selected .panel-add { background: var(--nv-acc); color: var(--nv-ink); }
body.nv-app #order-standard_cart .info-text-sm { font-size: 14px; }

/* Bestelluebersicht */
body.nv-app #order-standard_cart .order-summary { margin: 0 0 18px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-top: 3px solid var(--nv-acc); border-radius: 6px; }
body.nv-app #order-standard_cart .order-summary h2 { margin: 0; padding: 18px 20px 0; color: #fff; font-size: 18px; font-weight: 600; text-align: left; }
body.nv-app #order-standard_cart .summary-container { min-height: 80px; padding: 14px 20px 20px; background: transparent; border-radius: 0; color: var(--nv-txt); font-size: 14px; }
body.nv-app #order-standard_cart .order-summary .product-name { color: #fff; font-size: 16px; font-weight: 600; }
body.nv-app #order-standard_cart .order-summary .product-group { margin-bottom: 10px; color: var(--nv-mut); font-style: normal; }
body.nv-app #order-standard_cart .order-summary .clearfix { padding: 2px 0; }
body.nv-app #order-standard_cart .order-summary .summary-totals { margin: 12px 0; padding: 10px 0; border-top: 1px solid var(--nv-soft); border-bottom: 1px solid var(--nv-soft); }
body.nv-app #order-standard_cart .order-summary .subtotal { padding-bottom: 10px; border-bottom: 1px solid var(--nv-soft); font-size: 15px; }
body.nv-app #order-standard_cart .order-summary .bordered-totals { margin-bottom: 8px; padding: 8px 0; border-bottom: 1px solid var(--nv-soft); }
body.nv-app #order-standard_cart .order-summary .recurring-charges { color: var(--nv-mut); font-size: 13px; font-style: normal; }
body.nv-app #order-standard_cart .order-summary .recurring-charges .cost { color: var(--nv-txt); }
body.nv-app #order-standard_cart .order-summary .total-due-today { margin-top: 14px; }
body.nv-app #order-standard_cart .order-summary .total-due-today span { color: var(--nv-mut); }
body.nv-app #order-standard_cart .order-summary .total-due-today .amt { color: #fff; font-size: 36px; font-weight: 300; line-height: 1.15; }
body.nv-app #order-standard_cart .order-summary .loader { color: var(--nv-mut); }
body.nv-app #order-standard_cart .order-summary .btn-continue-shopping { color: var(--nv-mut); }
body.nv-app #order-standard_cart .order-summary .btn-continue-shopping:hover { color: #fff; }
body.nv-app #order-standard_cart .order-summary a:not(.btn) { color: var(--nv-mut); }
body.nv-app #order-standard_cart .btn-checkout { display: block; width: 100%; margin-top: 4px; padding: 14px 20px; }
body.nv-app #order-standard_cart #orderSummary > .text-center .btn,
body.nv-app #order-standard_cart #btnCompleteProductConfig { display: block; width: 100%; padding: 14px 20px; }
body.nv-app #order-standard_cart .express-checkout-buttons .separator { margin-left: 0; color: var(--nv-mut); }

/* Warenkorb */
body.nv-app #order-standard_cart .view-cart-items-header {
  padding: 12px 16px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-bottom: 0; border-radius: 6px 6px 0 0;
  color: var(--nv-mut); font-size: 12px; font-weight: 600; letter-spacing: .8px; text-transform: uppercase;
}
body.nv-app #order-standard_cart .view-cart-items { margin-bottom: 22px; overflow: hidden; border: 1px solid var(--nv-soft); border-radius: 0 0 6px 6px; }
body.nv-app #order-standard_cart .view-cart-items .item,
body.nv-app #order-standard_cart .view-cart-items .item:nth-child(even) { padding: 16px; background: #171717; border-top: 1px solid var(--nv-soft); color: var(--nv-txt); font-size: 14px; }
body.nv-app #order-standard_cart .view-cart-items .item:first-child { border-top: 0; }
body.nv-app #order-standard_cart .view-cart-items .item-title { color: #fff; font-size: 18px; font-weight: 600; }
body.nv-app #order-standard_cart .view-cart-items .item-title .btn { font-size: 13px; font-weight: 400; }
body.nv-app #order-standard_cart .view-cart-items .item-group { color: var(--nv-mut); font-size: 14px; }
body.nv-app #order-standard_cart .view-cart-items .item-domain { color: var(--nv-acc); }
body.nv-app #order-standard_cart .view-cart-items .item small { display: block; margin-top: 6px; color: var(--nv-mut); font-size: 13px; line-height: 1.6; }
body.nv-app #order-standard_cart .view-cart-items .item-price span { color: #fff; font-size: 18px; }
body.nv-app #order-standard_cart .view-cart-items .item-price .cycle { color: var(--nv-mut); font-size: 13px; }
body.nv-app #order-standard_cart .view-cart-items .item-qty input { padding: 4px; height: 38px; }
body.nv-app #order-standard_cart .view-cart-empty { padding: 44px 16px; background: #171717; color: var(--nv-mut); font-size: 16px; }
body.nv-app #order-standard_cart .btn-remove-from-cart { color: var(--nv-mut); }
body.nv-app #order-standard_cart .btn-remove-from-cart:hover { color: var(--nv-bad); }
body.nv-app #order-standard_cart .empty-cart { margin: -12px 0 14px; }
body.nv-app #order-standard_cart .empty-cart .btn { padding: 4px 0; background: transparent; border-radius: 0; color: var(--nv-mut); }
body.nv-app #order-standard_cart .empty-cart .btn:hover { color: var(--nv-bad); }
body.nv-app #order-standard_cart .view-cart-tabs .nav-tabs { padding-left: 0; border-bottom: 1px solid var(--nv-soft); font-size: 14px; }
body.nv-app #order-standard_cart .view-cart-tabs .nav-tabs a[aria-selected="true"],
body.nv-app #order-standard_cart .view-cart-tabs .nav-tabs a[aria-expanded="true"] { background: transparent; border-color: transparent; border-bottom: 2px solid var(--nv-acc); color: #fff; }
body.nv-app #order-standard_cart .view-cart-tabs .tab-content { padding: 18px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-top: 0; border-radius: 0 0 6px 6px; }
body.nv-app #order-standard_cart .view-cart-promotion-code { background: var(--nv-bg); border: 1px dashed var(--nv-line); color: #fff; }
body.nv-app #order-standard_cart .view-cart-gateway-checkout { background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; }

/* Kasse */
body.nv-app #order-standard_cart .already-registered { margin-bottom: 8px; }
body.nv-app #order-standard_cart .already-registered p { margin: 8px 0 0; color: var(--nv-mut); }
body.nv-app #order-standard_cart .account-select-container { border-right: 0; }
body.nv-app #order-standard_cart .account-select-container div.account,
body.nv-app #order-standard_cart .account-select-container div.account:not(.border-bottom) { margin-bottom: 8px; padding: 14px 16px; background: var(--nv-s1); border: 1px solid var(--nv-soft) !important; border-radius: 6px; }
body.nv-app #order-standard_cart .account-select-container div.account.active { background: var(--nv-s2); border-color: var(--nv-acc) !important; }
body.nv-app #order-standard_cart .account-select-container label { display: flex; align-items: flex-start; gap: 4px; margin: 0; }
body.nv-app #order-standard_cart .account-select-container .address { color: var(--nv-txt); }
body.nv-app #order-standard_cart .account-select-container .address strong { color: #fff; }
body.nv-app #order-standard_cart .account-select-container .small { color: var(--nv-mut); }
body.nv-app #order-standard_cart #paymentGatewaysContainer .text-center { display: flex; flex-wrap: wrap; gap: 10px; text-align: left !important; }
body.nv-app #order-standard_cart #paymentGatewaysContainer label.radio-inline {
  display: inline-flex; align-items: center; margin: 0; padding: 11px 16px 11px 12px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 4px;
  color: #fff; font-size: 15px; cursor: pointer; transition: border-color .15s;
}
body.nv-app #order-standard_cart #paymentGatewaysContainer label.radio-inline:hover { border-color: #4a4a4a; }
body.nv-app #order-standard_cart #paymentGatewaysContainer label.radio-inline:has(.checked),
body.nv-app #order-standard_cart #paymentGatewaysContainer label.radio-inline:has(input:checked) { border-color: var(--nv-acc); }
body.nv-app #order-standard_cart .cc-input-container { padding: 16px 16px 8px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; }
body.nv-app #order-standard_cart .cc-input-container .existing-cc-grid { color: var(--nv-txt); }
body.nv-app #order-standard_cart .apply-credit-container { background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; }
body.nv-app #order-standard_cart #totalDueToday.alert { background: var(--nv-s1); border-color: var(--nv-soft); color: var(--nv-mut); font-size: 16px; }
body.nv-app #order-standard_cart #totalDueToday.alert strong { color: #fff; font-size: 22px; font-weight: 400; }
body.nv-app #order-standard_cart .marketing-email-optin { margin: 26px 0 18px; }
body.nv-app #order-standard_cart .marketing-email-optin h4 { color: #fff; font-weight: 600; }
body.nv-app #order-standard_cart .marketing-email-optin p { color: var(--nv-mut); }
body.nv-app #order-standard_cart #btnCompleteOrder { min-width: 280px; padding: 14px 26px; }
body.nv-app #order-standard_cart .checkout-security-msg { background: transparent; border: 0; border-top: 1px solid var(--nv-soft); border-radius: 0; margin-top: 28px; padding: 18px 0 0 62px; color: var(--nv-dim); font-size: 13px; }
body.nv-app #order-standard_cart .checkout-security-msg i { margin-left: -50px; color: var(--nv-dim); font-size: 30px; }
body.nv-app #order-standard_cart .checkout-security-msg strong { color: var(--nv-mut); }
body.nv-app #order-standard_cart .default-captcha { background: var(--nv-s1); border-color: var(--nv-soft); box-shadow: none; color: var(--nv-mut); }
body.nv-app #order-standard_cart .password-strength-meter p { color: var(--nv-mut) !important; }

/* Abschluss, Fehler */
body.nv-app #order-standard_cart .order-confirmation { padding: 22px; font-size: 16px; }
body.nv-app #order-standard_cart .order-confirmation span { display: block; margin-top: 4px; color: #fff; font-size: 28px; font-weight: 300; letter-spacing: .04em; }
body.nv-app .error-heading { margin: 0 0 22px; font-size: 18px; text-align: left; }
body.nv-app #order-standard_cart .cart-body > p { color: var(--nv-txt); }

/* Verlaengerungen */
body.nv-app .domain-renewals, body.nv-app .service-renewals { border-top: 1px solid var(--nv-soft); }
body.nv-app .domain-renewals, body.nv-app .service-renewals, body.nv-app .addon-renewals .service-renewal { background: var(--nv-s1); }
body.nv-app .domain-renewals .domain-renewal, body.nv-app .service-renewals .service-renewal { border-bottom: 1px solid var(--nv-soft); }
body.nv-app .domain-renewals .domain-renewal:nth-child(even), body.nv-app .service-renewals .service-renewal:nth-child(even), body.nv-app .addon-renewals .service-renewal:nth-child(even) { background: #171717; }
body.nv-app .addon-renewals > div { border-color: var(--nv-soft); }
body.nv-app .service-renewals .div-renewal-ineligible { color: var(--nv-dim); }
body.nv-app .service-renewals .div-renewal-period-label, body.nv-app #order-standard_cart p.domain-renewal-desc { color: var(--nv-mut); }
body.nv-app .form-control.domain-renewals-filter, body.nv-app .form-control.service-renewals-filter {
  background: var(--nv-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a8a8a8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") no-repeat 11px center / 18px 18px !important;
  padding: 8px 12px 8px 38px !important; height: 40px !important;
}

/* Empfehlungen nach dem Hinzufuegen */
body.nv-app .product-recommendations .product-recommendation { background: var(--nv-s1); border: 1px solid var(--nv-soft); border-bottom: 3px solid var(--nv-acc); color: var(--nv-txt); }
body.nv-app .product-recommendations .product-recommendation .body { background: var(--nv-s2); border-top: 1px solid var(--nv-soft); }
body.nv-app .product-recommendations .product-recommendation .price { color: #fff; }
body.nv-app .product-recommendations .product-recommendation .btn-add { background: var(--nv-acc); color: var(--nv-ink); }
body.nv-app .product-recommendations .product-recommendation .arrow { background: #e6bd39; }
body.nv-app .product-recommendations .product-recommendation .expander { color: var(--nv-acc); }
body.nv-app .modal-remove-item .modal-title i { color: var(--nv-dim); }

@media (min-width: 992px) {
  body.nv-app #order-standard_cart .secondary-cart-body { width: 64%; padding-right: 28px; }
  body.nv-app #order-standard_cart .secondary-cart-sidebar { width: 36%; }
}
@media (max-width: 767.98px) {
  body.nv-app #order-standard_cart .header-lined h1 { font-size: 26px; }
  body.nv-app #order-standard_cart .products .product { grid-template-columns: minmax(0, 1fr); }
  body.nv-app #order-standard_cart .products .product footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; text-align: left; }
  body.nv-app #order-standard_cart .products .product div.product-pricing { margin-bottom: 0; }
  body.nv-app #order-standard_cart .view-cart-items .item-price { margin-top: 8px; text-align: left; }
  body.nv-app #order-standard_cart #btnCompleteOrder { width: 100%; min-width: 0; }
}

/* ==========================================================================
   Nodvaro - Spielseite (Bestellformular "Nodvaro", products.tpl):
   Slider fuer die Spielerzahl, empfohlenes Paket, Paketwahl von Hand.
   Die Skala unter dem Regler ist in Paketbereiche geteilt: je breiter ein Abschnitt,
   desto mehr Spieler deckt das Paket ab.
   ========================================================================== */
body.nv-app .nv-pick [hidden] { display: none !important; }
/* Kopf wie der grosse Bereich der Website: Spielbild, dunkler Verlauf von links, grosser Titel */
body.nv-app.nv-shop.nv-page-products section#main-body { padding-top: 20px; }
body.nv-app .nv-pick__hero {
  position: relative; display: flex; align-items: flex-end; min-height: clamp(230px, 25vw, 340px); margin: 0 0 24px; padding: 30px 34px; overflow: hidden;
  background: linear-gradient(160deg, #2c2c2c, #161616); border-radius: 6px;
}
body.nv-app .nv-pick__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: nv-art .6s ease both; }
@keyframes nv-art { from { opacity: 0; } to { opacity: 1; } }
body.nv-app .nv-pick__hero.has-art::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(16,16,16,.92) 0%, rgba(16,16,16,.62) 36%, rgba(16,16,16,0) 72%), linear-gradient(0deg, rgba(16,16,16,.7) 0%, rgba(16,16,16,0) 50%);
}
body.nv-app .nv-pick__herotext { position: relative; z-index: 1; max-width: 640px; }
body.nv-app .nv-pick__back {
  display: inline-flex; align-items: center; gap: 4px; margin: 0 0 14px -4px;
  color: rgba(255,255,255,.82); font-size: 14px; font-weight: 600; letter-spacing: .4px; text-decoration: none; text-shadow: 0 1px 8px rgba(0,0,0,.7);
}
body.nv-app .nv-pick__back:hover { color: #fff; }
body.nv-app .nv-pick__back svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body.nv-app .nv-pick__title {
  margin: 0; color: #fff; font-size: clamp(32px, 4.6vw, 62px); font-weight: 700; letter-spacing: .5px; line-height: 1; text-transform: uppercase;
  text-shadow: 0 4px 24px rgba(0,0,0,.6); text-wrap: balance;
}
body.nv-app .nv-pick__lead { margin: 16px 0 0; color: #fff; font-size: clamp(15px, 1.25vw, 18px); line-height: 1.5; text-shadow: 0 1px 8px rgba(0,0,0,.7); }

body.nv-app .nv-pick.is-js .nv-pick__top { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr); gap: 20px; align-items: stretch; }
body.nv-app .nv-pick.is-js.is-solo .nv-pick__top { grid-template-columns: minmax(0, 1fr); }

/* Frage nach der Spielerzahl */
body.nv-app .nv-pick__ask { display: flex; flex-direction: column; padding: 28px 30px 24px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; }
body.nv-app .nv-pick__q { margin: 0; color: #fff; font-size: 20px; font-weight: 600; line-height: 1.3; }
body.nv-app .nv-pick__num { display: flex; align-items: baseline; gap: 12px; margin: 22px 0 14px; color: var(--nv-mut); font-size: 20px; line-height: 1; }
body.nv-app .nv-pick__num output { display: inline-block; min-width: 1.2em; padding: 0; color: #fff; font-size: 76px; font-weight: 300; line-height: .9; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
body.nv-app .nv-pick__hint { margin: auto 0 0; padding-top: 22px; max-width: 60ch; color: var(--nv-dim); font-size: 13px; }

/* Regler: die Spur selbst sind die Paketbereiche */
body.nv-app .nv-slide { --nv-knob: 30px; position: relative; }
body.nv-app .nv-zones { display: flex; gap: 4px; margin: 0 calc(var(--nv-knob) / 2); }
body.nv-app .nv-zones--bar { position: absolute; left: 0; right: 0; top: calc(var(--nv-knob) / 2 - 4px); pointer-events: none; }
body.nv-app .nv-zones--bar i { display: block; flex: 1 1 0; height: 8px; min-width: 0; background: #3a3a3a; border-radius: 2px; transition: background-color .15s; }
body.nv-app .nv-zones--bar i.is-on { background: var(--nv-acc); }
body.nv-app .nv-zones--txt { margin-top: 10px; }
body.nv-app .nv-zones--txt span { flex: 1 1 0; min-width: 0; overflow: hidden; color: var(--nv-dim); font-size: 13px; font-weight: 600; line-height: 1.3; text-align: center; white-space: nowrap; transition: color .15s; }
body.nv-app .nv-zones--txt span.is-on { color: #fff; }
body.nv-app .nv-range {
  -webkit-appearance: none; appearance: none; position: relative; z-index: 1; display: block; width: 100%; height: var(--nv-knob);
  margin: 0; padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; cursor: pointer; touch-action: pan-y;
}
body.nv-app .nv-range:focus { outline: 0; }
body.nv-app .nv-range::-webkit-slider-runnable-track { height: var(--nv-knob); background: transparent; border: 0; }
body.nv-app .nv-range::-moz-range-track { height: var(--nv-knob); background: transparent; border: 0; }
body.nv-app .nv-range::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none; box-sizing: border-box; width: var(--nv-knob); height: var(--nv-knob);
  background: var(--nv-acc); border: 5px solid var(--nv-s1); border-radius: 50%; box-shadow: 0 0 0 2px var(--nv-acc);
}
body.nv-app .nv-range::-moz-range-thumb {
  box-sizing: border-box; width: var(--nv-knob); height: var(--nv-knob);
  background: var(--nv-acc); border: 5px solid var(--nv-s1); border-radius: 50%; box-shadow: 0 0 0 2px var(--nv-acc);
}
body.nv-app .nv-range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 2px var(--nv-acc), 0 0 0 6px rgba(255,210,63,.3); }
body.nv-app .nv-range:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 2px var(--nv-acc), 0 0 0 6px rgba(255,210,63,.3); }

/* Das gewaehlte Paket (ohne JavaScript: alle Pakete als Karten) */
body.nv-app .nv-pick__sel { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 20px; }
body.nv-app .nv-pick.is-js .nv-pick__sel { display: block; }
body.nv-app .nv-plan { display: flex; flex-direction: column; height: 100%; padding: 24px 26px; background: var(--nv-s1); border: 1px solid var(--nv-soft); border-top: 3px solid var(--nv-acc); border-radius: 6px; }
body.nv-app .nv-plan__tag { margin: 0 0 8px; color: var(--nv-acc); font-size: 14px; font-weight: 700; line-height: 1.3; }
body.nv-app .nv-plan__name { margin: 0; color: #fff; font-size: 24px; font-weight: 600; line-height: 1.2; }
body.nv-app .nv-plan__qty { margin-left: 8px; color: var(--nv-mut); font-size: 13px; font-weight: 400; }
body.nv-app .nv-plan__note { margin: 8px 0 0; color: var(--nv-mut); font-size: 14px; }
body.nv-app .nv-plan__desc { margin: 10px 0 0; color: var(--nv-mut); font-size: 14px; }
/* Arabisch, Persisch, Hebraeisch: Zahl und Wort in Leserichtung, die Seite selbst bleibt wie in WHMCS linksbuendig */
body.nv-app .nv-pick [dir="rtl"] { text-align: left; }
body.nv-app .nv-pick [dir="rtl"] b, body.nv-app .nv-pick [dir="rtl"] output { direction: ltr; unicode-bidi: isolate; }
body.nv-app .nv-pick__num[dir="rtl"] { justify-content: flex-end; }
body.nv-app .nv-plan__specs { margin: 18px 0 0; padding: 0; list-style: none; color: var(--nv-txt); font-size: 15px; }
body.nv-app .nv-plan__specs li { padding: 4px 0; }
body.nv-app .nv-plan__specs b { color: #fff; font-weight: 600; }
body.nv-app .nv-plan__foot { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 18px; margin-top: auto; padding-top: 22px; }
body.nv-app .nv-plan__price { color: var(--nv-mut); font-size: 13px; line-height: 1.3; }
body.nv-app .nv-plan__price small { display: block; font-size: 13px; }
body.nv-app .nv-plan__price .price { display: block; color: #fff; font-size: 36px; font-weight: 300; line-height: 1.1; white-space: nowrap; }
body.nv-app .nv-plan .btn-order-now { padding: 11px 20px; font-size: 14px; white-space: nowrap; }

/* Paketwahl von Hand */
body.nv-app .nv-pick__sub { margin: 36px 0 16px; color: #fff; font-size: 20px; font-weight: 600; line-height: 1.3; }
body.nv-app .nv-pick__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(176px, 1fr)); gap: 14px; }
body.nv-app .nv-tile {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 18px 18px 16px;
  background: var(--nv-s1); border: 1px solid var(--nv-soft); border-radius: 6px; box-shadow: none;
  color: var(--nv-txt); font: inherit; line-height: 1.3; text-align: left; cursor: pointer; transition: border-color .15s;
}
body.nv-app .nv-tile:hover { border-color: #5a5a5a; }
body.nv-app .nv-tile:focus { outline: 0; }
body.nv-app .nv-tile:focus-visible { outline: 2px solid var(--nv-acc); outline-offset: 3px; }
body.nv-app .nv-tile[aria-checked="true"] { border-color: var(--nv-acc); box-shadow: inset 0 0 0 1px var(--nv-acc); }
body.nv-app .nv-tile__name { color: #fff; font-size: 17px; font-weight: 600; }
body.nv-app .nv-tile__for { margin-top: 2px; color: var(--nv-mut); font-size: 13px; }
body.nv-app .nv-tile__price { margin-top: 14px; color: #fff; font-size: 22px; font-weight: 300; line-height: 1.1; }
body.nv-app .nv-tile__cycle { color: var(--nv-mut); font-size: 12px; }
body.nv-app .nv-tile__badge { display: none; position: absolute; top: -10px; right: 14px; padding: 2px 8px; background: var(--nv-acc); border-radius: 3px; color: #101010; font-size: 12px; font-weight: 700; line-height: 1.4; }
body.nv-app .nv-tile.is-rec .nv-tile__badge { display: block; }

@media (max-width: 991.98px) {
  body.nv-app .nv-pick.is-js .nv-pick__top { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
  body.nv-app .nv-pick__hero { min-height: 200px; padding: 22px 18px; }
  body.nv-app .nv-pick__hero.has-art::after { background: linear-gradient(0deg, rgba(16,16,16,.9) 0%, rgba(16,16,16,.45) 60%, rgba(16,16,16,.25) 100%); }
  body.nv-app .nv-pick__ask { padding: 22px 18px 20px; }
  body.nv-app .nv-pick__q { font-size: 18px; }
  body.nv-app .nv-pick__num output { font-size: 60px; }
  body.nv-app .nv-plan { padding: 20px 18px; }
  body.nv-app .nv-zones--txt span { font-size: 12px; }
  body.nv-app .nv-pick__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.nv-app .nv-tile { padding: 16px 14px 14px; }
  body.nv-app .nv-plan .btn-order-now { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  body.nv-app .nv-zones--bar i, body.nv-app .nv-zones--txt span, body.nv-app .nv-tile { transition: none; }
  body.nv-app .nv-pick__art { animation: none; }
}

/* Arabische Schrift (Arabisch, Persisch) verbindet ihre Buchstaben: kein Abstand dazwischen.
   Gilt fuer die Teile, die dieses Theme zeichnet (Navigation, Kopfzeile, Anmelderahmen, Spielseite). */
html:lang(ar) [class*="nv-"], html:lang(fa) [class*="nv-"] { letter-spacing: 0 !important; }

body.nv-app .client-home-cards .card[menuItemName*="domain" i] { display: none; }
body.nv-app .client-home-cards .card[menuItemName*="news" i] { display: none; }
body.nv-app .client-home-cards .card[menuItemName*="affiliate" i] { display: none; }
body.nv-app .client-home-cards .card[menuItemName*="sitejet" i] { display: none; }

body.nv-auth-page { --nv-art: url("../img/nv-auth.jpg"); --nv-shade: linear-gradient(180deg, rgba(16,16,16,.72) 0%, rgba(16,16,16,.18) 38%, rgba(16,16,16,.88) 100%); }
body:has(.nv-auth) { --nv-art: url("../img/nv-auth.jpg"); --nv-shade: linear-gradient(180deg, rgba(16,16,16,.72) 0%, rgba(16,16,16,.18) 38%, rgba(16,16,16,.88) 100%); }
