/* ==========================================================================
   Thème client "Vercel" — surcouche de Nexus (WHMCS 9)
   Tous les styles reposent sur les tokens ci-dessous.
   ========================================================================== */

:root {
    --vc-font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --vc-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

    --vc-bg: #ffffff;
    --vc-bg-page: #fafafa;
    --vc-bg-subtle: #fafafa;
    --vc-bg-hover: #f2f2f2;
    --vc-bg-active: #ebebeb;

    --vc-border: #ebebeb;
    --vc-border-strong: #d9d9d9;
    --vc-border-hover: #c9c9c9;

    --vc-fg: #171717;
    --vc-fg-2: #4d4d4d;
    --vc-muted: #666666;
    --vc-subtle: #8f8f8f;
    --vc-inverse: #ffffff;

    --vc-btn: #171717;
    --vc-btn-hover: #383838;

    --vc-blue: #0070f3;
    --vc-blue-text: #0062d1;
    --vc-blue-bg: #ebf5ff;
    --vc-blue-border: #cce4ff;
    --vc-green: #1f9d48;
    --vc-green-text: #107d32;
    --vc-green-bg: #ebfaef;
    --vc-green-border: #c3ecd0;
    --vc-amber: #f5a623;
    --vc-amber-text: #a35200;
    --vc-amber-bg: #fff6e5;
    --vc-amber-border: #ffe2b0;
    --vc-red: #e5484d;
    --vc-red-hover: #d93036;
    --vc-red-text: #c4262c;
    --vc-red-bg: #fff0f0;
    --vc-red-border: #ffd1d2;
    --vc-purple-text: #7d2bd1;
    --vc-purple-bg: #f6edfe;

    --vc-radius-sm: 4px;
    --vc-radius: 6px;
    --vc-radius-md: 8px;
    --vc-radius-lg: 12px;

    --vc-shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);
    --vc-shadow-card: 0 0 0 1px rgba(0, 0, 0, .02), 0 2px 2px rgba(0, 0, 0, .02);
    --vc-shadow-menu: 0 0 0 1px rgba(0, 0, 0, .08), 0 4px 8px -4px rgba(0, 0, 0, .04), 0 16px 24px -8px rgba(0, 0, 0, .06);
    --vc-shadow-modal: 0 0 0 1px rgba(0, 0, 0, .08), 0 1px 1px rgba(0, 0, 0, .02), 0 8px 16px -4px rgba(0, 0, 0, .04), 0 24px 32px -8px rgba(0, 0, 0, .06);
    --vc-ring: 0 0 0 1px #a1a1a1, 0 0 0 4px rgba(0, 0, 0, .08);
    --vc-ring-blue: 0 0 0 1px var(--vc-blue), 0 0 0 4px rgba(0, 112, 243, .16);

    --vc-header-h: 64px;
    --vc-tabs-h: 46px;
    --vc-ease: cubic-bezier(.175, .885, .32, 1.1);

    /* Remappage des tokens Nexus (templates/nexus/css/custom.css) */
    --neutral-50: #fafafa;
    --neutral-100: #f2f2f2;
    --neutral-200: #ebebeb;
    --neutral-300: #e0e0e0;
    --neutral-400: #a1a1a1;
    --neutral-500: #8f8f8f;
    --neutral-600: #666666;
    --neutral-700: #4d4d4d;
    --neutral-800: #383838;
    --neutral-900: #171717;
    --neutral-950: #0a0a0a;
    --primary: #171717;
    --primary-lifted: #383838;
    --primary-accented: #4d4d4d;
    --success: #1f9d48;
    --success-lifted: #107d32;
    --success-accented: #0b5e25;
    --info: #0070f3;
    --info-lifted: #0062d1;
    --info-accented: #0052b0;
    --warning: #f5a623;
    --warning-lifted: #d48a0c;
    --warning-accented: #a35200;
    --error: #e5484d;
    --error-lifted: #d93036;
    --error-accented: #c4262c;
    --border-muted: #f2f2f2;
    --border: #ebebeb;
    --border-lifted: #d9d9d9;
    --bg-muted: #fafafa;
    --bg-lifted: #f2f2f2;
    --rounding-sm: 6px;
    --rounding-md: 8px;
    --rounding-lg: 12px;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; }

body.vc {
    font-family: var(--vc-font);
    font-size: 14px;
    line-height: 1.5;
    color: var(--vc-fg);
    background: var(--vc-bg-page);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: "liga", "calt";
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
body.vc > section#main-body { flex: 1 0 auto; }

body.vc h1, body.vc h2, body.vc h3, body.vc h4, body.vc h5, body.vc h6,
body.vc .h1, body.vc .h2, body.vc .h3, body.vc .h4, body.vc .h5, body.vc .h6 {
    font-family: var(--vc-font);
    color: var(--vc-fg);
    font-weight: 600;
    letter-spacing: -0.02em;
}
body.vc h1, body.vc .h1 { font-size: 32px; letter-spacing: -0.04em; }
body.vc h2, body.vc .h2 { font-size: 24px; letter-spacing: -0.03em; }
body.vc h3, body.vc .h3 { font-size: 20px; }
body.vc h4, body.vc .h4 { font-size: 16px; }
body.vc h5, body.vc .h5, body.vc h6, body.vc .h6 { font-size: 14px; }

body.vc a { color: var(--vc-fg); text-decoration: none; transition: color .15s ease; }
body.vc a:hover { color: var(--vc-fg); text-decoration: underline; text-underline-offset: 3px; }
body.vc #main-body p a, body.vc .vc-link { color: var(--vc-blue-text); }

body.vc code, body.vc kbd, body.vc pre, body.vc samp { font-family: var(--vc-mono); }
body.vc code { color: var(--vc-fg); background: var(--vc-bg-hover); padding: 2px 5px; border-radius: var(--vc-radius-sm); font-size: .9em; }
body.vc hr { border-color: var(--vc-border); }
body.vc .text-muted, body.vc small.text-muted { color: var(--vc-muted) !important; }
body.vc .text-primary { color: var(--vc-fg) !important; }
body.vc .text-success { color: var(--vc-green-text) !important; }
body.vc .text-danger { color: var(--vc-red-text) !important; }
body.vc .text-warning { color: var(--vc-amber-text) !important; }
body.vc .text-info { color: var(--vc-blue-text) !important; }
body.vc .bg-primary { background-color: var(--vc-fg) !important; }
body.vc ::selection { background: #cce4ff; color: var(--vc-fg); }

body.vc *:focus-visible { outline: none; box-shadow: var(--vc-ring); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.vc-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(255, 255, 255, .85);
    -webkit-backdrop-filter: saturate(180%) blur(8px);
    backdrop-filter: saturate(180%) blur(8px);
    border-bottom: 1px solid var(--vc-border);
}

.vc-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--vc-header-h);
    gap: 16px;
}

.vc-scope { display: flex; align-items: center; gap: 10px; min-width: 0; }

.vc-brand { display: flex; align-items: center; gap: 10px; color: var(--vc-fg) !important; font-weight: 600; font-size: 15px; letter-spacing: -0.01em; white-space: nowrap; }
.vc-brand:hover { text-decoration: none !important; }
.vc-brand .logo-img { max-height: 28px; width: auto; }

.vc-brand-mark {
    display: inline-block;
    width: 22px;
    height: 22px;
    flex: none;
    border-radius: 6px;
    background: linear-gradient(135deg, #4d4d4d 0%, var(--vc-fg) 60%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);
}

.vc-scope-sep { color: var(--vc-border-strong); font-size: 22px; font-weight: 300; line-height: 1; transform: translateY(-1px); }

.vc-scope-account {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 4px 8px 4px 4px;
    border-radius: var(--vc-radius);
    color: var(--vc-fg) !important;
    font-weight: 500;
}
.vc-scope-account:hover { background: var(--vc-bg-hover); text-decoration: none !important; }
.vc-scope-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; }

.vc-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, #a1a1a1 0%, #171717 100%);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    flex: none;
}
.vc-avatar-sm { width: 22px; height: 22px; font-size: 11px; }

.vc-actions { display: flex; align-items: center; gap: 8px; }

.vc-icon-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 50%;
    background: transparent;
    color: var(--vc-muted) !important;
    font-size: 15px;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.vc-icon-btn:hover, .vc-icon-btn:focus { background: var(--vc-bg-hover); color: var(--vc-fg) !important; text-decoration: none !important; }
.vc-scope-switch { width: 28px; height: 28px; font-size: 13px; }
.vc-topbar .vc-icon-btn { border: 1px solid var(--vc-border); }
.vc-topbar .vc-scope-switch { border-color: transparent; }

.vc-dot {
    position: absolute;
    top: -4px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--vc-fg);
    border: 2px solid var(--vc-bg);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 14px;
    text-align: center;
}
.vc-dot-empty { display: none; }

.vc-search {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0;
}
.vc-search i { position: absolute; left: 10px; color: var(--vc-subtle); font-size: 13px; pointer-events: none; }
.vc-search input {
    width: 240px;
    height: 32px;
    padding: 0 12px 0 32px;
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius);
    background: var(--vc-bg);
    color: var(--vc-fg);
    font-size: 13px;
    transition: border-color .15s ease, box-shadow .15s ease, width .2s ease;
}
.vc-search input::placeholder { color: var(--vc-subtle); }
.vc-search input:hover { border-color: var(--vc-border-hover); }
.vc-search input:focus { outline: none; border-color: transparent; box-shadow: var(--vc-ring); width: 280px; }

.vc-return-admin { height: 32px; display: inline-flex; align-items: center; gap: 6px; }

/* Menu compte (secondaryNavbar) */
.vc-account-nav { flex-direction: row; margin: 0 0 0 4px; }
.vc-account-nav > li > a {
    display: inline-flex !important;
    align-items: center;
    height: 32px;
    padding: 0 10px !important;
    border-radius: var(--vc-radius);
    color: var(--vc-fg) !important;
    font-weight: 500;
    font-size: 13px;
}
.vc-account-nav > li > a:hover { background: var(--vc-bg-hover); text-decoration: none !important; }
.vc-account-nav .dropdown-menu { position: absolute; }

/* Onglets (primaryNavbar) */
.vc-tabs.navbar {
    padding: 0;
    background: transparent;
    border: 0;
}
.vc-tabs .navbar-collapse { align-items: flex-end; }
@media (min-width: 1200px) {
    .vc-tabs .navbar-collapse { padding-bottom: 10px; }
}
/* #nav doit rester < 30px de haut, sinon autoCollapse() de Nexus range les onglets dans "More" */
.vc-tabs #nav { margin-left: -10px; gap: 2px; }
.vc-tabs #nav > li { padding: 0; margin: 0; }
.vc-tabs #nav > li > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    height: 28px;
    margin: 0;
    padding: 0 10px;
    border-radius: var(--vc-radius);
    color: var(--vc-muted);
    font-size: 14px;
    font-weight: 400;
    white-space: nowrap;
    transition: color .15s ease, background .15s ease;
}
.vc-tabs #nav > li > a:hover,
.vc-tabs #nav > li.show > a { color: var(--vc-fg); background: var(--vc-bg-hover); text-decoration: none; }
.vc-tabs #nav > li.active > a,
.vc-tabs #nav > li > a.active { color: var(--vc-fg); }
.vc-tabs #nav > li.active > a::after,
.vc-tabs #nav > li > a.active::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: -11px;
    height: 2px;
    border-radius: 1px;
    background: var(--vc-fg);
}
.vc-tabs .dropdown-toggle::after {
    border: 0;
    width: 6px;
    height: 6px;
    margin-left: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translate(-2px, -2px);
    vertical-align: middle;
    opacity: .7;
}
.vc-account-nav .dropdown-toggle::after { display: none; }

@media (max-width: 1199.98px) {
    .vc-tabs .navbar-collapse.show, .vc-tabs .navbar-collapse.collapsing { padding: 4px 0 12px; }
    .vc-tabs #nav { margin-left: 0; }
    .vc-tabs #nav > li > a { display: flex; height: 40px; margin: 0; padding: 0 8px; font-size: 15px; }
    .vc-tabs #nav > li.active > a::after { display: none; }
    .vc-tabs #nav > li.active > a { background: var(--vc-bg-hover); }
    .vc-tabs .vc-search { margin: 8px 0; }
    .vc-tabs .vc-search input { width: 100%; height: 40px; }
    .vc-tabs .dropdown-menu { box-shadow: none; border: 0; padding-left: 12px; }
}
@media (max-width: 575.98px) {
    .vc-scope-account, .vc-scope-sep, .vc-scope-switch { display: none !important; }
    .vc-brand-name { max-width: 140px; overflow: hidden; text-overflow: ellipsis; }
    .vc-account-nav > li > a { max-width: 110px; overflow: hidden; text-overflow: ellipsis; display: block !important; line-height: 32px; }
    .vc-topbar { gap: 8px; }
    .vc-actions { gap: 6px; }
}

/* --------------------------------------------------------------------------
   Page header & breadcrumb
   -------------------------------------------------------------------------- */
.vc-page-header {
    background: var(--vc-bg);
    border-bottom: 1px solid var(--vc-border);
    padding: 28px 0 32px;
}
.vc-page-title { margin: 0; font-size: 32px !important; line-height: 1.2; }
.vc-page-tagline { margin: 6px 0 0; color: var(--vc-muted); font-size: 15px; }

body.vc .master-breadcrumb { background: transparent; padding: 0; margin: 0 0 8px; }
body.vc .master-breadcrumb .breadcrumb { padding: 0; margin: 0; background: transparent; font-size: 13px; }
body.vc .breadcrumb-item, body.vc .breadcrumb-item a { color: var(--vc-muted); }
body.vc .breadcrumb-item a:hover { color: var(--vc-fg); }
body.vc .breadcrumb-item.active { color: var(--vc-fg); }
body.vc .breadcrumb-item + .breadcrumb-item { padding-left: 0; }
body.vc .breadcrumb-item + .breadcrumb-item::before { content: "/"; color: var(--vc-border-strong); padding: 0 8px; }

/* --------------------------------------------------------------------------
   Main body
   -------------------------------------------------------------------------- */
body.vc section#main-body { background: transparent; padding: 32px 0 64px; min-height: calc(100vh - 360px); }
body.vc .primary-content > .alert:first-child { margin-top: 0; }

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */
body.vc .card {
    background: var(--vc-bg);
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius-lg);
    box-shadow: var(--vc-shadow-card);
    overflow: hidden;
}
body.vc .card[class*="card-accent-"] { border-top: 1px solid var(--vc-border) !important; }
body.vc .card-header {
    background: var(--vc-bg);
    border-bottom: 1px solid var(--vc-border);
    padding: 14px 20px;
}
body.vc .card-header .card-title, body.vc .card-title {
    font-size: 14px !important;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--vc-fg);
}
body.vc .card-header .card-title i { color: var(--vc-muted); margin-right: 4px; }
body.vc .card-body { padding: 20px; }
body.vc .card-footer { background: var(--vc-bg-subtle); border-top: 1px solid var(--vc-border); padding: 12px 20px; }
body.vc .card-footer a { color: var(--vc-muted); font-size: 13px; }

/* Sidebar */
body.vc .sidebar .card-sidebar { margin-bottom: 16px !important; }
body.vc .card-sidebar .card-header { padding: 12px 16px; }
body.vc .card-sidebar .card-title { font-size: 13px !important; }
body.vc .card-sidebar .card-minimise { color: var(--vc-subtle); font-size: 11px; margin-top: 4px; }
body.vc .card-sidebar .card-body { padding: 16px; color: var(--vc-fg-2); }
body.vc .card-sidebar .list-group { padding: 6px; }
body.vc .card-sidebar .list-group-item {
    border: 0 !important;
    border-radius: var(--vc-radius) !important;
    padding: 7px 10px;
    margin: 0;
    background: transparent;
    color: var(--vc-fg-2);
    font-size: 14px;
}
body.vc .card-sidebar .list-group-item:hover { background: var(--vc-bg-hover); color: var(--vc-fg); text-decoration: none; }
body.vc .card-sidebar .list-group-item.active { background: var(--vc-bg-active); color: var(--vc-fg); font-weight: 500; }
body.vc .card-sidebar .list-group-item .badge { background: var(--vc-bg-hover); color: var(--vc-muted); }
body.vc .card-sidebar .sidebar-menu-item-icon { color: var(--vc-subtle); width: 16px; }
body.vc .card-sidebar .list-group-item.active .sidebar-menu-item-icon { color: var(--vc-fg); }
body.vc .card-sidebar .card-footer { background: transparent; border-top: 1px solid var(--vc-border); padding: 12px 16px; }
body.vc .card-sidebar .card-footer .btn { width: 100%; }

/* --------------------------------------------------------------------------
   Dashboard tiles
   -------------------------------------------------------------------------- */
body.vc .tiles {
    background: var(--vc-bg);
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius-lg);
    box-shadow: var(--vc-shadow-card);
    overflow: hidden;
}
body.vc .tiles .row > div + div .tile { border-left: 1px solid var(--vc-border); }
body.vc .tiles .tile {
    position: relative;
    display: block;
    height: 100%;
    padding: 20px 20px 18px;
    background: var(--vc-bg);
    border: 0;
    color: var(--vc-fg);
    transition: background .15s ease;
}
body.vc .tiles .tile:hover { background: var(--vc-bg-subtle); text-decoration: none; }
body.vc .tiles .tile i {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 14px;
    color: var(--vc-subtle);
    opacity: 1;
}
body.vc .tiles .tile .stat {
    margin-top: 22px;
    font-size: 32px;
    font-weight: 600;
    letter-spacing: -0.04em;
    line-height: 1;
    color: var(--vc-fg);
    font-variant-numeric: tabular-nums;
}
body.vc .tiles .tile .title {
    position: absolute;
    top: 18px;
    left: 20px;
    font-size: 13px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--vc-muted);
}
body.vc .tiles .tile .highlight { display: none; }
@media (max-width: 1199.98px) {
    body.vc .tiles .row > div:nth-child(3) .tile { border-left: 0; }
    body.vc .tiles .row > div:nth-child(n+3) .tile { border-top: 1px solid var(--vc-border); }
}

body.vc .client-home-cards .card { margin-bottom: 24px; }
body.vc .client-home-cards .card-header .btn { margin-top: -3px; }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
body.vc .btn {
    font-family: var(--vc-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 20px;
    padding: 7px 14px;
    border-radius: var(--vc-radius);
    border: 1px solid transparent;
    box-shadow: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
body.vc .btn:focus, body.vc .btn.focus { box-shadow: var(--vc-ring); }
body.vc .btn-sm, body.vc .btn-group-sm > .btn { font-size: 13px; padding: 5px 10px; line-height: 20px; }
body.vc .btn-xs { font-size: 12px; padding: 2px 8px; line-height: 18px; border-radius: var(--vc-radius-sm); }
body.vc .btn-lg, body.vc .btn-group-lg > .btn { font-size: 15px; padding: 11px 18px; line-height: 22px; border-radius: var(--vc-radius-md); }

body.vc .btn-primary,
body.vc .btn-success,
body.vc .btn-info,
body.vc .btn-dark,
body.vc .btn-checkout,
body.vc #main-body .btn-primary {
    background: var(--vc-btn);
    border-color: var(--vc-btn);
    color: var(--vc-inverse) !important;
}
body.vc .btn-primary:hover, body.vc .btn-success:hover, body.vc .btn-info:hover, body.vc .btn-dark:hover, body.vc .btn-checkout:hover,
body.vc .btn-primary:not(:disabled):not(.disabled):active, body.vc .btn-primary:not(:disabled):not(.disabled).active,
body.vc .btn-success:not(:disabled):not(.disabled):active, body.vc .btn-info:not(:disabled):not(.disabled):active {
    background: var(--vc-btn-hover);
    border-color: var(--vc-btn-hover);
    color: var(--vc-inverse);
    text-decoration: none;
}

body.vc .btn-default,
body.vc .btn-secondary,
body.vc .btn-light,
body.vc .btn-outline-primary,
body.vc .btn-outline-secondary,
body.vc .btn-outline-dark,
body.vc .btn-outline-light,
body.vc .btn-outline-info,
body.vc .btn-outline-success,
body.vc #main-body .btn-outline-primary {
    background: var(--vc-bg);
    border-color: var(--vc-border);
    color: var(--vc-fg);
}
body.vc .btn-default:hover, body.vc .btn-secondary:hover, body.vc .btn-light:hover,
body.vc .btn-outline-primary:hover, body.vc .btn-outline-secondary:hover, body.vc .btn-outline-dark:hover,
body.vc .btn-outline-light:hover, body.vc .btn-outline-info:hover, body.vc .btn-outline-success:hover,
body.vc #main-body .btn-outline-primary:hover,
body.vc .btn-default:not(:disabled):not(.disabled).active, body.vc .btn-default:not(:disabled):not(.disabled):active,
body.vc .btn-outline-primary:not(:disabled):not(.disabled).active, body.vc .btn-outline-primary:not(:disabled):not(.disabled):active {
    background: var(--vc-bg-hover);
    border-color: var(--vc-border);
    color: var(--vc-fg);
    text-decoration: none;
}

body.vc .btn-danger { background: var(--vc-red); border-color: var(--vc-red); color: #fff; }
body.vc .btn-danger:hover { background: var(--vc-red-hover); border-color: var(--vc-red-hover); color: #fff; }
body.vc .btn-outline-danger { background: var(--vc-bg); border-color: var(--vc-border); color: var(--vc-red-text); }
body.vc .btn-outline-danger:hover { background: var(--vc-red-bg); border-color: var(--vc-red-border); color: var(--vc-red-text); }
body.vc .btn-warning { background: var(--vc-amber); border-color: var(--vc-amber); color: #1a1a1a; }
body.vc .btn-outline-warning { background: var(--vc-bg); border-color: var(--vc-border); color: var(--vc-amber-text); }

body.vc .btn-link { color: var(--vc-fg); padding-left: 0; padding-right: 0; }
body.vc .btn-link:hover { color: var(--vc-fg); }
body.vc .btn.disabled, body.vc .btn:disabled { opacity: 1; background: var(--vc-bg-hover); border-color: var(--vc-border); color: var(--vc-subtle); cursor: not-allowed; }

body.vc .btn-group > .btn:not(:first-child) { margin-left: -1px; }

/* --------------------------------------------------------------------------
   Forms
   -------------------------------------------------------------------------- */
body.vc label { font-size: 13px; font-weight: 500; color: var(--vc-fg-2); margin-bottom: 6px; }
body.vc .form-control,
body.vc .custom-select,
body.vc select.form-control,
body.vc .dataTables_wrapper .dataTables_filter input,
body.vc .dataTables_wrapper .dataTables_length select {
    height: 40px;
    padding: 0 12px;
    font-family: var(--vc-font);
    font-size: 14px;
    color: var(--vc-fg);
    background-color: var(--vc-bg);
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
body.vc textarea.form-control { height: auto; padding: 10px 12px; }
body.vc .form-control-sm, body.vc .custom-select-sm { height: 32px; font-size: 13px; padding: 0 10px; }
body.vc .form-control-lg { height: 48px; font-size: 16px; }
body.vc .form-control:hover, body.vc .custom-select:hover { border-color: var(--vc-border-hover); }
body.vc .form-control:focus, body.vc .custom-select:focus {
    border-color: transparent;
    box-shadow: var(--vc-ring);
    outline: none;
}
body.vc .form-control::placeholder { color: var(--vc-subtle); }
body.vc .form-control:disabled, body.vc .form-control[readonly] { background: var(--vc-bg-subtle); color: var(--vc-muted); }
body.vc .is-invalid, body.vc .has-error .form-control { border-color: var(--vc-red) !important; }
body.vc .is-invalid:focus { box-shadow: 0 0 0 1px var(--vc-red), 0 0 0 4px rgba(229, 72, 77, .16) !important; }
body.vc .invalid-feedback, body.vc .field-error-msg { color: var(--vc-red-text); font-size: 13px; }
body.vc .form-text, body.vc .help-block { color: var(--vc-muted); font-size: 13px; }

body.vc .input-group-text {
    background: var(--vc-bg-subtle);
    border: 1px solid var(--vc-border);
    color: var(--vc-muted);
    font-size: 14px;
    border-radius: var(--vc-radius);
}
body.vc .input-group > .form-control:focus { z-index: 3; }
body.vc .input-group .btn { height: 40px; }
body.vc .input-group-sm .btn, body.vc .input-group-sm .form-control { height: 32px; }

body.vc .custom-control-label::before { border-color: var(--vc-border-strong); background: var(--vc-bg); box-shadow: none; }
body.vc .custom-control-input:checked ~ .custom-control-label::before { background: var(--vc-fg); border-color: var(--vc-fg); }
body.vc .custom-control-input:focus ~ .custom-control-label::before { box-shadow: var(--vc-ring); }
body.vc input[type="checkbox"], body.vc input[type="radio"] { accent-color: var(--vc-fg); }

/* iCheck (utilisé par WHMCS) */
body.vc .icheckbox_square-blue, body.vc .iradio_square-blue { filter: grayscale(1) contrast(1.6) brightness(.6); }

/* --------------------------------------------------------------------------
   Tables & DataTables
   -------------------------------------------------------------------------- */
body.vc .table { color: var(--vc-fg); margin-bottom: 0; }
body.vc .table th, body.vc .table td { border-top: 1px solid var(--vc-border); padding: 12px 16px; vertical-align: middle; }
body.vc .table thead th {
    background: var(--vc-bg-subtle);
    border-top: 0;
    border-bottom: 1px solid var(--vc-border);
    color: var(--vc-muted);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}
body.vc .table-striped tbody tr:nth-of-type(odd) { background: transparent; }
body.vc .table-hover tbody tr:hover, body.vc .table-list > tbody > tr:hover { background: var(--vc-bg-subtle); cursor: pointer; }
body.vc .table-list { border: 0 !important; }
body.vc .table-list > tbody > tr > td { background: transparent !important; border-color: var(--vc-border) !important; }
body.vc .table-list > thead > tr > th { background: var(--vc-bg-subtle) !important; border-color: var(--vc-border) !important; color: var(--vc-muted) !important; }
body.vc .table-list > thead > tr > th.sorting::after,
body.vc .table-list > thead > tr > th.sorting_asc::after,
body.vc .table-list > thead > tr > th.sorting_desc::after { color: var(--vc-subtle); }
body.vc .table-container, body.vc .table-responsive {
    background: var(--vc-bg);
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius-lg);
    overflow: hidden;
}
body.vc .card .table-container, body.vc .card .table-responsive { border: 0; border-radius: 0; }

body.vc .dataTables_wrapper .listtable { border: 0; }
body.vc .dataTables_wrapper .dataTables_info { color: var(--vc-muted); font-size: 13px; padding: 14px 16px; }
body.vc .dataTables_wrapper .dataTables_filter { padding: 12px 16px 0; }
body.vc .dataTables_wrapper .dataTables_length { padding: 12px 16px; color: var(--vc-muted); font-size: 13px; }
body.vc .dataTables_wrapper .dataTables_length select { height: 32px; width: auto; display: inline-block; padding: 0 28px 0 10px; }
body.vc .dataTables_wrapper .dataTables_filter label { position: relative; margin: 0; }
body.vc .dataTables_wrapper .dataTables_filter label .form-control,
body.vc .dataTables_wrapper .dataTables_filter input {
    height: 32px;
    padding: 0 10px 0 32px !important;
    font-size: 13px;
    background: var(--vc-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%238f8f8f' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='6' cy='6' r='4.75'/%3E%3Cpath d='m9.5 9.5 3.25 3.25'/%3E%3C/svg%3E") no-repeat 11px center !important;
}
body.vc .dataTables_wrapper .dataTables_paginate { padding: 10px 16px; }

/* --------------------------------------------------------------------------
   Pagination
   -------------------------------------------------------------------------- */
body.vc .pagination { gap: 4px; }
body.vc .page-link {
    min-width: 32px;
    height: 32px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: var(--vc-radius) !important;
    background: transparent;
    color: var(--vc-muted);
    font-size: 13px;
    font-weight: 500;
    margin: 0 !important;
}
body.vc .page-link:hover { background: var(--vc-bg-hover); color: var(--vc-fg); border-color: transparent; }
body.vc .page-item.active .page-link { background: var(--vc-bg); border-color: var(--vc-border); color: var(--vc-fg); box-shadow: var(--vc-shadow-sm); }
body.vc .page-item.disabled .page-link { background: transparent; color: var(--vc-border-strong); }

/* --------------------------------------------------------------------------
   Badges / status
   -------------------------------------------------------------------------- */
body.vc .badge, body.vc .label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
    text-transform: none;
    vertical-align: middle;
    background: var(--vc-bg-hover);
    color: var(--vc-fg-2);
}
body.vc .badge-primary, body.vc .badge-dark { background: var(--vc-fg); color: #fff; }
body.vc .badge-info { background: var(--vc-blue-bg); color: var(--vc-blue-text); }
body.vc .badge-success { background: var(--vc-green-bg); color: var(--vc-green-text); }
body.vc .badge-warning { background: var(--vc-amber-bg); color: var(--vc-amber-text); }
body.vc .badge-danger { background: var(--vc-red-bg); color: var(--vc-red-text); }

/* Statuts WHMCS : span.label.status.status-xxx */
body.vc :where(.label.status, span.status) { background: var(--vc-bg-hover) !important; color: var(--vc-fg-2) !important; border: 0 !important; }
body.vc :where(.label.status, span.status)::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: .9;
}
body.vc .status-active, body.vc .status-paid, body.vc .status-open, body.vc .status-accepted, body.vc .status-completed, body.vc .status-delivered, body.vc .status-answered {
    background: var(--vc-green-bg) !important; color: var(--vc-green-text) !important;
}
body.vc .status-pending, body.vc .status-pending-transfer, body.vc .status-pendingtransfer, body.vc .status-pending-registration,
body.vc .status-in-progress, body.vc .status-customer-reply, body.vc .status-on-hold, body.vc .status-onhold, body.vc .status-draft, body.vc .status-payment-pending {
    background: var(--vc-amber-bg) !important; color: var(--vc-amber-text) !important;
}
body.vc .status-unpaid, body.vc .status-overdue, body.vc .status-suspended, body.vc .status-fraud, body.vc .status-collections,
body.vc .status-expired, body.vc .status-dead, body.vc .status-lost {
    background: var(--vc-red-bg) !important; color: var(--vc-red-text) !important;
}
body.vc .status-cancelled, body.vc .status-terminated, body.vc .status-closed, body.vc .status-refunded,
body.vc .status-transferred-away, body.vc .status-redemption, body.vc .status-grace {
    background: var(--vc-bg-hover) !important; color: var(--vc-muted) !important;
}

body.vc .label-success, body.vc .label-active { background: var(--vc-green-bg); color: var(--vc-green-text); }
body.vc .label-warning, body.vc .label-pending { background: var(--vc-amber-bg); color: var(--vc-amber-text); }
body.vc .label-danger, body.vc .label-suspended { background: var(--vc-red-bg); color: var(--vc-red-text); }
body.vc .label-info { background: var(--vc-blue-bg); color: var(--vc-blue-text); }
body.vc .label-default, body.vc .label-secondary { background: var(--vc-bg-hover); color: var(--vc-muted); }
body.vc .div-service-item { border-color: var(--vc-border) !important; }
body.vc .div-service-item:hover { background: var(--vc-bg-subtle); }
body.vc .div-service-name .font-weight-bold { font-weight: 500 !important; color: var(--vc-fg); }
body.vc .div-service-name .text-domain { color: var(--vc-muted); font-family: var(--vc-mono); font-size: 12px; }

/* --------------------------------------------------------------------------
   Détail d'un service (clientareaproductdetails)
   -------------------------------------------------------------------------- */
body.vc .product-details .product-status {
    position: relative;
    background: var(--vc-bg) !important;
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius-lg);
    overflow: hidden;
}
body.vc .product-details div.product-icon {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: 24px;
    text-align: left !important;
    font-size: 16px;
    background:
        radial-gradient(circle at 1px 1px, rgba(0, 0, 0, .06) 1px, transparent 0) 0 0 / 16px 16px,
        var(--vc-bg-subtle);
    border-radius: 0;
}
body.vc .product-details div.product-icon .fa-stack { width: 40px; height: 40px; line-height: 40px; margin-bottom: 14px; font-size: 16px; }
body.vc .product-details div.product-icon .fa-stack-2x { font-size: 40px; color: var(--vc-fg); }
body.vc .product-details div.product-icon .fa-stack-1x { line-height: 40px; font-size: 16px; }
body.vc .product-details div.product-icon h3 { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
body.vc .product-details div.product-icon h4 { margin: 0; font-size: 14px; font-weight: 400; color: var(--vc-muted); letter-spacing: 0; }
body.vc .product-details .product-status-text {
    position: absolute;
    top: 20px;
    right: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    text-transform: none;
    background: var(--vc-bg-hover);
    color: var(--vc-muted);
}
body.vc .product-details .product-status-text::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
body.vc .product-status-active .product-status-text { background: var(--vc-green-bg); color: var(--vc-green-text); }
body.vc .product-status-pending .product-status-text { background: var(--vc-amber-bg); color: var(--vc-amber-text); }
body.vc .product-status-suspended .product-status-text,
body.vc .product-status-fraud .product-status-text { background: var(--vc-red-bg); color: var(--vc-red-text); }

body.vc .product-details .col-md-6.text-center { text-align: left !important; color: var(--vc-fg); }
body.vc .product-details .col-md-6.text-center h4 {
    margin: 18px 0 2px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--vc-muted);
}
body.vc .product-details .col-md-6.text-center h4:first-child { margin-top: 4px; }
body.vc .product-actions-wrapper .btn-danger {
    background: var(--vc-bg);
    border-color: var(--vc-border);
    color: var(--vc-red-text) !important;
}
body.vc .product-actions-wrapper .btn-danger:hover { background: var(--vc-red-bg); border-color: var(--vc-red-border); }
body.vc div.product-details-tab-container {
    border: 1px solid var(--vc-border);
    border-top: 0;
    border-radius: 0 0 var(--vc-radius-lg) var(--vc-radius-lg);
    background: var(--vc-bg) !important;
}

/* --------------------------------------------------------------------------
   Alerts
   -------------------------------------------------------------------------- */
body.vc .alert {
    border-radius: var(--vc-radius-md);
    border: 1px solid var(--vc-border);
    background: var(--vc-bg);
    color: var(--vc-fg-2);
    padding: 12px 16px;
    font-size: 14px;
}
body.vc .alert-info { background: var(--vc-blue-bg); border-color: var(--vc-blue-border); color: var(--vc-blue-text); }
body.vc .alert-success { background: var(--vc-green-bg); border-color: var(--vc-green-border); color: var(--vc-green-text); }
body.vc .alert-warning { background: var(--vc-amber-bg); border-color: var(--vc-amber-border); color: var(--vc-amber-text); }
body.vc .alert-danger { background: var(--vc-red-bg); border-color: var(--vc-red-border); color: var(--vc-red-text); }
body.vc .alert a, body.vc .alert .alert-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
body.vc .alert-dismissible .close { padding: 10px 14px; }

/* Bandeau "Dev License" injecté par WHMCS */
body.vc .alert[style*="#ffffd2"], body.vc div[style*="ffffd2"] {
    background: var(--vc-amber-bg) !important;
    border: 1px solid var(--vc-amber-border) !important;
    border-radius: var(--vc-radius-md) !important;
    color: var(--vc-amber-text) !important;
    font-size: 13px !important;
    padding: 10px 16px !important;
}

/* --------------------------------------------------------------------------
   Dropdowns, popovers, tooltips
   -------------------------------------------------------------------------- */
body.vc .dropdown-menu {
    min-width: 220px;
    padding: 6px;
    margin-top: 6px;
    border: 0;
    border-radius: var(--vc-radius-lg);
    background: var(--vc-bg);
    box-shadow: var(--vc-shadow-menu);
    font-size: 14px;
}
body.vc .dropdown-menu li.dropdown-item { padding: 0; background: transparent; }
body.vc .dropdown-menu .dropdown-item,
body.vc .dropdown-menu li.dropdown-item > a {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 0 10px !important;
    border-radius: var(--vc-radius);
    color: var(--vc-fg-2);
    white-space: nowrap;
}
body.vc .dropdown-menu li.dropdown-item > a.dropdown-item { padding: 0 10px !important; }
body.vc .dropdown-menu .dropdown-item:hover,
body.vc .dropdown-menu .dropdown-item:focus,
body.vc .dropdown-menu li.dropdown-item > a:hover { background: var(--vc-bg-hover); color: var(--vc-fg); text-decoration: none; }
body.vc .dropdown-menu .dropdown-item.active, body.vc .dropdown-menu .dropdown-item:active { background: var(--vc-bg-active); color: var(--vc-fg); }
body.vc .dropdown-menu li.dropdown-item > a.dropdown-item:hover { background: var(--vc-bg-hover); }
body.vc .dropdown-divider { margin: 6px -6px; border-color: var(--vc-border); }

body.vc .popover {
    border: 0;
    border-radius: var(--vc-radius-lg);
    box-shadow: var(--vc-shadow-menu);
    font-family: var(--vc-font);
}
body.vc .popover .arrow { display: none; }
body.vc .popover-header { background: var(--vc-bg); border-bottom: 1px solid var(--vc-border); font-size: 14px; font-weight: 600; }
body.vc .popover-user-notifications { min-width: 320px; }
body.vc .popover-user-notifications .popover-body { padding: 6px; }
body.vc .client-alerts { margin: 0; padding: 0; list-style: none; }
body.vc .client-alerts li a { display: flex; gap: 10px; padding: 10px; border-radius: var(--vc-radius); color: var(--vc-fg-2); }
body.vc .client-alerts li a:hover { background: var(--vc-bg-hover); text-decoration: none; }
body.vc .client-alerts li.none { padding: 18px 10px; color: var(--vc-muted); text-align: center; }

body.vc .tooltip { font-family: var(--vc-font); font-size: 12px; }
body.vc .tooltip-inner { background: var(--vc-fg); color: #fff; border-radius: var(--vc-radius); padding: 6px 10px; font-weight: 500; }
body.vc .bs-tooltip-bottom .arrow::before, body.vc .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { border-bottom-color: var(--vc-fg); }
body.vc .bs-tooltip-top .arrow::before, body.vc .bs-tooltip-auto[x-placement^="top"] .arrow::before { border-top-color: var(--vc-fg); }

/* --------------------------------------------------------------------------
   Modals
   -------------------------------------------------------------------------- */
body.vc .modal-backdrop.show { opacity: 1; background: rgba(0, 0, 0, .3); -webkit-backdrop-filter: blur(1px); backdrop-filter: blur(1px); }
body.vc .modal-content { border: 0; border-radius: var(--vc-radius-lg); box-shadow: var(--vc-shadow-modal); overflow: hidden; }
body.vc .modal-header { border-bottom: 1px solid var(--vc-border); padding: 20px 24px; }
body.vc .modal-title { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
body.vc .modal-body { padding: 24px; }
body.vc .modal-footer { border-top: 1px solid var(--vc-border); background: var(--vc-bg-subtle); padding: 14px 24px; }
body.vc .close { color: var(--vc-muted); text-shadow: none; opacity: 1; font-weight: 400; }
body.vc .close:hover { color: var(--vc-fg); }

body.vc .modal-localisation .modal-content { background: var(--vc-bg); }
body.vc .modal-localisation .modal-body { color: var(--vc-fg); }
body.vc .modal-localisation .close { color: var(--vc-muted) !important; }
body.vc .modal-localisation .item-selector .item {
    display: block;
    margin-bottom: 8px;
    padding: 10px 12px;
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius);
    background: var(--vc-bg);
    color: var(--vc-fg-2);
}
body.vc .modal-localisation .item-selector .item:hover { border-color: var(--vc-border-hover); text-decoration: none; }
body.vc .modal-localisation .item-selector .item.active { border-color: var(--vc-fg); background: var(--vc-fg); color: #fff; }

/* --------------------------------------------------------------------------
   Nav tabs / pills (contenu)
   -------------------------------------------------------------------------- */
body.vc .nav-tabs { border-bottom: 1px solid var(--vc-border); gap: 4px; }
body.vc .nav-tabs .nav-link {
    border: 0;
    border-radius: 0;
    margin-bottom: -1px;
    padding: 10px 12px;
    color: var(--vc-muted);
    background: transparent;
    border-bottom: 2px solid transparent;
}
body.vc .nav-tabs .nav-link:hover { color: var(--vc-fg); text-decoration: none; }
body.vc .nav-tabs .nav-link.active, body.vc .nav-tabs .nav-item.show .nav-link { color: var(--vc-fg); background: transparent; border-bottom-color: var(--vc-fg); }
body.vc .nav-pills .nav-link { border-radius: var(--vc-radius); color: var(--vc-muted); }
body.vc .nav-pills .nav-link.active { background: var(--vc-bg-active); color: var(--vc-fg); }

body.vc .progress { height: 8px; border-radius: 999px; background: var(--vc-bg-active); }
body.vc .progress-bar { background: var(--vc-fg); }
body.vc .list-group-item { border-color: var(--vc-border); }
body.vc .list-group-item.active { background: var(--vc-bg-active); border-color: var(--vc-border); color: var(--vc-fg); }

/* --------------------------------------------------------------------------
   Page d'accueil publique
   -------------------------------------------------------------------------- */
body.vc .home-domain-search {
    position: relative;
    padding: 96px 0 88px;
    background:
        radial-gradient(circle at 1px 1px, rgba(0, 0, 0, .07) 1px, transparent 0) 0 0 / 24px 24px,
        var(--vc-bg);
    border-bottom: 1px solid var(--vc-border);
    color: var(--vc-fg);
}
body.vc .home-domain-search::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 0%, var(--vc-bg) 75%);
    pointer-events: none;
}
body.vc .home-domain-search > .container { position: relative; z-index: 1; }
body.vc .home-domain-search h2 { font-size: 48px; letter-spacing: -0.05em; font-weight: 700; margin-bottom: 28px; }
body.vc .home-domain-search .input-group-wrapper {
    max-width: 680px;
    margin: 0 auto 16px;
    padding: 6px;
    background: var(--vc-bg);
    border: 0;
    border-radius: var(--vc-radius-lg) !important;
    box-shadow: var(--vc-shadow-menu);
}
body.vc .home-domain-search .input-group-wrapper .input-group { border: 0; box-shadow: none; padding: 0; }
body.vc .home-domain-search .input-group-wrapper .form-control { border: 0 !important; box-shadow: none !important; height: 44px; font-size: 16px; }
body.vc .home-domain-search .input-group-wrapper .btn { height: 44px; margin: 0 0 0 6px !important; border-radius: var(--vc-radius-md) !important; }
body.vc #frmDomainHomepage .btn:hover { background: var(--vc-btn-hover); border-color: var(--vc-btn-hover); }
body.vc #frmDomainHomepage #btnTransfer, body.vc #frmDomainHomepage #btnTransfer2 {
    background: var(--vc-bg);
    border-color: var(--vc-border);
    color: var(--vc-fg) !important;
}
body.vc #frmDomainHomepage #btnTransfer:hover, body.vc #frmDomainHomepage #btnTransfer2:hover { background: var(--vc-bg-hover); border-color: var(--vc-border); }
body.vc .home-domain-search .tld-logos, body.vc .home-domain-search p { color: var(--vc-muted); }
body.vc .home-domain-search a { color: var(--vc-fg); }

body.vc.vc-page-homepage section#main-body h2 { text-align: center; font-size: 32px; margin: 16px 0 32px; }
body.vc .card-columns.home, body.vc .card-deck.home { gap: 16px; }
body.vc .home .card, body.vc.vc-page-homepage .card { text-align: left; }
body.vc.vc-page-homepage .card-body { padding: 24px; }
body.vc.vc-page-homepage .card .card-title { font-size: 18px !important; margin-bottom: 6px; }
body.vc.vc-page-homepage .card p { color: var(--vc-muted); }
body.vc.vc-page-homepage .action-icon-btns a {
    background: var(--vc-bg);
    border: 1px solid var(--vc-border);
    border-radius: var(--vc-radius-lg);
    color: var(--vc-fg);
    box-shadow: var(--vc-shadow-card);
    transition: border-color .15s ease, background .15s ease;
}
body.vc.vc-page-homepage .action-icon-btns a:hover { border-color: var(--vc-border-hover); background: var(--vc-bg); text-decoration: none; }
body.vc.vc-page-homepage .action-icon-btns a .ico-container { color: var(--vc-fg); background: transparent; }
body.vc.vc-page-homepage .action-icon-btns a:hover .ico-container { color: var(--vc-fg); }

/* --------------------------------------------------------------------------
   Login / register / password reset
   -------------------------------------------------------------------------- */
body.vc .login-form, body.vc .vc-auth-card { max-width: 420px; margin: 0 auto; }
body.vc.vc-page-login .vc-page-header,
body.vc.vc-page-password-reset-container .vc-page-header { display: none; }
body.vc.vc-page-login section#main-body,
body.vc.vc-page-password-reset-container section#main-body { padding-top: 72px; }
body.vc .login-form .card-body, body.vc.vc-page-login .card-body { padding: 32px; }

/* --------------------------------------------------------------------------
   Tickets / KB / annonces
   -------------------------------------------------------------------------- */
body.vc .ticket-reply, body.vc .view-ticket .card { border-radius: var(--vc-radius-lg); }
body.vc .ticket-reply .posted-by, body.vc .ticket-reply .card-header { background: var(--vc-bg-subtle); }
body.vc .ticket-reply.staff, body.vc .ticket-reply.staff .card-header { border-left: 2px solid var(--vc-fg); }
body.vc .kb-category, body.vc .kbcategories a { color: var(--vc-fg); }
body.vc .announcement-single .title a { color: var(--vc-fg); }

/* --------------------------------------------------------------------------
   Panier (standard_cart / nexus_cart)
   -------------------------------------------------------------------------- */
body.vc #order-standard_cart .header-lined h1,
body.vc #order-nexus_cart h1 { font-size: 32px; font-weight: 600; letter-spacing: -0.04em; border: 0; }
body.vc #order-standard_cart .header-lined { border-bottom: 1px solid var(--vc-border); margin-bottom: 24px; }
body.vc #order-standard_cart .products .product,
body.vc #order-standard_cart .panel,
body.vc #order-standard_cart .order-summary,
body.vc #order-standard_cart .view-cart-items,
body.vc #order-standard_cart .sub-heading {
    border-color: var(--vc-border);
    border-radius: var(--vc-radius-lg);
}
body.vc #order-standard_cart .products .product { background: var(--vc-bg); box-shadow: var(--vc-shadow-card); overflow: hidden; }
body.vc #order-standard_cart .products .product header { background: var(--vc-bg); border-bottom: 1px solid var(--vc-border); color: var(--vc-fg); }
body.vc #order-standard_cart .products .product header span { font-weight: 600; }
body.vc #order-standard_cart .order-summary { background: var(--vc-bg); border: 1px solid var(--vc-border); overflow: hidden; }
body.vc #order-standard_cart .order-summary h2 { background: var(--vc-fg); color: #fff; font-size: 16px; letter-spacing: -0.01em; }
body.vc #order-standard_cart .summary-container { background: var(--vc-bg); }
body.vc #order-standard_cart .view-cart-items-header { background: var(--vc-bg-subtle); color: var(--vc-muted); border-bottom: 1px solid var(--vc-border); }
body.vc #order-standard_cart .sub-heading span { background: var(--vc-bg-page); color: var(--vc-muted); }
body.vc #order-standard_cart .sub-heading { border-top-color: var(--vc-border); }
body.vc #order-standard_cart .domain-checker-container { background: var(--vc-bg); border: 1px solid var(--vc-border); border-radius: var(--vc-radius-lg); }
body.vc #order-standard_cart .btn-checkout, body.vc #order-standard_cart .btn-primary { background: var(--vc-btn); border-color: var(--vc-btn); }
body.vc #order-standard_cart .categories-collapsed, body.vc .cart-sidebar .card { border-radius: var(--vc-radius-lg); }
body.vc .cart-sidebar .list-group-item.active { background: var(--vc-bg-active); color: var(--vc-fg); }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.vc-footer {
    background: var(--vc-bg);
    border-top: 1px solid var(--vc-border);
    padding: 28px 0;
    font-size: 13px;
    color: var(--vc-muted);
}
.vc-footer-row { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.vc-footer-brand { display: flex; align-items: center; gap: 10px; color: var(--vc-muted); }
.vc-footer-brand .vc-brand-mark { width: 16px; height: 16px; }
.vc-footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; margin: 0 auto 0 0; padding: 0; list-style: none; }
.vc-footer-links li { display: inline-flex; }
.vc-footer-links a, .vc-footer-links .btn { color: var(--vc-muted) !important; padding: 0 !important; background: none !important; border: 0 !important; font-size: 13px; }
.vc-footer-links a:hover { color: var(--vc-fg) !important; text-decoration: none !important; }
.vc-locale-btn { display: inline-flex; align-items: center; gap: 8px; height: 32px; }
@media (max-width: 767.98px) {
    .vc-footer-row { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* --------------------------------------------------------------------------
   Divers
   -------------------------------------------------------------------------- */
body.vc #fullpage-overlay { background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
body.vc #fullpage-overlay .msg { color: var(--vc-fg); }
body.vc .w-hidden { display: none; }
body.vc .btn-return-to-admin { border-radius: var(--vc-radius); }
body.vc .header-lined { border-bottom: 1px solid var(--vc-border); }
body.vc .header-lined h1 { font-weight: 600; }

@media (max-width: 767.98px) {
    .vc-page-header { padding: 20px 0 24px; }
    .vc-page-title { font-size: 26px !important; }
    body.vc section#main-body { padding: 20px 0 48px; }
    body.vc .home-domain-search { padding: 56px 0 48px; }
    body.vc .home-domain-search h2 { font-size: 32px; }
}
