/*!
 * Copyright (c) 2026 HOSTEAZA S.R.L.
 * CUI 47595860 · J2023000138182 · Strada Secundara, Nr. 187, Sipotu, Gorj, Romania
 *
 * This stylesheet/script is part of the xServere.NET theme.
 * Exclusive property of HOSTEAZA S.R.L. Official xServere.NET properties only.
 * No copy, resale, sublicense or reuse on another brand without written consent.
 * Full license: https://xservere.net/documents#licenta
 */
﻿/* =========================================================
 * XServere Client Area Ă˘â‚¬â€ť design 1:1 dark shell
 * Forces Nexus/Bootstrap light chrome onto design tokens.
 * ========================================================= */

body.xs-client,
body.xs-client #main-body,
body.xs-client .xs-app,
body.xs-client .xs-main-wrap,
body.xs-client .xs-client-content,
body.xs-client .primary-content {
    background: var(--background) !important;
    color: var(--foreground) !important;
}

/* Guest store / orderform — same dark canvas as the client shell */
body.xs-public,
body.xs-cart,
body.xs-auth:not([data-template="login"]):not([data-template="clientregister"]),
body.xs-public #main-body,
body.xs-cart #main-body,
body.xs-auth #main-body,
html.dark section#main-body {
    background: var(--background, #121722) !important;
    background-color: var(--background, #121722) !important;
    color: var(--foreground, #f4f6fb) !important;
}

body.xs-client * {
    border-color: var(--xs-border);
}

body.xs-client h1,
body.xs-client h2,
body.xs-client h3,
body.xs-client h4,
body.xs-client h5,
body.xs-client h6,
body.xs-client .card-title,
body.xs-client .panel-title,
body.xs-client label,
body.xs-client .form-control-label {
    color: var(--foreground) !important;
}

body.xs-client p,
body.xs-client .text-muted,
body.xs-client small,
body.xs-client .text-muted * {
    color: var(--muted-foreground) !important;
}

/* Gradient cards (hero / promo): always light text — readable in light + dark */
body.xs-client .xs-status-card,
body.xs-client .xs-status-card h1,
body.xs-client .xs-status-card h2,
body.xs-client .xs-status-card h3,
body.xs-client .xs-status-card h4,
body.xs-client .xs-status-card p,
body.xs-client .xs-status-card small,
body.xs-client .xs-status-card .label,
body.xs-client .xs-status-card .value,
body.xs-client .xs-status-card .period,
body.xs-client .xs-status-card a,
body.xs-client .xs-status-card .xs-btn,
body.xs-client .xs-status-card .xs-btn-ghost,
body.xs-client .xs-sidebar-promo,
body.xs-client .xs-sidebar-promo h3,
body.xs-client .xs-sidebar-promo h4,
body.xs-client .xs-sidebar-promo p,
body.xs-client .xs-sidebar-promo small,
body.xs-client .xs-sidebar-promo a,
body.xs-client .xs-sidebar-promo-icon,
body.xs-client .xs-sidebar-promo-icon i {
    color: #fff !important;
}
body.xs-client .xs-status-card p,
body.xs-client .xs-status-card .label,
body.xs-client .xs-status-card .period,
body.xs-client .xs-sidebar-promo p {
    color: rgba(255, 255, 255, 0.9) !important;
}
body.xs-client .xs-status-card .xs-btn-ghost,
body.xs-client .xs-sidebar-promo a {
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: transparent !important;
}
body.xs-client .xs-status-card .xs-btn-ghost:hover,
body.xs-client .xs-sidebar-promo a:hover {
    background: rgba(255, 255, 255, 0.26) !important;
}
body.xs-client .xs-uptime-box {
    color: #fff !important;
}
body.xs-client .xs-sidebar-promo-icon {
    background: rgba(255, 255, 255, 0.16) !important;
}

/* Kill white Bootstrap cards / tables / panels */
body.xs-client .card,
body.xs-client .panel,
body.xs-client .modal-content,
body.xs-client .popover,
body.xs-client .dropdown-menu,
body.xs-client .list-group-item,
body.xs-client .well,
body.xs-client .bg-white,
body.xs-client .bg-light,
body.xs-client .table,
body.xs-client .dataTables_wrapper,
body.xs-client .table-container {
    background-color: var(--card) !important;
    background-image: none !important;
    color: var(--card-foreground) !important;
    border-color: var(--xs-border) !important;
}

body.xs-client .card,
body.xs-client .panel,
body.xs-client .table-container,
body.xs-client .dataTables_wrapper {
    border-radius: 1rem !important;
    box-shadow: var(--shadow-card) !important;
    overflow: hidden;
}

body.xs-client .card-header,
body.xs-client .card-footer,
body.xs-client .panel-heading,
body.xs-client .panel-footer,
body.xs-client .modal-header,
body.xs-client .modal-footer {
    background: transparent !important;
    border-color: var(--xs-border) !important;
    color: var(--foreground) !important;
}

body.xs-client .card-body,
body.xs-client .panel-body,
body.xs-client .modal-body {
    background: transparent !important;
    color: var(--foreground) !important;
}

body.xs-client .list-group-item {
    background: transparent !important;
    color: var(--foreground) !important;
}
body.xs-client .list-group-item:hover,
body.xs-client .list-group-item-action:hover,
body.xs-client .list-group-item.active {
    background: var(--accent) !important;
    color: var(--accent-foreground) !important;
}

body.xs-client .table thead th,
body.xs-client .table td,
body.xs-client .table th {
    border-color: var(--xs-border) !important;
    background: transparent !important;
    color: var(--foreground) !important;
}
body.xs-client .table thead th {
    color: var(--muted-foreground) !important;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}
body.xs-client .table-striped tbody tr:nth-of-type(odd),
body.xs-client .table-hover tbody tr:hover {
    background: color-mix(in oklch, var(--accent) 55%, transparent) !important;
}

body.xs-client .form-control,
body.xs-client .custom-select,
body.xs-client select.form-control,
body.xs-client textarea.form-control,
body.xs-client .input-group-text,
body.xs-client .md-input {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.75rem !important;
    box-shadow: none !important;
}
body.xs-client .form-control:focus {
    border-color: var(--xs-primary) !important;
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-primary) 25%, transparent) !important;
}
body.xs-client .form-control::placeholder {
    color: var(--muted-foreground) !important;
}

body.xs-client .btn-default,
body.xs-client .btn-secondary,
body.xs-client .btn-light {
    background: transparent !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.75rem !important;
}
body.xs-client .btn-default:hover,
body.xs-client .btn-secondary:hover {
    background: var(--accent) !important;
}
body.xs-client .btn-primary {
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    border-radius: 0.75rem !important;
    box-shadow: var(--shadow-glow);
}
body.xs-client .btn-link {
    color: var(--xs-primary) !important;
}

body.xs-client .alert {
    border-radius: 0.75rem !important;
    border-width: 1px !important;
}
body.xs-client .alert-success { background: color-mix(in oklch, var(--xs-success) 15%, var(--card)) !important; color: var(--xs-success) !important; border-color: color-mix(in oklch, var(--xs-success) 35%, transparent) !important; }
body.xs-client .alert-danger,
body.xs-client .alert-error { background: color-mix(in oklch, var(--destructive) 15%, var(--card)) !important; color: var(--destructive) !important; border-color: color-mix(in oklch, var(--destructive) 35%, transparent) !important; }
body.xs-client .alert-warning { background: color-mix(in oklch, var(--xs-warning) 15%, var(--card)) !important; color: var(--xs-warning) !important; border-color: color-mix(in oklch, var(--xs-warning) 35%, transparent) !important; }
body.xs-client .alert-info { background: color-mix(in oklch, var(--xs-info) 15%, var(--card)) !important; color: var(--xs-info) !important; border-color: color-mix(in oklch, var(--xs-info) 35%, transparent) !important; }

body.xs-client .label,
body.xs-client .badge,
body.xs-client .status {
    border-radius: 0.5rem !important;
    font-weight: 600 !important;
}
body.xs-client .label.status-active,
body.xs-client .status-active { background: color-mix(in oklch, var(--xs-success) 15%, transparent) !important; color: var(--xs-success) !important; }
body.xs-client .label.status-pending,
body.xs-client .status-pending { background: color-mix(in oklch, var(--xs-warning) 15%, transparent) !important; color: var(--xs-warning) !important; }
body.xs-client .label.status-suspended,
body.xs-client .label.status-terminated,
body.xs-client .status-unpaid { background: color-mix(in oklch, var(--destructive) 15%, transparent) !important; color: var(--destructive) !important; }

body.xs-client .nav-tabs { border-bottom-color: var(--xs-border) !important; }
body.xs-client .nav-tabs .nav-link {
    color: var(--muted-foreground) !important;
    border: 1px solid transparent !important;
    border-radius: 0.75rem 0.75rem 0 0 !important;
}
body.xs-client .nav-tabs .nav-link.active {
    background: var(--card) !important;
    color: var(--foreground) !important;
    border-color: var(--xs-border) var(--xs-border) var(--card) !important;
}

body.xs-client .dropdown-menu {
    border-radius: 0.75rem !important;
    box-shadow: var(--shadow-card) !important;
    padding: 0.35rem !important;
}
body.xs-client .dropdown-item {
    color: var(--foreground) !important;
    border-radius: 0.5rem !important;
}
body.xs-client .dropdown-item:hover,
body.xs-client .dropdown-item:focus {
    background: var(--accent) !important;
}
body.xs-client .dropdown-divider { border-color: var(--xs-border) !important; }
body.xs-client .dropdown-item.text-danger { color: var(--destructive) !important; }

body.xs-client a:not(.btn):not(.xs-btn):not(.xs-sidebar-nav a):not(.dropdown-item):not(.xs-stat-card):not(.xs-action):not(.xs-qa-item):not(.xs-service-row):not(.xs-panel-btn):not(.xs-svc2-action):not(.xs-crumb a) {
    color: var(--xs-primary);
}
body.xs-client .pagination .page-link {
    background: var(--card) !important;
    border-color: var(--xs-border) !important;
    color: var(--foreground) !important;
}
body.xs-client .pagination .page-item.active .page-link {
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
}

body.xs-client .dataTables_filter input,
body.xs-client .dataTables_length select {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.75rem !important;
}
body.xs-client .dataTables_info,
body.xs-client .dataTables_paginate {
    color: var(--muted-foreground) !important;
}

/* ---- App shell layout ( AppShell) ---- */
body.xs-client #header.header,
body.xs-client .master-breadcrumb,
body.xs-client #main-body > .container > .row > .col-lg-4,
body.xs-client #main-body .sidebar,
body.xs-client #footer.footer:not(.xs-client-footer) {
    display: none !important;
}
body.xs-client #main-body { padding: 0 !important; }
body.xs-client #main-body > .container,
body.xs-client #main-body > .container-fluid {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.xs-client #main-body .row { margin: 0 !important; }
body.xs-client #main-body .primary-content,
body.xs-client #main-body .row > [class*="col-"] {
    max-width: 100% !important;
    flex: 0 0 100% !important;
    padding: 0 !important;
    width: 100% !important;
}

/* CentreazĂ„Â cardurile / conÄŚâ€şinutul ca pe Panou de control */
body.xs-client #main-body .primary-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}
body.xs-client #main-body .primary-content > * {
    width: 100% !important;
    max-width: 1400px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}
body.xs-client #main-body .primary-content > .xs-upgrade,
body.xs-client #main-body .primary-content > .xs-cancel,
body.xs-client #main-body .primary-content > .xs-cancel-page {
    max-width: 680px !important;
}

.xs-app { min-height: 100vh; background: var(--background); color: var(--foreground); }

/* Dark scrollbars — client area (sidebar + content + drawers) */
body.xs-client,
body.xs-client * {
    scrollbar-width: thin;
    scrollbar-color: color-mix(in oklab, var(--primary, #3b82f6) 55%, #64748b)
        color-mix(in oklab, var(--sidebar, #0f172a) 88%, #020617);
}
body.xs-client::-webkit-scrollbar,
body.xs-client *::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
body.xs-client::-webkit-scrollbar-track,
body.xs-client *::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 999px;
}
body.xs-client::-webkit-scrollbar-thumb,
body.xs-client *::-webkit-scrollbar-thumb {
    background: color-mix(in oklab, #64748b 55%, transparent);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
}
body.xs-client::-webkit-scrollbar-thumb:hover,
body.xs-client *::-webkit-scrollbar-thumb:hover {
    background: color-mix(in oklab, var(--primary, #3b82f6) 70%, #94a3b8);
    border: 2px solid transparent;
    background-clip: padding-box;
}
body.xs-client::-webkit-scrollbar-corner,
body.xs-client *::-webkit-scrollbar-corner {
    background: transparent;
}
body.xs-client::-webkit-scrollbar-button,
body.xs-client *::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
}

/* Sidebar / drawer: slightly stronger thumb so it's visible on dark nav */
body.xs-client .xs-sidebar,
body.xs-client .xs-sidebar-inner,
body.xs-client .xs-drawer {
    scrollbar-color: color-mix(in oklab, #64748b 70%, transparent)
        color-mix(in oklab, var(--sidebar, #0f172a) 92%, #020617);
}
body.xs-client .xs-sidebar::-webkit-scrollbar,
body.xs-client .xs-sidebar-inner::-webkit-scrollbar,
body.xs-client .xs-drawer::-webkit-scrollbar {
    width: 8px;
}
body.xs-client .xs-sidebar::-webkit-scrollbar-thumb,
body.xs-client .xs-sidebar-inner::-webkit-scrollbar-thumb,
body.xs-client .xs-drawer::-webkit-scrollbar-thumb {
    background: color-mix(in oklab, #475569 75%, transparent);
    border: 2px solid transparent;
    background-clip: padding-box;
}
body.xs-client .xs-sidebar::-webkit-scrollbar-thumb:hover,
body.xs-client .xs-sidebar-inner::-webkit-scrollbar-thumb:hover,
body.xs-client .xs-drawer::-webkit-scrollbar-thumb:hover {
    background: color-mix(in oklab, var(--primary, #3b82f6) 65%, #64748b);
    border: 2px solid transparent;
    background-clip: padding-box;
}

.xs-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 40;
    width: 264px;
    border-right: 1px solid var(--sidebar-border);
    background: var(--sidebar) !important;
    display: none;
    flex-direction: column;
    overflow: hidden;
}
@media (min-width: 992px) {
    .xs-sidebar { display: flex; }
}
.xs-sidebar-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow-y: auto;
    background: var(--sidebar);
}

.xs-sidebar-logo {
    display: flex;
    height: auto;
    min-height: 92px;
    flex-shrink: 0;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 0.9rem;
    border-bottom: 1px solid var(--sidebar-border);
    text-decoration: none !important;
    color: var(--sidebar-foreground) !important;
    background: transparent !important;
}
.xs-sidebar-logo .xs-logo-img {
    height: 72px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    background: transparent !important;
    box-shadow: none !important;
}
.xs-sidebar-logo .xs-logo-svg-wrap {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    line-height: 0;
}
.xs-sidebar-logo .xs-logo-svg-wrap .xs-brand-logo,
.xs-sidebar-logo .xs-logo-svg-wrap .xs-logo-svg-el {
    display: block;
    width: 100%;
    height: auto;
    max-height: 76px;
}
.xs-sidebar-logo .xs-x {
    font-size: 1.875rem;
    font-weight: 800;
    line-height: 1;
    color: var(--xs-primary);
}
.xs-sidebar-logo .xs-brand-name {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.xs-sidebar-logo .xs-brand-dot {
    color: var(--muted-foreground);
    font-weight: 600;
}

.xs-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1.25rem 1rem;
}
.xs-sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-radius: 0.75rem;
    padding: 0.625rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--sidebar-foreground) !important;
    text-decoration: none !important;
    transition: background-color .15s, color .15s, box-shadow .15s;
}
.xs-sidebar-nav a i {
    width: 18px;
    text-align: center;
    font-size: 1rem;
    opacity: 0.95;
}
.xs-sidebar-nav a:hover { background: var(--sidebar-accent); }
.xs-sidebar-nav a.active {
    background: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    box-shadow: var(--shadow-glow);
}
.xs-sidebar-nav a .xs-nav-label { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.xs-sidebar-badge {
    margin-left: auto;
    border-radius: 0.375rem;
    background: var(--sidebar-accent);
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--muted-foreground);
}
.xs-sidebar-nav a.active .xs-sidebar-badge {
    background: color-mix(in oklch, var(--xs-primary-foreground) 20%, transparent);
    color: var(--xs-primary-foreground);
}
.xs-sidebar-divider {
    margin: 1rem 0;
    border-top: 1px solid var(--sidebar-border);
}
.xs-sidebar-section {
    margin: 0 0 0.25rem;
    padding: 0 0.75rem;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--muted-foreground);
}

.xs-sidebar-promo {
    margin: 0 1rem;
    border-radius: 1rem;
    padding: 1.25rem;
    background-image: var(--gradient-promo);
    color: var(--xs-primary-foreground);
    box-shadow: var(--shadow-glow);
}
.xs-sidebar-promo h3 {
    margin: 1rem 0 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--xs-primary-foreground) !important;
}
.xs-sidebar-promo p {
    margin: 0.375rem 0 0;
    font-size: 0.875rem;
    line-height: 1.35;
    color: color-mix(in oklch, var(--xs-primary-foreground) 80%, transparent) !important;
}
.xs-sidebar-promo-icon {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: color-mix(in oklch, var(--xs-primary-foreground) 15%, transparent);
}
.xs-sidebar-promo a {
    margin-top: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.5rem;
    background: color-mix(in oklch, var(--xs-primary-foreground) 15%, transparent);
    padding: 0.5rem 0.875rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--xs-primary-foreground) !important;
    text-decoration: none !important;
}
.xs-sidebar-promo a:hover {
    background: color-mix(in oklch, var(--xs-primary-foreground) 25%, transparent);
}

.xs-sidebar-company {
    margin: 1rem 1rem 1.5rem;
    border: 1px solid var(--sidebar-border);
    background: var(--card);
    border-radius: 1rem;
    padding: 1.25rem;
}
.xs-sidebar-company h4 {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 700;
}
.xs-sidebar-company p {
    margin: 0.375rem 0 0;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--muted-foreground) !important;
}
.xs-sidebar-socials {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem;
}
.xs-sidebar-socials a {
    display: flex !important;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: var(--sidebar-accent);
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
}
.xs-sidebar-socials a:hover {
    background: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
}

.xs-main-wrap {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--background);
}
@media (min-width: 992px) {
    .xs-main-wrap { margin-left: 264px; }
}

.xs-client-header {
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    height: 72px;
    align-items: center;
    gap: 0.75rem;
    border-bottom: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--background) 85%, transparent) !important;
    backdrop-filter: blur(12px);
    padding: 0 1rem;
}
@media (min-width: 992px) {
    .xs-client-header { padding: 0 2rem; }
}

.xs-client-search {
    flex: 1;
    max-width: 36rem;
    margin: 0 auto;
    position: relative;
}
.xs-client-search input {
    width: 100%;
    height: 44px;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border) !important;
    background: var(--card) !important;
    color: var(--foreground) !important;
    padding: 0 3.5rem 0 2.75rem;
    font-size: 0.875rem;
    outline: none;
}
.xs-client-search input:focus { border-color: var(--xs-primary) !important; }
.xs-client-search .fa-search {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
}
.xs-client-search kbd {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    border: 1px solid var(--xs-border);
    border-radius: 0.375rem;
    padding: 0.15rem 0.5rem;
    font-size: 11px;
    color: var(--muted-foreground);
    display: none;
}
@media (min-width: 576px) {
    .xs-client-search kbd { display: inline-block; }
}

.xs-header-actions {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    position: relative;
}
.xs-icon-btn {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    border: none;
    background: transparent;
    color: var(--muted-foreground);
    cursor: pointer;
    position: relative;
    text-decoration: none !important;
}
.xs-icon-btn:hover {
    background: var(--accent);
    color: var(--foreground);
}
.xs-icon-btn.bordered {
    border: 1px solid var(--xs-border);
}

/* Row actions (⋯) — custom fixed panel */
.xs-row-menu {
    display: inline-block;
    position: relative;
    vertical-align: middle;
    flex-shrink: 0;
}
.xs-row-menu-btn.is-open {
    background: var(--accent);
    color: var(--foreground);
}
.xs-row-menu-panel {
    min-width: 12.75rem;
    padding: 0.4rem 0;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
    z-index: 10050;
}
.xs-row-menu-panel[hidden] {
    display: none !important;
}
.xs-row-menu-panel.is-open {
    display: block !important;
}
.xs-row-menu-item {
    display: flex !important;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 1rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    color: var(--foreground) !important;
    text-decoration: none !important;
    background: transparent !important;
    white-space: nowrap;
}
.xs-row-menu-item i {
    width: 1rem;
    text-align: center;
    color: var(--muted-foreground);
    font-size: 0.8rem;
}
.xs-row-menu-item:hover,
.xs-row-menu-item:focus {
    background: var(--accent) !important;
    color: var(--foreground) !important;
}
.xs-row-menu-item:hover i,
.xs-row-menu-item:focus i {
    color: var(--xs-primary);
}
.xs-row-menu-item.tone-danger {
    color: var(--destructive) !important;
}
.xs-row-menu-item.tone-danger i {
    color: var(--destructive) !important;
}
.xs-row-menu-sep {
    height: 1px;
    margin: 0.35rem 0;
    background: var(--xs-border);
}
.xs-service-row .xs-row-menu {
    margin-left: auto;
}
.xs-notify-dot {
    position: absolute;
    right: 4px;
    top: 4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--xs-primary);
    color: var(--xs-primary-foreground);
    font-size: 10px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.xs-user-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    border-radius: 0.75rem;
    padding: 0.25rem 0.5rem 0.25rem 0.25rem;
    border: none;
    background: transparent;
    color: var(--foreground);
    cursor: pointer;
}
.xs-user-trigger:hover { background: var(--accent); }
.xs-avatar {
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--xs-primary);
    color: var(--xs-primary-foreground);
    font-size: 0.875rem;
    font-weight: 700;
}
.xs-online-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: var(--xs-success);
}

.xs-client-content {
    flex: 1;
    padding: 2rem 1rem;
    background: var(--background);
}
@media (min-width: 992px) {
    .xs-client-content { padding: 2rem; }
}

.xs-client-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    border-top: 1px solid var(--xs-border);
    padding: 1.5rem 1rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
    background: var(--background);
}
@media (min-width: 576px) {
    .xs-client-footer {
        flex-direction: row;
        justify-content: space-between;
        padding-left: 2rem;
        padding-right: 2rem;
    }
}
body.xs-client .xs-client-footer--trust,
.xs-client-footer--trust {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    border-top: 1px solid var(--xs-border);
    padding-top: 0;
    padding-bottom: 1.15rem;
    margin-top: 0;
    position: relative;
    z-index: 0;
    background: transparent;
}
.xs-client-footer a {
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
}
.xs-client-footer > div a {
    margin-left: 1.5rem;
}
.xs-client-footer a:hover { color: var(--foreground) !important; }

/* Homepage: left texts | card | right texts — card half up / half down */
.xs-footer-overlap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.85rem 1rem;
    margin-top: -3.75rem;
    position: relative;
    z-index: 2;
}
.xs-footer-overlap .xs-footer-left {
    justify-self: start;
    align-self: end;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding-bottom: 0.15rem;
    max-width: 17rem;
}
.xs-footer-overlap .xs-footer-links {
    justify-self: end;
    align-self: end;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    padding-bottom: 0.15rem;
    white-space: nowrap;
}
.xs-footer-overlap .xs-footer-links a {
    margin-left: 0 !important;
}
.xs-footer-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
}
.xs-footer-left {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.xs-footer-pay {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.xs-footer-pay-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 1.85rem;
    border-radius: 0.4rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--muted) 30%, transparent);
    color: var(--muted-foreground);
    font-size: 0.95rem;
}
.xs-footer-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1.15rem;
    font-size: 0.82rem;
    font-weight: 600;
}
.xs-footer-bar .xs-footer-links a {
    margin-left: 0 !important;
}

/* Trust card — slightly narrower so footer texts stay on 1 line */
.xs-trust-card {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.85rem 1.15rem;
    width: 100%;
    max-width: 52rem;
    min-width: 0;
    margin-inline: auto;
    border: 1px solid color-mix(in oklch, var(--xs-border) 85%, transparent);
    border-radius: 1rem;
    background: color-mix(in oklch, var(--card) 96%, var(--background));
    box-shadow: 0 12px 32px -24px oklch(0 0 0 / 0.55);
    padding: 0.8rem 1rem;
    justify-self: center;
}
.xs-trust-title {
    margin: 0 0 0.45rem;
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}
.xs-trust-cols {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0.35rem 1.35rem;
    align-items: start;
}
.xs-trust-details {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
.xs-trust-details li {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    line-height: 1.3;
    color: color-mix(in oklch, var(--foreground) 84%, var(--muted-foreground));
    white-space: nowrap;
}
.xs-trust-details i {
    color: var(--xs-primary);
    font-size: 0.68rem;
    width: 0.85rem;
    text-align: center;
    flex-shrink: 0;
}
.xs-trust-badges {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    flex-shrink: 0;
    width: 250px;
}
.xs-trust-badge {
    display: block;
    line-height: 0;
    border-radius: 0.35rem;
    overflow: hidden;
    margin-left: 0 !important;
    background: transparent;
}
.xs-trust-badge--anpc picture,
.xs-trust-badge--anpc img {
    display: block;
    width: 250px;
    height: 50px;
    object-fit: contain;
    background: transparent;
}
.xs-trust-badge-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 0.3rem;
    width: 250px;
}
.xs-trust-badge-row .xs-trust-badge {
    flex: 1 1 0;
    min-width: 0;
}
.xs-trust-badge-row .xs-trust-badge img {
    display: block;
    width: 100%;
    height: 44px;
    object-fit: fill;
    background: transparent;
}
body.xs-client .xs-client-content,
body.xs-client[data-template="clientareahome"] .xs-dash {
    padding-bottom: 5.5rem !important;
}
@media (max-width: 1199.98px) {
    .xs-client-footer--trust {
        padding-left: 0.85rem;
        padding-right: 0.85rem;
        padding-top: 0;
        padding-bottom: 1.15rem;
        border-top: 1px solid var(--xs-border);
        background: var(--background);
    }
    .xs-footer-overlap {
        grid-template-columns: 1fr;
        /* PC-style half-up: only into reserved empty padding below content */
        margin-top: -3.5rem;
        gap: 0.65rem 1rem;
        justify-items: stretch;
        width: 100%;
        max-width: 36rem;
        margin-left: auto;
        margin-right: auto;
        z-index: 2;
    }
    .xs-footer-overlap .xs-trust-card {
        order: 1;
        width: 100%;
        max-width: none;
        /* Same as PC: company | badges */
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.75rem 0.85rem;
        padding: 0.8rem 0.9rem;
        justify-self: stretch;
        border-radius: 1rem;
        box-shadow: 0 12px 32px -24px oklch(0 0 0 / 0.55);
    }
    .xs-footer-overlap .xs-footer-links {
        order: 2;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 0.55rem 0.95rem;
        width: 100%;
        max-width: none;
        padding: 0.35rem 0 0;
        white-space: normal;
        font-size: 0.8rem;
        font-weight: 600;
    }
    /* Text links like desktop — no pill buttons */
    .xs-footer-overlap .xs-footer-links a {
        margin-left: 0 !important;
        display: inline;
        min-height: 0;
        padding: 0;
        border: none;
        border-radius: 0;
        background: transparent;
        color: var(--muted-foreground) !important;
        font-weight: 600;
        line-height: 1.3;
        flex: none;
        max-width: none;
    }
    .xs-footer-overlap .xs-footer-links a:hover {
        color: var(--foreground) !important;
        border-color: transparent;
    }
    .xs-footer-overlap .xs-footer-left {
        order: 3;
        justify-self: stretch;
        align-items: center;
        text-align: center;
        max-width: none;
        width: 100%;
        padding: 0.45rem 0.35rem 0.1rem;
        margin-top: 0;
        border-top: none;
        gap: 0.45rem;
    }
    .xs-footer-overlap .xs-footer-left .mb-0 {
        font-size: 0.78rem;
        line-height: 1.4;
        color: var(--muted-foreground);
    }
    .xs-footer-overlap .xs-footer-pay {
        justify-content: center;
        gap: 0.4rem;
    }
    .xs-trust-title {
        text-align: left;
        margin-bottom: 0.4rem;
    }
    .xs-trust-cols {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.3rem 0.75rem;
        justify-content: stretch;
        width: 100%;
    }
    .xs-trust-details li {
        white-space: normal;
        font-size: 0.7rem;
        line-height: 1.3;
        align-items: flex-start;
    }
    .xs-trust-badges {
        align-items: flex-end;
        width: 168px;
        max-width: 42vw;
        margin-inline: 0;
        padding-top: 0;
        border-top: none;
        gap: 0.3rem;
        flex-shrink: 0;
    }
    .xs-trust-badge--anpc picture,
    .xs-trust-badge--anpc img {
        width: 100%;
        max-width: none;
        height: auto;
        aspect-ratio: 250 / 50;
    }
    .xs-trust-badge-row {
        width: 100%;
        max-width: none;
    }
    /* Empty zone under last content so the pull-up never covers cards */
    body.xs-client .xs-client-content,
    body.xs-client[data-template="clientareahome"] .xs-dash {
        padding-bottom: 5.75rem !important;
    }
}
@media (max-width: 575.98px) {
    body.xs-client .xs-client-content,
    body.xs-client[data-template="clientareahome"] .xs-dash {
        padding-bottom: 6rem !important;
    }
    .xs-footer-overlap {
        margin-top: -3.25rem;
        gap: 0.55rem;
        max-width: 100%;
    }
    .xs-client-footer--trust {
        padding-left: max(0.7rem, env(safe-area-inset-left));
        padding-right: max(0.7rem, env(safe-area-inset-right));
        padding-top: 0;
        padding-bottom: max(1.25rem, calc(0.75rem + env(safe-area-inset-bottom)));
    }
    .xs-footer-overlap .xs-trust-card {
        padding: 0.75rem 0.8rem;
        gap: 0.65rem 0.7rem;
        /* Keep PC company|badges layout; slightly tighter */
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .xs-trust-cols {
        grid-template-columns: 1fr;
        gap: 0.28rem;
    }
    .xs-trust-details li {
        justify-content: flex-start;
        font-size: 0.68rem;
    }
    .xs-trust-badges {
        width: 148px;
        max-width: 40vw;
    }
    .xs-footer-pay-item {
        width: 2.15rem;
        height: 1.9rem;
        font-size: 0.92rem;
        border-radius: 0.45rem;
    }
    .xs-footer-overlap .xs-footer-links {
        gap: 0.45rem 0.75rem;
        font-size: 0.76rem;
    }
    .xs-footer-overlap .xs-footer-links a {
        flex: none;
        min-width: 0;
        max-width: none;
        font-size: 0.76rem;
        padding: 0;
    }
}
@media (min-width: 1200px) and (max-width: 1599.98px) {
    .xs-trust-card {
        max-width: 46rem;
    }
}
@media (min-width: 1600px) {
    .xs-trust-card {
        max-width: 52rem;
    }
    .xs-footer-overlap {
        gap: 1rem 1.35rem;
    }
}

.xs-drawer-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 50;
    background: color-mix(in oklch, var(--background) 70%, transparent);
    backdrop-filter: blur(4px);
}
.xs-drawer-backdrop.open { display: block; }
.xs-drawer {
    position: absolute;
    inset: 0 auto 0 0;
    width: 280px;
    height: 100%;
    background: var(--sidebar);
    border-right: 1px solid var(--sidebar-border);
    overflow-y: auto;
}
@media (min-width: 992px) {
    .xs-drawer-backdrop { display: none !important; }
}

/* ---- Dashboard components ---- */
.xs-dash { max-width: none; margin: 0; width: 100%; }
.xs-dash-title {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0;
    color: var(--foreground);
}
.xs-dash-sub {
    margin-top: 0.5rem;
    color: var(--muted-foreground);
}
.xs-dash-grid {
    margin-top: 2rem;
    display: grid;
    gap: 1.5rem;
}
@media (min-width: 1200px) {
    .xs-dash-grid { grid-template-columns: minmax(0, 1fr) 380px; }
}
.xs-dash-col { display: flex; flex-direction: column; gap: 1.5rem; }

.xs-status-card {
    position: relative;
    overflow: hidden;
    border-radius: 1.5rem;
    padding: 1.75rem;
    background-image: var(--gradient-hero);
    color: var(--xs-primary-foreground);
    box-shadow: 0 12px 28px -18px oklch(0.45 0.2 285 / 0.45);
    isolation: isolate;
}
@media (min-width: 992px) {
    .xs-status-card { padding: 2.25rem; }
}
.xs-status-inner {
    display: grid;
    gap: 1.5rem;
    align-items: center;
}
@media (min-width: 992px) {
    .xs-status-inner { grid-template-columns: 1fr auto 260px; }
}
.xs-status-card h2 {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: clamp(1.25rem, 2.5vw, 1.875rem);
    font-weight: 700;
    color: var(--xs-primary-foreground) !important;
}
.xs-status-card p {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
    line-height: 1.6;
    color: color-mix(in oklch, var(--xs-primary-foreground) 80%, transparent) !important;
}
.xs-status-card .xs-btn-ghost {
    margin-top: 1.5rem;
    background: color-mix(in oklch, var(--xs-primary-foreground) 15%, transparent);
    color: var(--xs-primary-foreground) !important;
}
.xs-uptime-box {
    border-radius: 1rem;
    background: color-mix(in oklch, var(--xs-primary-foreground) 10%, transparent);
    padding: 1.25rem;
    backdrop-filter: blur(4px);
}
.xs-uptime-box .label { font-size: 0.875rem; opacity: 0.8; margin: 0; color: inherit !important; }
.xs-uptime-box .value { margin: 0.25rem 0 0; font-size: 1.875rem; font-weight: 800; color: inherit !important; }
.xs-uptime-box .period { margin: 0.75rem 0 0; font-size: 0.75rem; opacity: 0.7; color: inherit !important; }

.xs-stat-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.875rem;
    position: relative;
    z-index: 1;
}
@media (min-width: 576px) {
    .xs-stat-row { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1200px) {
    .xs-stat-row { grid-template-columns: repeat(5, 1fr); }
}
.xs-stat-card {
    --xs-stat-accent: var(--xs-primary);
    position: relative;
    border: 1px solid var(--xs-border);
    background:
        linear-gradient(180deg, color-mix(in oklch, var(--card) 92%, white 8%) 0%, var(--card) 100%);
    border-radius: 1rem;
    padding: 1.1rem 1.15rem 1rem;
    box-shadow: 0 1px 0 color-mix(in oklch, white 4%, transparent) inset;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    text-decoration: none !important;
    color: inherit !important;
    cursor: pointer;
    transition:
        transform .22s cubic-bezier(.22, 1, .36, 1),
        border-color .22s ease,
        background-color .22s ease,
        box-shadow .22s ease;
}
.xs-stat-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--xs-stat-accent);
    opacity: 0;
    transition: opacity .22s ease;
}
.xs-stat-card::after {
    content: "";
    position: absolute;
    inset: auto -20% -40% -20%;
    height: 70%;
    background: radial-gradient(ellipse at center, color-mix(in oklch, var(--xs-stat-accent) 18%, transparent), transparent 70%);
    opacity: 0;
    pointer-events: none;
    transition: opacity .28s ease;
}
.xs-stat-card[data-tone="primary"],
.xs-stat-card:has(.tone-primary) { --xs-stat-accent: var(--xs-primary); }
.xs-stat-card[data-tone="success"],
.xs-stat-card:has(.tone-success) { --xs-stat-accent: var(--xs-success); }
.xs-stat-card[data-tone="violet"],
.xs-stat-card:has(.tone-violet) { --xs-stat-accent: var(--violet); }
.xs-stat-card[data-tone="warning"],
.xs-stat-card:has(.tone-warning) { --xs-stat-accent: var(--xs-warning); }
.xs-stat-card[data-tone="destructive"],
.xs-stat-card:has(.tone-destructive) { --xs-stat-accent: var(--destructive); }
.xs-stat-card[data-tone="info"],
.xs-stat-card:has(.tone-info) { --xs-stat-accent: var(--xs-info); }

.xs-stat-card:hover {
    transform: translateY(-4px);
    border-color: color-mix(in oklch, var(--xs-stat-accent) 45%, var(--xs-border));
    box-shadow:
        0 10px 24px -16px color-mix(in oklch, var(--xs-stat-accent) 55%, transparent),
        0 1px 0 color-mix(in oklch, white 6%, transparent) inset;
}
.xs-stat-card:hover::before { opacity: 1; }
.xs-stat-card:hover::after { opacity: 1; }
.xs-stat-card:active {
    transform: translateY(-1px);
    transition-duration: .12s;
}

.xs-stat-card .row-top {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    position: relative;
    z-index: 1;
}
.xs-stat-icon {
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    flex-shrink: 0;
    filter: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: transform .22s cubic-bezier(.22, 1, .36, 1), background-color .22s ease;
}
.xs-stat-card:hover .xs-stat-icon {
    transform: scale(1.08);
}
.xs-stat-icon i {
    filter: none !important;
    text-shadow: none !important;
    font-size: 0.95rem;
    transition: transform .22s ease;
}
.xs-stat-card:hover .xs-stat-icon i {
    transform: translateY(-1px);
}
.xs-stat-icon.tone-primary { background: color-mix(in oklch, var(--xs-primary) 14%, transparent); color: var(--xs-primary); }
.xs-stat-icon.tone-success { background: color-mix(in oklch, var(--xs-success) 14%, transparent); color: var(--xs-success); }
.xs-stat-icon.tone-violet { background: color-mix(in oklch, var(--violet) 14%, transparent); color: var(--violet); }
.xs-stat-icon.tone-warning { background: color-mix(in oklch, var(--xs-warning) 14%, transparent); color: var(--xs-warning); }
.xs-stat-icon.tone-destructive { background: color-mix(in oklch, var(--destructive) 14%, transparent); color: var(--destructive); }
.xs-stat-icon.tone-info { background: color-mix(in oklch, var(--xs-info) 14%, transparent); color: var(--xs-info); }
.xs-stat-card .value { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; color: var(--foreground); }
.xs-stat-card .label,
.xs-stat-card .xs-stat-label,
body.xs-client .xs-stat-card span.label {
    display: block !important;
    max-width: none !important;
    margin: 0.2rem 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--muted-foreground) !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}
.xs-stat-card .row-top > span:not(.xs-stat-icon) {
    min-width: 0;
    flex: 1;
}
.xs-stat-card .xs-stat-split {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.7rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--muted-foreground);
    opacity: 0.9;
    white-space: nowrap;
}
.xs-vps-ctrl-msg {
    margin: 0.65rem 0 0;
    font-size: 0.8125rem;
    color: var(--muted-foreground);
}
.xs-vps-ctrl-msg.is-ok { color: var(--xs-success); }
.xs-vps-ctrl-msg.is-err { color: var(--destructive); }
.xs-vps-ctrl.is-busy,
.xs-vps-quick-btn.is-busy {
    opacity: 0.55;
    pointer-events: none;
}
.xs-vps-online.is-pending {
    color: var(--xs-warning);
}
.xs-stat-card .link {
    margin-top: auto;
    padding-top: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--xs-primary) !important;
    text-decoration: none !important;
    position: relative;
    z-index: 1;
}
.xs-stat-card .link i {
    font-size: 0.7rem;
    transition: transform .22s cubic-bezier(.22, 1, .36, 1);
}
.xs-stat-card:hover .link i {
    transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
    .xs-stat-card,
    .xs-stat-card .xs-stat-icon,
    .xs-stat-card .xs-stat-icon i,
    .xs-stat-card .link i {
        transition: none !important;
    }
    .xs-stat-card:hover { transform: none; }
}

.xs-panel {
    border: 1px solid var(--xs-border);
    background: var(--card);
    border-radius: 1rem;
    box-shadow: var(--shadow-card);
    overflow: hidden;
}
.xs-panel:has(.xs-row-menu) {
    overflow: visible;
}
.xs-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem;
}
.xs-panel-head h2,
.xs-panel-head h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
}
.xs-panel-head.bordered { border-bottom: 1px solid var(--xs-border); }
.xs-panel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border-radius: 0.75rem;
    border: 1px solid transparent;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--foreground) !important;
    text-decoration: none !important;
    background: transparent;
    cursor: pointer;
    transition: background-color .15s, color .15s, border-color .15s, opacity .15s;
}
.xs-panel-btn:hover { opacity: 0.92; }
.xs-panel-btn.sm { padding: 0.4rem 0.85rem; font-size: 0.75rem; border-radius: 0.5rem; }

/* Soft colored action buttons */
.xs-panel-btn.tone-primary {
    background: color-mix(in oklch, var(--xs-primary) 16%, transparent);
    border-color: color-mix(in oklch, var(--xs-primary) 28%, transparent);
    color: var(--xs-primary) !important;
}
.xs-panel-btn.tone-primary:hover {
    background: color-mix(in oklch, var(--xs-primary) 24%, transparent);
}
.xs-panel-btn.tone-success {
    background: color-mix(in oklch, var(--xs-success) 16%, transparent);
    border-color: color-mix(in oklch, var(--xs-success) 28%, transparent);
    color: var(--xs-success) !important;
}
.xs-panel-btn.tone-success:hover {
    background: color-mix(in oklch, var(--xs-success) 24%, transparent);
}
.xs-panel-btn.tone-info {
    background: color-mix(in oklch, var(--xs-info) 16%, transparent);
    border-color: color-mix(in oklch, var(--xs-info) 28%, transparent);
    color: var(--xs-info) !important;
}
.xs-panel-btn.tone-info:hover {
    background: color-mix(in oklch, var(--xs-info) 24%, transparent);
}
.xs-panel-btn.tone-warning {
    background: color-mix(in oklch, var(--xs-warning) 16%, transparent);
    border-color: color-mix(in oklch, var(--xs-warning) 28%, transparent);
    color: var(--xs-warning) !important;
}
.xs-panel-btn.tone-warning:hover {
    background: color-mix(in oklch, var(--xs-warning) 24%, transparent);
}
.xs-panel-btn.tone-violet {
    background: color-mix(in oklch, var(--violet) 16%, transparent);
    border-color: color-mix(in oklch, var(--violet) 28%, transparent);
    color: var(--violet) !important;
}
.xs-panel-btn.tone-violet:hover {
    background: color-mix(in oklch, var(--violet) 24%, transparent);
}
.xs-panel-btn.tone-danger {
    background: color-mix(in oklch, var(--destructive) 14%, transparent);
    border-color: color-mix(in oklch, var(--destructive) 28%, transparent);
    color: var(--destructive) !important;
}
.xs-panel-btn.tone-danger:hover {
    background: color-mix(in oklch, var(--destructive) 22%, transparent);
}

.xs-service-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--xs-border);
}
.xs-service-icon {
    display: flex;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: color-mix(in oklch, var(--xs-primary) 15%, transparent);
    color: var(--xs-primary);
}
.xs-service-meta { min-width: 0; flex: 1; }
.xs-service-meta .name {
    margin: 0;
    font-weight: 600;
    color: var(--foreground);
    overflow-wrap: anywhere;
}
.xs-service-meta .domain {
    margin: 0;
    font-size: 0.875rem;
    color: var(--muted-foreground);
}
.xs-service-row > .xs-pill {
    flex-shrink: 0;
    white-space: nowrap;
}
.xs-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 0.5rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
}
.xs-pill.success { background: color-mix(in oklch, var(--xs-success) 15%, transparent); color: var(--xs-success); }
.xs-pill.destructive { background: color-mix(in oklch, var(--destructive) 15%, transparent); color: var(--destructive); }
.xs-pill.info { background: color-mix(in oklch, var(--xs-info) 15%, transparent); color: var(--xs-info); }
.xs-pill.warning { background: color-mix(in oklch, var(--xs-warning) 15%, transparent); color: var(--xs-warning); }
.xs-pill.muted { background: var(--muted); color: var(--muted-foreground); }

/* Ensure page grid stats wrap nicely on list pages */
@media (min-width: 992px) {
    .xs-page-grid .xs-stat-row {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}
@media (min-width: 1400px) {
    .xs-page-grid .xs-stat-row {
        grid-template-columns: repeat(5, 1fr) !important;
    }
}
.xs-due { text-align: right; font-size: 0.875rem; }
.xs-due .cap { margin: 0; color: var(--muted-foreground); }
.xs-due .date { margin: 0; font-weight: 500; color: var(--foreground); }

.xs-actions-grid {
    display: grid;
    gap: 1rem;
    padding: 0 1.5rem 1.5rem;
}
@media (min-width: 576px) {
    .xs-actions-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1400px) {
    .xs-actions-grid { grid-template-columns: repeat(4, 1fr); }
}
.xs-action {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    padding: 1rem;
    text-decoration: none !important;
    color: inherit !important;
    transition: border-color .15s, background-color .15s;
}
.xs-action:hover {
    border-color: var(--xs-primary);
    background: var(--accent);
}
.xs-action-icon {
    display: flex;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
}
.xs-action-icon.primary { background: var(--xs-primary); color: var(--xs-primary-foreground); }
.xs-action-icon.success { background: var(--xs-success); color: var(--success-foreground); }
.xs-action-icon.violet { background: var(--violet); color: var(--xs-primary-foreground); }
.xs-action-icon.warning { background: var(--xs-warning); color: var(--warning-foreground); }
.xs-action .t { display: block; font-size: 0.875rem; font-weight: 600; line-height: 1.2; color: var(--foreground); }
.xs-action .s { display: block; font-size: 0.75rem; color: var(--muted-foreground); }

.xs-widget-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border-bottom: 1px solid var(--xs-border);
    padding: 1.25rem;
}
.xs-widget-head .left { display: flex; align-items: center; gap: 0.75rem; }
.xs-widget-head h2 { margin: 0; font-size: 1rem; font-weight: 700; }
.xs-widget-item {
    padding: 1.25rem;
    border-top: 1px solid var(--xs-border);
}
.xs-widget-item:first-of-type { border-top: 0; }
.xs-announce-item {
    display: flex;
    gap: 0.75rem;
}
.xs-announce-dot {
    margin-top: 0.4rem;
    width: 10px;
    height: 10px;
    flex-shrink: 0;
    border-radius: 999px;
    background: var(--xs-primary);
}
.xs-announce-dot.violet { background: var(--violet); }

/* Page header for list pages */
.xs-page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 2rem;
}
/* Facturi: butonul sus-dreapta; cardurile + Sumar ridicate sub el */
.xs-page-header--invoices {
    align-items: center;
    margin-bottom: 1rem;
}
.xs-page-header--invoices .xs-btn {
    flex-shrink: 0;
    white-space: nowrap;
}
.xs-invoice-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    justify-content: flex-end;
}
.xs-btn-fiscal {
    background: linear-gradient(135deg, color-mix(in oklch, var(--xs-success) 88%, #fff 12%), var(--xs-success)) !important;
    color: var(--success-foreground, #0b1220) !important;
    border: 1px solid color-mix(in oklch, var(--xs-success) 55%, transparent) !important;
    box-shadow: 0 8px 22px -14px color-mix(in oklch, var(--xs-success) 70%, transparent);
    font-weight: 700;
}
.xs-btn-fiscal:hover {
    opacity: 1;
    filter: brightness(1.06);
}
.xs-invoices-layout {
    margin-top: 0;
}
.xs-page-header h1 {
    margin: 0;
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.02em;
}
.xs-crumb {
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
}
.xs-crumb a { color: var(--muted-foreground) !important; text-decoration: none !important; }
.xs-crumb a:hover { color: var(--foreground) !important; }
.xs-crumb .current { color: var(--foreground); }

.xs-page-grid {
    display: grid;
    gap: 1.5rem;
}
@media (min-width: 1200px) {
    .xs-page-grid { grid-template-columns: minmax(0, 1fr) 340px; }
}
.xs-dash-col {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

/* Tabs */
.xs-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    border-bottom: 1px solid var(--xs-border);
    margin-bottom: 1.5rem;
}
.xs-tabs a,
.xs-tabs button {
    appearance: none;
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
    cursor: pointer;
}
.xs-tabs a:hover,
.xs-tabs button:hover { color: var(--foreground) !important; }
.xs-tabs a.active,
.xs-tabs button.active {
    color: var(--foreground) !important;
    border-bottom-color: var(--xs-primary);
}
.xs-tab-panel { display: none; }
.xs-tab-panel.active { display: block; }
/* Search toolbar */
.xs-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--xs-border);
}
.xs-toolbar-search {
    position: relative;
    flex: 1;
    min-width: 200px;
}
.xs-toolbar-search i {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
}
.xs-toolbar-search input {
    width: 100%;
    height: 44px;
    padding: 0 1rem 0 2.75rem;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border);
    background: transparent !important;
    color: var(--foreground) !important;
}

/* Ticket thread */
.xs-ticket-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
}
.xs-ticket-back {
    display: flex;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border);
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
}
.xs-ticket-back:hover { background: var(--accent); color: var(--foreground) !important; }
.xs-ticket-subject {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    background: var(--card);
    box-shadow: var(--shadow-card, none);
}
.xs-ticket-subject-ico {
    display: flex;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-radius: 0.85rem;
    background: color-mix(in oklch, var(--violet) 16%, transparent);
    color: var(--violet);
    font-size: 1.15rem;
}
.xs-ticket-subject h2 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-ticket-subject p {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: var(--muted-foreground);
}
.xs-ticket-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.65rem;
}
.xs-ticket-tag {
    font-size: 0.75rem;
    font-weight: 600;
}
.xs-ticket-tag.dept { color: var(--violet); }
.xs-ticket-tag.prio { color: var(--muted-foreground); }
.xs-ticket-tag.prio.high { color: var(--destructive); }
.xs-ticket-thread {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.xs-ticket-msg {
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    padding: 1rem 1.15rem;
    background: color-mix(in oklch, var(--muted) 40%, transparent);
}
.xs-ticket-msg.staff {
    border-color: color-mix(in oklch, var(--xs-primary) 30%, transparent);
    background: color-mix(in oklch, var(--xs-primary) 6%, transparent);
}
.xs-ticket-msg-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}
.xs-ticket-avatar {
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--muted);
    color: var(--muted-foreground);
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 700;
}
.xs-ticket-msg.staff .xs-ticket-avatar {
    border-radius: 0.75rem;
    background: color-mix(in oklch, var(--xs-primary) 15%, transparent);
    color: var(--xs-primary);
}
.xs-ticket-msg-name {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-ticket-msg-time {
    margin-left: auto;
    font-size: 0.75rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}
.xs-ticket-msg-body {
    margin-top: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--foreground);
}
.xs-ticket-msg-body p:last-child { margin-bottom: 0; }
.xs-ticket-msg-body hr {
    border: 0;
    border-top: 1px solid var(--xs-border);
    margin: 0.75rem 0;
}
.xs-ticket-rating {
    margin-top: 0.85rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--xs-border);
}
.xs-ticket-rating-label {
    margin: 0 0 0.35rem;
    font-size: 0.8125rem;
    color: var(--muted-foreground);
}
.xs-ticket-attach-block {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--xs-border);
    font-size: 0.8125rem;
}
.xs-ticket-attach-block ul {
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}
.xs-ticket-attach-block li { margin-top: 0.35rem; }
.xs-ticket-reply-panel {
    overflow: visible;
}
.xs-ticket-reply-head {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 1.15rem 1.35rem 0.35rem;
}
.xs-ticket-reply-head h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-ticket-reply-ico {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--xs-primary);
    color: var(--xs-primary-foreground);
    flex-shrink: 0;
    font-size: 0.9rem;
    box-shadow: var(--shadow-glow);
}
.xs-ticket-reply-form {
    padding: 0.85rem 1.35rem 1.35rem;
}

/* Markdown editor Ă˘â‚¬â€ť -like dark chrome */
body.xs-client .md-editor,
body.xs-client .xs-md-wrap .md-editor {
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.9rem !important;
    overflow: hidden;
    background: var(--background) !important;
    box-shadow: none !important;
}
body.xs-client .md-editor.active {
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border)) !important;
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-primary) 16%, transparent) !important;
}
body.xs-client .md-editor > .btn-toolbar,
body.xs-client .md-editor .md-header,
body.xs-client .md-editor .btn-toolbar {
    background: color-mix(in oklch, var(--muted) 45%, var(--card)) !important;
    background-color: color-mix(in oklch, var(--muted) 45%, var(--card)) !important;
    border-bottom: 1px solid var(--xs-border) !important;
    padding: 0.45rem 0.55rem !important;
    margin: 0 !important;
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.15rem;
}
body.xs-client .md-editor .btn-toolbar .btn-group {
    margin: 0 0.15rem 0 0 !important;
    display: inline-flex;
    align-items: center;
}
body.xs-client .md-editor .btn-toolbar .btn,
body.xs-client .md-editor .md-controls .btn {
    background: transparent !important;
    border: 0 !important;
    color: var(--muted-foreground) !important;
    border-radius: 0.45rem !important;
    box-shadow: none !important;
    padding: 0.4rem 0.55rem !important;
    min-width: 2rem;
    line-height: 1;
}
body.xs-client .md-editor .btn-toolbar .btn:hover,
body.xs-client .md-editor .btn-toolbar .btn:focus {
    background: var(--accent) !important;
    color: var(--foreground) !important;
}
body.xs-client .md-editor .btn-toolbar .btn.active,
body.xs-client .md-editor .btn-toolbar .btn-primary,
body.xs-client .md-editor .btn-toolbar .btn-info {
    background: color-mix(in oklch, var(--xs-primary) 18%, transparent) !important;
    color: var(--xs-primary) !important;
}
/* Push preview control to the right when possible */
body.xs-client .md-editor .btn-toolbar > .btn-group:last-child {
    margin-left: auto !important;
}
body.xs-client .md-editor > textarea.markdown-editor,
body.xs-client .md-editor > .md-preview,
body.xs-client .md-editor .md-input {
    background: var(--background) !important;
    background-color: var(--background) !important;
    color: var(--foreground) !important;
    border: 0 !important;
    border-radius: 0 !important;
    min-height: 160px;
    padding: 1rem 1.1rem !important;
}
body.xs-client .md-editor .md-footer,
body.xs-client .markdown-editor-status,
.xs-ticket-new .md-editor .md-footer,
.xs-ticket-new .markdown-editor-status,
body.xs-auth .md-editor .md-footer,
body.xs-auth .markdown-editor-status,
.md-editor .md-footer,
.markdown-editor-status {
    display: block !important;
    background: color-mix(in oklch, var(--muted) 70%, var(--card)) !important;
    background-color: color-mix(in oklch, var(--muted) 70%, var(--card)) !important;
    border-top: 1px solid var(--xs-border) !important;
    color: var(--muted-foreground) !important;
    padding: 0.4rem 0.85rem !important;
    font-size: 0.75rem !important;
    text-align: right;
}
body.xs-client .md-editor .md-footer .small-font,
body.xs-client .markdown-editor-status .small-font,
.xs-ticket-new .md-editor .md-footer .small-font,
.xs-ticket-new .markdown-editor-status .small-font,
body.xs-auth .md-editor .md-footer .small-font,
.md-editor .md-footer .small-font,
.markdown-editor-status .small-font,
.md-editor .md-footer .smallfont,
.markdown-editor-status .smallfont {
    color: var(--muted-foreground) !important;
    font-size: 0.75rem !important;
}
html.light .md-editor .md-footer,
html.light .markdown-editor-status {
    background: var(--muted) !important;
    background-color: var(--muted) !important;
}
body.xs-client .md-preview h1,
body.xs-client .md-preview h2,
body.xs-client .md-preview h3,
body.xs-client .md-preview h4,
body.xs-client .markdown-content h1,
body.xs-client .markdown-content h2,
body.xs-client .markdown-content h3,
body.xs-client .markdown-content h4 {
    color: var(--foreground) !important;
}
body.xs-client .md-preview code,
body.xs-client .markdown-content code {
    background: var(--muted) !important;
    color: var(--foreground) !important;
    border-radius: 0.35rem;
    padding: 0.1rem 0.35rem;
}
body.xs-client .md-preview pre,
body.xs-client .markdown-content pre {
    background: var(--muted) !important;
    border: 1px solid var(--xs-border);
    border-radius: 0.65rem;
    padding: 0.75rem 1rem;
}

.xs-md-wrap {
    margin-bottom: 1rem;
}

/* Dropzone â€” dark theme, WHMCS file inputs */
.xs-ticket-dropzone {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border: 1px dashed var(--xs-border);
    border-radius: 1rem;
    background: color-mix(in oklch, var(--muted) 35%, transparent);
    margin-bottom: 1.15rem;
    transition: border-color .15s, background-color .15s;
}
.xs-ticket-dropzone:hover,
.xs-ticket-dropzone.is-dragover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 6%, var(--card));
}
.xs-ticket-dropzone.is-disabled {
    opacity: 0.6;
    pointer-events: none;
}
.xs-drop-main {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
    flex: 1 1 220px;
}
.xs-drop-ico {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    color: var(--xs-primary);
    font-size: 1.35rem;
    flex-shrink: 0;
}
.xs-drop-copy { min-width: 0; text-align: left; }
.xs-drop-copy p {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--muted-foreground);
}
.xs-drop-link {
    color: var(--xs-primary) !important;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}
.xs-drop-link:hover { text-decoration: underline !important; }
.xs-drop-copy small {
    display: block;
    margin-top: 0.25rem;
    color: var(--muted-foreground);
    font-size: 0.75rem;
    opacity: 0.9;
}
.xs-drop-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
}
.xs-file-uploads {
    flex: 1 1 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    /* leave room for the + button so extra pickers line up with the first */
    padding-right: calc(2.5rem + 0.5rem);
    box-sizing: border-box;
}
.xs-file-uploads .xs-drop-actions {
    margin-top: 0;
    justify-content: flex-end;
    width: auto;
}

/* Dark file picker button â€” hide native Browse UI */
.xs-ticket-dropzone .xs-custom-file.custom-file,
body.xs-client .xs-ticket-dropzone .xs-custom-file.custom-file {
    position: relative;
    display: inline-block;
    width: auto !important;
    height: auto !important;
    min-width: 8.5rem;
    margin: 0;
    overflow: hidden;
}
.xs-ticket-dropzone .xs-custom-file .custom-file-input,
body.xs-client .xs-ticket-dropzone .xs-custom-file .custom-file-input {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    cursor: pointer !important;
    z-index: 3 !important;
    font-size: 0 !important;
}
.xs-ticket-dropzone .xs-custom-file .custom-file-label,
body.xs-client .xs-ticket-dropzone .xs-custom-file .custom-file-label {
    position: relative !important;
    z-index: 1 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 8.5rem;
    max-width: 14rem;
    height: auto !important;
    min-height: 2.5rem;
    margin: 0 !important;
    padding: 0.55rem 1rem !important;
    border-radius: 0.75rem !important;
    border: 1px solid var(--xs-border) !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-size: 0.8125rem !important;
    font-weight: 600;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    box-shadow: none !important;
}
.xs-ticket-dropzone .xs-custom-file .custom-file-label::after,
body.xs-client .xs-ticket-dropzone .xs-custom-file .custom-file-label::after {
    display: none !important;
    content: none !important;
    width: 0 !important;
    border: 0 !important;
}
.xs-file-add {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    flex-shrink: 0;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border);
    background: var(--background);
    color: var(--muted-foreground);
    cursor: pointer;
    transition: background-color .15s, color .15s;
}
.xs-file-add:hover:not(:disabled) {
    background: var(--accent);
    color: var(--foreground);
}
.xs-file-add:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.xs-attach-selected {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    flex: 1 1 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.xs-attach-selected[hidden] { display: none !important; }
.xs-attach-selected li {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--xs-border);
    border-radius: 0.75rem;
    background: var(--background);
}
.xs-attach-selected-ico { color: var(--xs-primary); }
.xs-attach-selected-name {
    flex: 1;
    min-width: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--foreground);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.xs-attach-selected-size {
    font-size: 0.75rem;
    color: var(--muted-foreground);
    flex-shrink: 0;
}
.xs-ticket-reply-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
}
.xs-ticket-reply-actions .xs-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}
.xs-btn-send {
    gap: 0.55rem;
    padding-inline: 1.15rem 1rem;
}
@media (max-width: 640px) {
    .xs-ticket-dropzone {
        flex-direction: column;
        align-items: stretch;
    }
    .xs-drop-actions {
        width: 100%;
        justify-content: flex-end;
    }
}
.xs-ticket-attach-list {
    list-style: none;
    margin: 0;
    padding: 0.75rem 1.25rem 1.25rem;
}
.xs-ticket-attach-list li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--xs-border);
}
.xs-ticket-attach-list li:last-child { border-bottom: 0; }
.xs-ticket-attach-ico {
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 0.65rem;
    background: color-mix(in oklch, var(--xs-primary) 12%, transparent);
    color: var(--xs-primary);
    flex-shrink: 0;
}
.xs-ticket-attach-meta {
    flex: 1;
    min-width: 0;
}
.xs-ticket-attach-meta .n {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--foreground);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.xs-ticket-attach-meta .d {
    display: block;
    font-size: 0.75rem;
    color: var(--muted-foreground);
}
.xs-dot {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    margin-right: 0.35rem;
    vertical-align: middle;
    background: var(--muted-foreground);
}
.xs-dot.success { background: var(--xs-success); }
.xs-dot.danger { background: var(--destructive); }
.xs-dot.muted { background: var(--muted-foreground); }
.xs-text-success { color: var(--xs-success) !important; }
.xs-text-danger { color: var(--destructive) !important; }
.xs-text-muted { color: var(--muted-foreground) !important; }
.xs-dl-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.875rem;
    padding: 0.35rem 0;
}
.xs-dl-row dt { margin: 0; color: var(--muted-foreground); font-weight: 400; }
.xs-dl-row dd { margin: 0; font-weight: 600; color: var(--foreground); text-align: right; }

/* Mini activity / security cards */
.xs-mini-grid {
    display: grid;
    gap: 1rem;
    padding: 1.25rem;
}
@media (min-width: 576px) {
    .xs-mini-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1200px) {
    .xs-mini-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
}
.xs-mini-card {
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    padding: 1rem;
}
.xs-mini-card .cap {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    font-size: 0.75rem;
    color: var(--muted-foreground);
}
.xs-mini-card .val {
    margin: 0.5rem 0 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-mini-card .sub {
    margin: 0.15rem 0 0;
    font-size: 0.75rem;
    color: var(--muted-foreground);
}

.xs-sec-level {
    display: grid;
    gap: 1.5rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    border-radius: 1rem;
    padding: 1.5rem;
    box-shadow: var(--shadow-card);
    margin-bottom: 1.5rem;
}
@media (min-width: 992px) {
    .xs-sec-level {
        grid-template-columns: minmax(0, 1.3fr) repeat(4, minmax(0, 1fr));
        align-items: start;
    }
}
.xs-sec-bars {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.75rem;
}
.xs-sec-bars span {
    height: 6px;
    width: 3.5rem;
    border-radius: 999px;
    background: var(--muted);
}
.xs-sec-bars span.on { background: var(--xs-primary); }

.xs-sec-sso-toggle {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.xs-sec-questions-form .form-group {
    margin-bottom: 0.9rem;
}
.xs-twofa-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.xs-twofa-actions .xs-btn {
    width: 100%;
    justify-content: center;
}
.xs-user-security .xs-panel + .xs-panel,
.xs-user-security .xs-dash-col > .xs-panel + .xs-panel {
    margin-top: 0;
}

.xs-list-action {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--xs-border);
}
.xs-list-action:first-of-type { border-top: 0; }
.xs-list-action .ico {
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    flex-shrink: 0;
}
.xs-list-action .body { flex: 1; min-width: 160px; }
.xs-list-action .body .t { margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--foreground); }
.xs-list-action .body .s { margin: 0.15rem 0 0; font-size: 0.75rem; color: var(--muted-foreground); }

.xs-notify-row {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--xs-border);
    cursor: pointer;
    transition: background .15s;
}
.xs-notify-row:hover { background: var(--accent); }
.xs-notify-row:first-of-type { border-top: 0; }
.xs-notify-ico {
    display: flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 0.75rem;
    background: color-mix(in oklch, var(--xs-primary) 15%, transparent);
    color: var(--xs-primary);
    flex-shrink: 0;
}
.xs-notify-ico.sm { width: 32px; height: 32px; border-radius: 0.55rem; font-size: 0.8rem; }
.xs-notify-ico.tone-primary { background: color-mix(in oklch, var(--xs-primary) 15%, transparent); color: var(--xs-primary); }
.xs-notify-ico.tone-violet { background: color-mix(in oklch, var(--violet) 15%, transparent); color: var(--violet); }
.xs-notify-ico.tone-info { background: color-mix(in oklch, var(--xs-info) 15%, transparent); color: var(--xs-info); }
.xs-notify-ico.tone-success { background: color-mix(in oklch, var(--xs-success) 15%, transparent); color: var(--xs-success); }
.xs-notify-ico.tone-warning { background: color-mix(in oklch, var(--xs-warning) 15%, transparent); color: var(--xs-warning); }
.xs-notify-ico.tone-destructive { background: color-mix(in oklch, var(--destructive) 15%, transparent); color: var(--destructive); }
.xs-notify-ico.tone-muted { background: var(--muted); color: var(--muted-foreground); }
.xs-notify-body { flex: 1; min-width: 0; }
.xs-notify-body .t { margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--foreground); }
.xs-notify-body .s { margin: 0.25rem 0 0; font-size: 0.8125rem; color: var(--muted-foreground); }

.xs-notif-inbox { overflow: hidden; }
.xs-notif-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--xs-border);
}
.xs-notif-select {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--foreground);
    cursor: pointer;
    margin: 0;
}
.xs-notif-select input { width: 1rem; height: 1rem; accent-color: var(--xs-primary); }
.xs-notif-selected-count { color: var(--muted-foreground); font-weight: 500; }
.xs-notif-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.xs-notif-item {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--xs-border);
    cursor: pointer;
    transition: background .15s;
}
.xs-notif-item:first-child { border-top: 0; }
.xs-notif-item:hover { background: color-mix(in oklch, var(--accent) 45%, transparent); }
.xs-notif-item.is-unread { background: color-mix(in oklch, var(--xs-primary) 4%, transparent); }
.xs-notif-check { width: 1rem; height: 1rem; accent-color: var(--xs-primary); }
.xs-notif-tag {
    display: inline-block;
    margin-left: 0.35rem;
    border-radius: 0.375rem;
    padding: 0.1rem 0.45rem;
    font-size: 0.6875rem;
    font-weight: 600;
    background: var(--muted);
    color: var(--muted-foreground);
    vertical-align: middle;
}
.xs-notif-title {
    overflow-wrap: anywhere;
}
.xs-notif-aside {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-shrink: 0;
    min-width: 0;
}
.xs-notif-time {
    font-size: 0.75rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}
.xs-notif-unread-dot {
    display: none;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 999px;
    background: var(--xs-primary);
}
.xs-notif-item.is-unread .xs-notif-unread-dot { display: inline-block; }
.xs-notif-empty {
    padding: 2rem 1.25rem;
    text-align: center;
    font-size: 0.875rem;
    color: var(--muted-foreground);
}
.xs-notif-prefs {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem;
}
.xs-notif-pref {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
}
.xs-notif-pref .t { margin: 0; font-size: 0.875rem; font-weight: 600; color: var(--foreground); }
.xs-notif-pref .s { margin: 0.15rem 0 0; font-size: 0.75rem; color: var(--muted-foreground); }
.xs-notif-recent {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1rem 1.25rem 1.25rem;
}
.xs-notif-recent-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.35rem 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    color: inherit;
}
.xs-notif-recent-item .n {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.875rem;
    color: var(--foreground);
}
.xs-notif-recent-item .d {
    font-size: 0.75rem;
    color: var(--muted-foreground);
    white-space: nowrap;
}
.xs-notif-recent-item:hover .n { color: var(--xs-primary); }

.xs-toggle {
    position: relative;
    width: 44px;
    height: 24px;
    border: 0;
    border-radius: 999px;
    background: var(--muted);
    cursor: pointer;
    padding: 2px;
    flex-shrink: 0;
    transition: background .15s;
}
.xs-toggle.on { background: var(--xs-primary); }
.xs-toggle span {
    display: block;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #fff;
    transition: margin .15s;
}
.xs-toggle.on span { margin-left: auto; }

.xs-promo-banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
    padding: 1.75rem;
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    background:
        radial-gradient(ellipse at 100% 0%, color-mix(in oklch, var(--xs-primary) 22%, transparent), transparent 55%),
        var(--card);
    box-shadow: var(--shadow-card);
}
.xs-promo-banner .checks {
    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
    font-size: 0.875rem;
}
.xs-promo-banner .checks li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--muted-foreground);
}
.xs-promo-banner .checks i { color: var(--xs-primary); }

.xs-rail-row {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 0;
    border-top: 1px solid var(--xs-border);
}
.xs-rail-row:first-child { border-top: 0; padding-top: 0; }
.xs-rail-row:last-child { padding-bottom: 0; }

/* Status label remap to pills */
body.xs-client .label.status,
body.xs-client span.label {
    border-radius: 0.5rem !important;
    padding: 0.25rem 0.75rem !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    border: 0 !important;
}
body.xs-client .dataTables_wrapper .dataTables_filter,
body.xs-client .dataTables_wrapper .dataTables_length {
    padding: 0.75rem 1rem 0;
}
body.xs-client .dataTables_wrapper .dataTables_info,
body.xs-client .dataTables_wrapper .dataTables_paginate {
    padding: 0.75rem 1rem 1rem;
}
body.xs-client table.table-list thead th {
    text-transform: uppercase;
    font-size: 0.7rem !important;
    letter-spacing: 0.04em;
    color: var(--muted-foreground) !important;
    font-weight: 600 !important;
}
body.xs-client .btn-primary,
body.xs-client input.btn-primary {
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    border-radius: 0.75rem !important;
    font-weight: 600;
}
body.xs-client .btn-default,
body.xs-client .btn-secondary {
    background: transparent !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.75rem !important;
}
body.xs-client .form-control,
body.xs-client .custom-select,
body.xs-client select.form-control {
    height: 44px;
    border-radius: 0.75rem !important;
    background: transparent !important;
    border-color: var(--xs-border) !important;
    color: var(--foreground) !important;
}
body.xs-client textarea.form-control {
    height: auto;
    min-height: 120px;
}

/* ===== 1:1 primitives ===== */
.xs-sparkline {
    margin-top: 1rem;
    height: 2rem;
    width: 100%;
    display: block;
}
.xs-sparkline polyline { stroke: var(--xs-primary); }
.xs-stat-card[data-tone="success"] .xs-sparkline polyline,
.xs-sparkline[data-tone="success"] polyline { stroke: var(--xs-success); }
.xs-stat-card[data-tone="violet"] .xs-sparkline polyline,
.xs-sparkline[data-tone="violet"] polyline { stroke: var(--violet); }
.xs-stat-card[data-tone="warning"] .xs-sparkline polyline,
.xs-sparkline[data-tone="warning"] polyline { stroke: var(--xs-warning); }
.xs-stat-card[data-tone="destructive"] .xs-sparkline polyline,
.xs-sparkline[data-tone="destructive"] polyline { stroke: var(--destructive); }
.xs-stat-card[data-tone="info"] .xs-sparkline polyline,
.xs-sparkline[data-tone="info"] polyline { stroke: var(--xs-info); }
.xs-stat-card .hint {
    display: block;
    font-size: 0.75rem;
    color: var(--muted-foreground);
    margin-top: 0.15rem;
}

.xs-search-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    border-radius: 1rem;
    box-shadow: var(--shadow-card);
}
.xs-search-toolbar-field {
    position: relative;
    flex: 1;
    min-width: 200px;
}
.xs-search-toolbar-field i {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--muted-foreground);
    pointer-events: none;
    font-size: 0.875rem;
}
.xs-search-toolbar-field input {
    width: 100%;
    height: 44px;
    border: 0 !important;
    background: transparent !important;
    color: var(--foreground) !important;
    padding: 0 1rem 0 2.75rem;
    outline: none;
    font-size: 0.875rem;
}
.xs-search-toolbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 44px;
    padding: 0 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--xs-border);
    background: transparent;
    color: var(--foreground);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
}
.xs-search-toolbar-btn:hover { background: var(--accent); }
.xs-search-toolbar.has-filter .xs-search-toolbar-btn {
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border));
    color: var(--xs-primary);
    background: color-mix(in oklch, var(--xs-primary) 10%, transparent);
}
.xs-filter-dropdown {
    position: relative;
    flex-shrink: 0;
}
.xs-filter-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 0.4rem);
    z-index: 40;
    min-width: 220px;
    padding: 0.4rem;
    border-radius: 0.85rem;
    border: 1px solid var(--xs-border);
    background: var(--popover, var(--card));
    box-shadow: var(--shadow-card);
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.xs-filter-dropdown.open .xs-filter-menu {
    display: flex;
}
.xs-filter-menu[hidden] {
    display: none !important;
}
.xs-filter-option {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    color: var(--foreground);
    font: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.55rem 0.75rem;
    border-radius: 0.55rem;
    cursor: pointer;
}
.xs-filter-option:hover {
    background: var(--accent);
}
.xs-filter-option.active {
    background: color-mix(in oklch, var(--xs-primary) 14%, transparent);
    color: var(--xs-primary);
    font-weight: 600;
}
.xs-filter-chevron {
    font-size: 0.7rem;
    opacity: 0.7;
    transition: transform 0.15s ease;
}
.xs-filter-dropdown.open .xs-filter-chevron {
    transform: rotate(180deg);
}

.xs-data-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    text-align: left;
    font-size: 0.875rem;
}
.xs-data-table thead {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted-foreground);
}
.xs-data-table th {
    padding: 1rem 1.25rem;
    font-weight: 600;
    border-bottom: 1px solid var(--xs-border);
    color: var(--muted-foreground) !important;
}
.xs-data-table td {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--xs-border);
    vertical-align: middle;
    color: var(--foreground);
}
.xs-data-table tbody tr { transition: background .15s; }
.xs-data-table tbody tr:hover { background: color-mix(in oklch, var(--accent) 40%, transparent); }
.xs-data-table .svc-cell {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.xs-data-table .svc-cell .name { display: block; font-weight: 600; color: var(--foreground); }
.xs-data-table .svc-cell .type { display: block; font-size: 0.75rem; color: var(--muted-foreground); }
.xs-data-table .domain-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 500;
    color: var(--xs-primary) !important;
    text-decoration: none !important;
}
.xs-data-table .due-main { display: block; font-weight: 500; }
.xs-data-table .due-sub { display: block; font-size: 0.75rem; color: var(--muted-foreground); }

.xs-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    border-top: 1px solid var(--xs-border);
    padding: 1rem 1.25rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
}
.xs-pagination .pages {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.xs-pagination .pages a,
.xs-pagination .pages span {
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    border: 1px solid var(--xs-border);
    color: var(--foreground) !important;
    text-decoration: none !important;
    font-size: 0.875rem;
    font-weight: 500;
}
.xs-pagination .pages .active {
    background: var(--xs-primary);
    border-color: var(--xs-primary);
    color: var(--xs-primary-foreground) !important;
}
.xs-pagination .pages .disabled {
    opacity: 0.4;
    pointer-events: none;
}
.xs-pagination .pages .ellipsis {
    width: auto;
    min-width: 1.5rem;
    border: 0;
    background: transparent;
    color: var(--muted-foreground) !important;
}
.xs-pagination .pages a:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border));
    color: var(--xs-primary) !important;
}
.xs-pagination .per-page {
    display: none;
    border: 1px solid var(--xs-border);
    border-radius: 0.75rem;
    padding: 0.5rem 0.75rem;
}
@media (min-width: 576px) {
    .xs-pagination .per-page { display: inline-flex; }
}

.xs-pill .dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: currentColor;
}

.xs-qa-list {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem;
}
.xs-qa-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-radius: 0.75rem;
    padding: 0.625rem;
    text-decoration: none !important;
    color: inherit !important;
    transition: background .15s;
}
.xs-qa-item:hover { background: var(--accent); }
.xs-qa-item:hover .xs-qa-arrow { transform: translateX(2px); }
.xs-qa-ico {
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    flex-shrink: 0;
}
.xs-qa-ico.tone-primary { background: color-mix(in oklch, var(--xs-primary) 15%, transparent); color: var(--xs-primary); }
.xs-qa-ico.tone-success { background: color-mix(in oklch, var(--xs-success) 15%, transparent); color: var(--xs-success); }
.xs-qa-ico.tone-violet { background: color-mix(in oklch, var(--violet) 15%, transparent); color: var(--violet); }
.xs-qa-ico.tone-warning { background: color-mix(in oklch, var(--xs-warning) 15%, transparent); color: var(--xs-warning); }
.xs-qa-ico.tone-info { background: color-mix(in oklch, var(--xs-info) 15%, transparent); color: var(--xs-info); }
.xs-qa-text { flex: 1; min-width: 0; }
.xs-qa-text .t { display: block; font-size: 0.875rem; font-weight: 600; line-height: 1.2; color: var(--foreground); }
.xs-qa-text .s { display: block; font-size: 0.75rem; color: var(--muted-foreground); }
.xs-qa-arrow { color: var(--muted-foreground); font-size: 0.75rem; transition: transform .15s; }

.xs-help-cta {
    margin-top: 1rem;
    width: 100%;
    justify-content: center;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary) !important;
}
.xs-help-cta:hover {
    background: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
}

/* Pill tabs ( Tabs) */
.xs-tabs-pill {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.xs-tabs-pill a,
.xs-tabs-pill button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    border: 1px solid var(--xs-border);
    background: transparent;
    color: var(--muted-foreground) !important;
    text-decoration: none !important;
    cursor: pointer;
}
.xs-tabs-pill a:hover,
.xs-tabs-pill button:hover { background: var(--accent); color: var(--foreground) !important; }
.xs-tabs-pill a.active,
.xs-tabs-pill button.active {
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    box-shadow: var(--shadow-glow);
}
.xs-tabs-pill .count {
    border-radius: 0.375rem;
    padding: 0.1rem 0.4rem;
    font-size: 0.75rem;
    background: var(--muted);
}
.xs-tabs-pill a.active .count,
.xs-tabs-pill button.active .count {
    background: color-mix(in oklch, var(--xs-primary-foreground) 20%, transparent);
}

.xs-link-btn {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--xs-primary) !important;
    cursor: pointer;
    text-decoration: none !important;
}
.xs-link-btn:hover { text-decoration: underline !important; }

.xs-promo-3col {
    display: grid;
    gap: 1.5rem;
    align-items: center;
    padding: 1.75rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    border-radius: 1rem;
    box-shadow: var(--shadow-card);
}
@media (min-width: 992px) {
    .xs-promo-3col { grid-template-columns: 1fr 220px 1fr; }
}
.xs-promo-feat {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1rem;
}
.xs-promo-feat:last-child { margin-bottom: 0; }
.xs-promo-feat .ico {
    display: flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in oklch, var(--xs-primary) 15%, transparent);
    color: var(--xs-primary);
    flex-shrink: 0;
}
.xs-promo-feat .t { display: block; font-size: 0.875rem; font-weight: 600; color: var(--foreground); }
.xs-promo-feat .s { display: block; font-size: 0.75rem; color: var(--muted-foreground); }

.xs-hero-protect {
    display: grid;
    gap: 1.5rem;
    padding: 1.75rem;
    border-radius: 1rem;
    background-image: var(--gradient-hero);
    color: var(--xs-primary-foreground);
    box-shadow: var(--shadow-glow);
}
@media (min-width: 992px) {
    .xs-hero-protect { grid-template-columns: 1fr 1fr; align-items: center; }
}
.xs-hero-protect h2 { margin: 0; font-size: 1.5rem; font-weight: 700; color: inherit !important; }
.xs-hero-protect p { margin: 0.5rem 0 0; font-size: 0.875rem; opacity: 0.85; color: inherit !important; max-width: 24rem; }
.xs-hero-protect ul { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.xs-hero-protect li { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; font-size: 0.875rem; opacity: 0.95; }
.xs-hero-protect .visual {
    margin: 0 auto;
    display: flex;
    width: 10rem;
    height: 10rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in oklch, var(--xs-primary-foreground) 10%, transparent);
    font-size: 4rem;
}
@media (min-width: 992px) {
    .xs-hero-protect .visual { width: 13rem; height: 13rem; font-size: 5rem; }
}

.xs-page-grid {
    margin-top: 0;
    max-width: none;
    width: 100%;
}
.xs-stat-row.cols-4 {
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 1200px) {
    .xs-stat-row.cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
}
.xs-stat-row.cols-5 {
    grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 576px) {
    .xs-stat-row.cols-5 { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1400px) {
    .xs-stat-row.cols-5 { grid-template-columns: repeat(5, 1fr) !important; }
}

/* Affiliates page */
.xs-affiliates-page .xs-aff-money-row,
.xs-affiliates-page .xs-aff-traffic-row {
    grid-template-columns: 1fr !important;
    margin-bottom: 0.875rem;
}
@media (min-width: 640px) {
    .xs-affiliates-page .xs-aff-money-row,
    .xs-affiliates-page .xs-aff-traffic-row {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
.xs-aff-stat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    position: relative;
    z-index: 1;
    min-width: 0;
}
.xs-aff-stat .value {
    font-size: 1.35rem !important;
    word-break: break-word;
}
.xs-aff-stat .xs-stat-label {
    margin-top: 0 !important;
}
.xs-aff-link-box {
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid var(--xs-border);
    border-radius: 0.75rem;
    padding: 0.625rem 0.75rem;
    background: var(--background);
}
.xs-aff-link-box input {
    flex: 1;
    border: 0;
    background: transparent;
    color: var(--foreground);
    font-size: 0.875rem;
    outline: none;
    min-width: 0;
}
.xs-aff-summary {
    padding: 1rem 1.25rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}
.xs-aff-summary-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    font-size: 0.875rem;
}
.xs-aff-summary-row span {
    color: var(--muted-foreground);
    line-height: 1.35;
    flex: 1;
    min-width: 0;
}
.xs-aff-summary-row strong {
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}
.xs-aff-withdraw {
    text-align: center;
    margin-top: 0.75rem;
}
.xs-aff-withdraw-note {
    margin: 0.75rem auto 0;
    max-width: 36rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
    line-height: 1.45;
}

/* Force dark-looking DataTables chrome out when we use custom tables */
.xs-panel > .table-container,
.xs-panel > .dataTables_wrapper {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    border-radius: 0 !important;
}

/* ========== Service product details ========== */
.xs-svc-detail {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.xs-svc-detail > .xs-page-header {
    margin-bottom: 0;
}

.xs-svc-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    align-items: start;
}
@media (min-width: 992px) {
    .xs-svc-layout {
        grid-template-columns: 250px minmax(0, 1fr);
    }
}

.xs-svc-aside {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.xs-svc-aside .card-sidebar,
.xs-svc-aside .card {
    background: var(--card) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.9rem !important;
    box-shadow: none;
    overflow: hidden;
    margin: 0 !important;
}
.xs-svc-aside .card-header {
    background: transparent !important;
    border-bottom: 1px solid var(--xs-border) !important;
    padding: 0.7rem 0.95rem !important;
}
.xs-svc-aside .card-title {
    display: flex !important;
    align-items: center;
    gap: 0.45rem;
    margin: 0 !important;
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--muted-foreground) !important;
}
.xs-svc-aside .card-title .fas,
.xs-svc-aside .card-title .far,
.xs-svc-aside .card-title .fal {
    font-size: 0.75rem;
    opacity: 0.75;
    color: var(--muted-foreground) !important;
}
.xs-svc-aside .card-minimise {
    display: none !important;
}
.xs-svc-aside .collapsable-card-body {
    display: block !important;
    height: auto !important;
}
.xs-svc-aside .list-group {
    padding: 0.35rem !important;
    gap: 0.15rem;
    display: flex !important;
    flex-direction: column;
}
.xs-svc-aside .list-group-item {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0.55rem !important;
    border-left: none !important;
    color: var(--foreground) !important;
    padding: 0.62rem 0.75rem !important;
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    transition: background 0.15s ease, color 0.15s ease;
}
.xs-svc-aside .list-group-item,
.xs-svc-aside .list-group-item:hover,
body.xs-client .xs-svc-aside a.list-group-item {
    color: var(--foreground) !important;
    text-decoration: none !important;
}
.xs-svc-aside .list-group-item:hover {
    background: color-mix(in oklch, var(--foreground) 6%, transparent) !important;
}
.xs-svc-aside .list-group-item.active {
    background: color-mix(in oklch, var(--xs-primary) 18%, transparent) !important;
    color: var(--foreground) !important;
    font-weight: 600 !important;
    box-shadow: inset 3px 0 0 var(--xs-primary);
}
.xs-svc-aside .sidebar-menu-item-wrapper {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}
.xs-svc-aside .sidebar-menu-item-icon {
    width: 1.05rem;
    text-align: center;
    color: var(--muted-foreground);
    font-size: 0.85rem;
}
.xs-svc-aside .list-group-item.active .sidebar-menu-item-icon {
    color: var(--xs-primary);
}
.xs-svc-aside .sidebar-menu-item-label {
    flex: 1;
    min-width: 0;
    line-height: 1.3;
}
.xs-svc-aside .d-block.d-md-none {
    display: none !important;
}

.xs-svc-main {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    min-width: 0;
}

.xs-svc-tabs {
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}
.xs-svc-tabs > .tab-pane {
    display: none;
}
.xs-svc-tabs > .tab-pane.active,
.xs-svc-tabs > .tab-pane.show {
    display: flex !important;
    flex-direction: column;
    gap: 1.15rem;
}

.xs-svc-status-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid color-mix(in oklch, var(--xs-warning) 40%, transparent);
    background: color-mix(in oklch, var(--xs-warning) 12%, transparent);
    color: color-mix(in oklch, var(--xs-warning) 85%, white);
    font-size: 0.875rem;
}
.xs-svc-status-banner.tone-destructive {
    border-color: color-mix(in oklch, var(--destructive) 40%, transparent);
    background: color-mix(in oklch, var(--destructive) 12%, transparent);
    color: color-mix(in oklch, var(--destructive) 80%, white);
}
.xs-svc-status-banner i {
    margin-top: 0.15rem;
}

.xs-svc-package {
    padding: 0 !important;
}
.xs-svc-package-body {
    padding: 1.75rem 1.5rem;
    text-align: center;
}
.xs-svc-package-body em {
    display: block;
    font-style: normal;
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-svc-package-body h2 {
    margin: 0.35rem 0 0.45rem;
    font-size: 1.5rem;
    font-weight: 800;
}
.xs-svc-package-body > a {
    color: var(--xs-primary) !important;
    font-weight: 600;
    text-decoration: none !important;
}
.xs-svc-package-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1.15rem;
}

.xs-svc-kv {
    display: grid;
    grid-template-columns: 1fr;
}
@media (min-width: 768px) {
    .xs-svc-kv {
        grid-template-columns: 1fr 1fr;
    }
}
.xs-svc-kv-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.25rem;
    border-bottom: 1px solid var(--xs-border);
}
.xs-svc-kv-row .k {
    font-size: 0.8125rem;
    color: var(--muted-foreground);
}
.xs-svc-kv-row .v {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--foreground);
    text-align: right;
}
.xs-svc-billing .xs-svc-actions,
.xs-svc-configopts .xs-svc-actions {
    border-top: 1px solid var(--xs-border);
    padding-top: 1rem;
}

.xs-svc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    padding: 1rem 1.25rem 1.15rem;
}
.xs-svc-actions .xs-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}
.xs-svc-actions .xs-btn.disabled,
.xs-svc-actions .xs-btn[disabled] {
    opacity: 0.55;
    pointer-events: none;
}

.xs-svc-hook { margin: 0; }

.xs-svc-subtabs.nav-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 !important;
    padding: 0.35rem;
    border: 1px solid var(--xs-border) !important;
    border-bottom: 0 !important;
    border-radius: 1rem 1rem 0 0;
    background: var(--card);
}
.xs-svc-subtabs .nav-link {
    border: 0 !important;
    border-radius: 0.65rem !important;
    color: var(--muted-foreground) !important;
    font-weight: 600 !important;
    padding: 0.55rem 0.9rem !important;
    background: transparent !important;
}
.xs-svc-subtabs .nav-link:hover {
    color: var(--foreground) !important;
    background: color-mix(in oklch, var(--accent) 55%, transparent) !important;
}
.xs-svc-subtabs .nav-link.active {
    color: var(--xs-primary) !important;
    background: color-mix(in oklch, var(--xs-primary) 12%, transparent) !important;
}
.xs-svc-detail .responsive-tabs-sm-connector {
    display: none !important;
}
.xs-svc-subpanel.product-details-tab-container,
.xs-svc-detail .product-details-tab-container {
    margin: 0 !important;
    padding: 1.25rem 1.35rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0 0 1rem 1rem !important;
    background: var(--card) !important;
    color: var(--foreground) !important;
    box-shadow: var(--shadow-card);
}
.xs-svc-subpanel .row {
    margin-bottom: 0.65rem;
    color: var(--foreground);
}
.xs-svc-subpanel strong {
    color: var(--muted-foreground);
    font-weight: 600;
}

.xs-svc-detail #tabDownloads,
.xs-svc-detail #tabAddons,
.xs-svc-detail #tabChangepw {
    background: var(--card);
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    padding: 1.25rem;
    box-shadow: var(--shadow-card);
}
.xs-svc-detail #tabDownloads h3,
.xs-svc-detail #tabAddons h3,
.xs-svc-detail #tabChangepw .card-title {
    color: var(--foreground) !important;
}
.xs-svc-detail #tabChangepw .card {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}
.xs-svc-detail #tabChangepw .card-body {
    padding: 0 !important;
}
.xs-svc-detail #tabAddons .card {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
}
.xs-svc-detail #tabAddons .card-header {
    background: transparent !important;
    border-bottom: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
}
.xs-svc-detail #tabAddons .card-footer {
    background: transparent !important;
    border-top: 1px solid var(--xs-border) !important;
}

/* Hosting module client area â€” package + usage grid */
.xs-svc-hosting-access {
    margin: 0;
}
.xs-svc-hosting-access .module-client-area {
    text-align: left;
}
.xs-svc-hosting-access .module-client-area > .row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 0 0 1rem;
}
@media (min-width: 900px) {
    .xs-svc-hosting-access .module-client-area > .row.xs-cpanel-top-row,
    .xs-svc-hosting-access .module-client-area > .row:has(#cPanelPackagePanel) {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    }
}
.xs-svc-hosting-access .module-client-area > .row > [class*='col-'] {
    padding: 0;
    margin: 0;
    width: 100%;
    max-width: 100%;
    flex: none;
}
.xs-svc-hosting-access .module-client-area > .row > .col-sm-12 {
    grid-column: 1 / -1;
}
.xs-svc-hosting-access .module-client-area > .row > .col-md-6,
.xs-svc-hosting-access .module-client-area > .row > .col-md-5,
.xs-svc-hosting-access .module-client-area > .row > .col-md-7 {
    flex: none;
    max-width: 100%;
}
@media (min-width: 768px) {
    .xs-svc-hosting-access .module-client-area > .row > .col-md-6 {
        flex: none;
        max-width: 100%;
    }
}

.xs-svc-detail #cPanelPackagePanel,
.xs-svc-detail #PleskPackagePanel,
.xs-svc-detail #cPanelExtrasPurchasePanel,
.xs-svc-detail #cPanelGetSitejet,
.xs-svc-detail #pleskGetSitejet,
.xs-svc-detail #cPanelUsagePanel,
.xs-svc-hosting-access .panel,
.xs-svc-hosting-access .card {
    background: var(--card) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 1rem !important;
    box-shadow: var(--shadow-card);
    color: var(--foreground) !important;
    overflow: hidden;
    margin-bottom: 1rem !important;
    height: auto;
}

.xs-svc-hosting-access .panel-heading,
.xs-svc-hosting-access .card-header,
.xs-svc-detail #cPanelPackagePanel .panel-heading,
.xs-svc-detail #cPanelPackagePanel .card-header,
.xs-svc-detail #cPanelUsagePanel .panel-heading,
.xs-svc-detail #cPanelUsagePanel .card-header,
.xs-svc-detail #PleskPackagePanel .panel-heading,
.xs-svc-detail #PleskPackagePanel .card-header,
.xs-svc-detail #cPanelExtrasPurchasePanel .panel-heading,
.xs-svc-detail #cPanelExtrasPurchasePanel .card-header,
.xs-svc-detail #cPanelGetSitejet .panel-heading,
.xs-svc-detail #cPanelGetSitejet .card-header {
    background: transparent !important;
    border-bottom: 1px solid var(--xs-border) !important;
    padding: 0.85rem 1.15rem !important;
    color: var(--foreground) !important;
}

.xs-svc-hosting-access .panel-title,
.xs-svc-hosting-access .card-title,
.xs-svc-detail #cPanelPackagePanel .panel-title,
.xs-svc-detail #cPanelPackagePanel .card-title,
.xs-svc-detail #cPanelUsagePanel .panel-title,
.xs-svc-detail #cPanelUsagePanel .card-title {
    margin: 0 !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted-foreground) !important;
}

.xs-svc-hosting-access .panel-body,
.xs-svc-hosting-access .card-body,
.xs-svc-detail #cPanelPackagePanel .panel-body,
.xs-svc-detail #cPanelPackagePanel .card-body,
.xs-svc-detail #cPanelUsagePanel .panel-body,
.xs-svc-detail #cPanelUsagePanel .card-body {
    background: transparent !important;
    color: var(--foreground) !important;
    padding: 1.35rem 1.25rem !important;
}

.xs-svc-hosting-access #sitejetPublishPreview,
.xs-svc-detail #sitejetPublishPreview {
    display: block;
    width: 100%;
    max-width: 100% !important;
    margin: 0 auto 1rem;
    border-radius: 0.85rem !important;
    border: 1px solid var(--xs-border) !important;
    background: #fff;
    object-fit: cover;
}

.xs-svc-hosting-access .cpanel-package-details,
.xs-svc-hosting-access .plesk-package-details,
.xs-svc-detail .cpanel-package-details,
.xs-svc-detail .plesk-package-details {
    margin: 0 0 1.15rem;
    text-align: center;
}
.xs-svc-hosting-access .cpanel-package-details em,
.xs-svc-detail .cpanel-package-details em {
    display: block;
    font-style: normal;
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-svc-hosting-access .cpanel-package-details h4,
.xs-svc-detail .cpanel-package-details h4 {
    margin: 0.3rem 0 0.4rem !important;
    font-size: 1.45rem !important;
    font-weight: 800 !important;
    color: var(--foreground) !important;
}
.xs-svc-hosting-access .cpanel-package-details a,
.xs-svc-detail .cpanel-package-details a {
    color: var(--xs-primary) !important;
    font-weight: 600;
    text-decoration: none !important;
}
.xs-svc-hosting-access .cpanel-package-details a:hover,
.xs-svc-detail .cpanel-package-details a:hover {
    text-decoration: underline !important;
}

.xs-svc-hosting-access #sitejetViewLink,
.xs-svc-hosting-access #sitejetEditBtn,
.xs-svc-hosting-access .btn,
.xs-svc-detail #cPanelPackagePanel .btn,
.xs-svc-detail #PleskPackagePanel .btn,
.xs-svc-detail #cPanelExtrasPurchasePanel .btn,
.xs-svc-detail #cPanelGetSitejet .btn,
.xs-svc-detail #cPanelUsagePanel .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border-radius: 0.7rem !important;
    padding: 0.55rem 0.95rem !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    margin: 0.2rem !important;
    line-height: 1.2 !important;
}
.xs-svc-hosting-access #sitejetViewLink,
.xs-svc-hosting-access .btn-default,
.xs-svc-detail #cPanelPackagePanel .btn-default {
    background: transparent !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
}
.xs-svc-hosting-access .btn-success,
.xs-svc-detail #cPanelPackagePanel .btn-success {
    background: var(--xs-success) !important;
    border-color: var(--xs-success) !important;
    color: #fff !important;
}
.xs-svc-hosting-access #sitejetEditBtn,
.xs-svc-hosting-access .btn-primary,
.xs-svc-detail #cPanelPackagePanel .btn-primary {
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
}
.xs-svc-hosting-access .btn-info,
.xs-svc-detail #cPanelGetSitejet .btn-info {
    background: var(--xs-info) !important;
    border-color: var(--xs-info) !important;
    color: #fff !important;
}
.xs-svc-hosting-access .form-control,
.xs-svc-hosting-access .custom-select,
.xs-svc-detail #cPanelExtrasPurchasePanel .form-control {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.65rem !important;
}

/* Usage panel → side-by-side horizontal bars */
.xs-svc-detail #cPanelUsagePanel .cpanel-usage-stats > .row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 1.35rem 1.75rem;
}
.xs-svc-detail #cPanelUsagePanel .cpanel-usage-stats > .row > [class*='col-'] {
    flex: 1 1 12rem;
    max-width: 100%;
    text-align: left !important;
    padding: 0 !important;
}
.xs-svc-detail #cPanelUsagePanel canvas,
.xs-svc-detail #cPanelUsagePanel .usage-dial {
    display: none !important;
}
.xs-svc-detail #cPanelUsagePanel #diskUsage,
.xs-svc-detail #cPanelUsagePanel #bandwidthUsage {
    position: relative;
}
.xs-svc-detail #cPanelUsagePanel #diskUsage strong,
.xs-svc-detail #cPanelUsagePanel #bandwidthUsage strong {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    width: 100%;
    font-size: 0.8rem;
    color: var(--muted-foreground);
    font-weight: 600;
}
.xs-svc-detail #cPanelUsagePanel .xs-usage-pct {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--foreground);
}
.xs-svc-detail #cPanelUsagePanel .xs-usage-bar {
    height: 0.45rem;
    margin: 0.65rem 0 0.45rem;
    border-radius: 999px;
    background: var(--muted);
    overflow: hidden;
}
.xs-svc-detail #cPanelUsagePanel .xs-usage-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--xs-primary);
}
.xs-svc-detail #cPanelUsagePanel .xs-usage-meta {
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-svc-detail #cPanelUsagePanel .text-info.limit-near,
.xs-svc-detail #cPanelUsagePanel .text-danger.limit-near {
    margin-top: 1rem;
    text-align: left !important;
    font-size: 0.8rem;
    color: var(--muted-foreground) !important;
}

/* Hosting reference layout — full-width panels under package/usage */
.xs-svc-hosting-ref .module-client-area > .row {
    align-items: stretch;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel,
.xs-svc-hosting-ref #cPanelQuickEmailPanel,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel,
.xs-svc-hosting-ref #cPanelWordPress,
.xs-svc-hosting-ref #cPanelConfigurableOptionsPanel,
.xs-svc-hosting-ref #cPanelMetricStatsPanel,
.xs-svc-hosting-ref #cPanelAdditionalInfoPanel {
    height: auto !important;
    margin-bottom: 1rem !important;
}
.xs-svc-hosting-ref #cPanelPackagePanel .panel-body,
.xs-svc-hosting-ref #cPanelPackagePanel .card-body {
    min-height: 0 !important;
}
.xs-svc-hosting-ref #cPanelPackagePanel .btn-success {
    display: none !important;
}

/* Quick Shortcuts — 5-col tile grid with colored FA icons */
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .panel-body,
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .card-body {
    padding: 1.1rem 1.15rem 1.25rem !important;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
@media (min-width: 576px) {
    .xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (min-width: 768px) {
    .xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
@media (min-width: 1100px) {
    .xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row > [class*='col-'] {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    padding: 0 !important;
    float: none !important;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row a {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 6.25rem;
    margin: 0 !important;
    padding: 0.95rem 0.5rem !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
    color: var(--foreground) !important;
    text-decoration: none !important;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row a:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border)) !important;
    background: color-mix(in oklch, var(--xs-primary) 6%, var(--background)) !important;
    transform: translateY(-1px);
    color: var(--foreground) !important;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .cpanel-feature-row a img {
    display: none !important;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    font-size: 1.2rem;
    line-height: 1;
}
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-blue { color: #3b82f6; }
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-orange { color: #f59e0b; }
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-green { color: #22c55e; }
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-yellow { color: #eab308; }
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-purple { color: #a855f7; }
.xs-svc-hosting-ref #cPanelQuickShortcutsPanel .xs-sc-icon.tone-cyan { color: #06b6d4; }

/* Quick Create Email — horizontal form */
.xs-svc-hosting-ref #cPanelQuickEmailPanel .panel-body,
.xs-svc-hosting-ref #cPanelQuickEmailPanel .card-body {
    padding: 1.15rem 1.25rem !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount > .row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.75rem;
    margin: 0 !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount > .row > [class*='col-'] {
    padding: 0 !important;
    margin: 0 !important;
    flex: 1 1 10rem;
    max-width: none;
    width: auto !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount > .row > .col-md-6 {
    flex: 1.4 1 14rem;
}
.xs-svc-hosting-ref #frmCreateEmailAccount > .row > .col-md-3:last-child {
    flex: 0 0 auto;
    min-width: 7.5rem;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group {
    display: flex;
    width: 100%;
    margin: 0 !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .form-control,
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group-text,
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group-addon {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    border-radius: 0.7rem !important;
    height: 2.65rem;
    min-height: 2.65rem;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group .form-control {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group-addon,
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group-append {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .input-group-text {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-left: 0 !important;
    display: flex;
    align-items: center;
    padding: 0 0.85rem !important;
    color: var(--muted-foreground) !important;
    white-space: nowrap;
}
.xs-svc-hosting-ref #frmCreateEmailAccount .btn-primary {
    width: 100%;
    height: 2.65rem;
    margin: 0 !important;
    border-radius: 0.7rem !important;
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    font-weight: 700 !important;
}

/* Billing Overview — clean 2-col KV */
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2.5rem;
    margin: 0 !important;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'],
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] {
    flex: 1 1 16rem;
    max-width: 100%;
    padding: 0 !important;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'] > .row,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] > .row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    margin: 0 0 0.85rem !important;
    padding: 0;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'] > .row:last-child,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] > .row:last-child {
    margin-bottom: 0 !important;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'] > .row > [class*='col-'],
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] > .row > [class*='col-'] {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    padding: 0 !important;
    text-align: left !important;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'] > .row > [class*='col-']:first-child,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] > .row > [class*='col-']:first-child {
    color: var(--muted-foreground) !important;
    font-size: 0.85rem;
    font-weight: 500;
}
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .panel-body > .row > [class*='col-'] > .row > [class*='col-']:last-child,
.xs-svc-hosting-ref #cPanelBillingOverviewPanel .card-body > .row > [class*='col-'] > .row > [class*='col-']:last-child {
    color: var(--foreground) !important;
    font-size: 0.9rem;
    font-weight: 700;
    text-align: right !important;
}

.xs-svc-hosting-access .tile,
.xs-svc-detail .tile {
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
    color: var(--foreground) !important;
}
.xs-svc-hosting-access .tile:hover,
.xs-svc-detail .tile:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 35%, var(--xs-border)) !important;
}


/* ========== Account contacts (Date cont tab) ========== */
.xs-contacts-page {
    margin-top: 1.25rem;
}
.xs-contact-form {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.xs-contact-picker-body {
    padding: 1.15rem 1.25rem;
}
.xs-contact-switch {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}
.xs-contact-switch .form-control,
.xs-contact-switch .custom-select {
    flex: 1;
    min-width: 0;
}
.xs-contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem 1.15rem;
    padding: 1.25rem;
}
.xs-contact-form-grid .form-group {
    margin: 0 !important;
}
.xs-contact-form-grid .col-form-label,
.xs-contact-form-grid label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--muted-foreground) !important;
}
.xs-contact-prefs {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 1.15rem 1.25rem;
    margin: 0;
}
.xs-contact-pref {
    display: flex !important;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 0 !important;
    padding: 0.85rem 1rem 0.85rem 1.05rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.75rem !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    font-weight: 500 !important;
    font-size: 0.9rem;
    line-height: 1.45;
    cursor: pointer;
    box-sizing: border-box;
    overflow: hidden;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.xs-contact-pref:hover {
    border-color: rgba(59, 130, 246, 0.35) !important;
    background: rgba(255, 255, 255, 0.03) !important;
}
.xs-contact-pref > input[type="hidden"] {
    display: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    appearance: none !important;
    pointer-events: none !important;
}
.xs-contact-check {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.2rem;
    height: 1.2rem;
    margin: 0.1rem 0 0;
    overflow: visible;
}
.xs-contact-check input[type="checkbox"],
.xs-contact-pref input[type="checkbox"] {
    width: 1.05rem !important;
    height: 1.05rem !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    accent-color: var(--xs-primary);
    cursor: pointer;
    flex-shrink: 0;
}
/* Bootstrap form-check / iCheck â€” keep checkbox inside the card */
.xs-contact-pref .form-check-input,
.xs-contact-check .form-check-input {
    margin-left: 0 !important;
    margin-top: 0 !important;
}
.xs-contact-pref .icheckbox_square-blue,
.xs-contact-pref .icheckbox_flat-blue,
.xs-contact-check .icheckbox_square-blue,
.xs-contact-check .icheckbox_flat-blue {
    margin: 0 !important;
    float: none !important;
}
.xs-contact-pref-text {
    flex: 1;
    min-width: 0;
    padding-top: 0.05rem;
}
.xs-contacts-page .xs-panel .xs-contact-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
    margin: 0;
    padding: 1rem 1.25rem 1.15rem;
    border-top: 1px solid var(--xs-border);
    background: rgba(0, 0, 0, 0.12);
}
.xs-contact-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem;
}
@media (max-width: 767px) {
    .xs-contact-form-grid {
        grid-template-columns: 1fr;
    }
}


/* ========== Stock pages alignment (domains, KB, billing, auth) ========== */
.xs-btn-sm {
    padding: 0.35rem 0.7rem !important;
    font-size: 0.75rem !important;
    border-radius: 0.5rem !important;
}
.xs-meta-grid {
    display: grid;
    gap: 1rem;
}
@media (min-width: 720px) {
    .xs-meta-grid { grid-template-columns: 1fr 1fr; }
}
.xs-meta-grid .k {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted-foreground);
    margin-bottom: 0.25rem;
}
.xs-meta-grid .v {
    display: block;
    font-weight: 600;
    color: var(--foreground);
}
.xs-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}
.xs-addon-row {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.15rem 0;
    border-top: 1px solid var(--xs-border);
}
.xs-addon-row:first-of-type { border-top: 0; padding-top: 0; }
.xs-epp-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--accent) 45%, transparent);
}
.xs-epp-box .k { font-size: 0.8rem; color: var(--muted-foreground); }
.xs-epp-box code {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--xs-primary);
}
.xs-kb-search {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.5rem;
    padding: 0.45rem 0.55rem 0.45rem 1rem;
    border-radius: 1rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    box-shadow: var(--shadow-card);
}
.xs-kb-search i { color: var(--xs-primary); }
.xs-kb-search input {
    flex: 1;
    min-width: 0;
    border: 0;
    background: transparent;
    color: var(--foreground);
    outline: none;
    padding: 0.55rem 0.25rem;
}
.xs-kb-cats {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 800px) {
    .xs-kb-cats { grid-template-columns: 1fr 1fr; }
}
.xs-kb-cat {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 1.1rem 1.15rem;
    border-radius: 1rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    color: inherit;
    text-decoration: none !important;
    transition: border-color .2s ease, transform .2s ease;
}
.xs-kb-cat:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border));
    transform: translateY(-2px);
}
.xs-kb-cat strong { display: block; font-size: 0.95rem; }
.xs-kb-cat small { display: block; margin-top: 0.2rem; color: var(--muted-foreground); font-size: 0.8rem; }
.xs-kb-cat .xs-pill { margin-left: auto; }
.xs-kb-list { display: grid; }
.xs-kb-item {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--xs-border);
    color: inherit;
    text-decoration: none !important;
}
.xs-kb-item:hover { background: color-mix(in oklch, var(--accent) 50%, transparent); }
.xs-kb-item > i { color: var(--xs-primary); margin-top: 0.2rem; }
.xs-kb-item strong { display: block; font-size: 0.92rem; }
.xs-kb-item small { display: block; margin-top: 0.25rem; color: var(--muted-foreground); font-size: 0.8rem; }
.xs-kb-article { line-height: 1.7; font-size: 0.95rem; }
.xs-kb-article img { max-width: 100%; height: auto; border-radius: 0.75rem; }
.xs-dept-grid {
    display: grid;
    gap: 0.85rem;
}
@media (min-width: 800px) {
    .xs-dept-grid { grid-template-columns: 1fr 1fr; }
}
.xs-dept-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 1.15rem;
    border-radius: 1rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    box-shadow: var(--shadow-card);
    color: inherit;
    text-decoration: none !important;
    transition: border-color .2s ease, transform .2s ease;
}
.xs-dept-card:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border));
    transform: translateY(-2px);
}
.xs-dept-card strong { display: block; }
.xs-dept-card small { display: block; margin-top: 0.25rem; color: var(--muted-foreground); font-size: 0.8rem; }
.xs-dept-card > .fa-arrow-right { margin-left: auto; }
.xs-status-banner {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    border-radius: 1rem;
    padding: 0.85rem 1.2rem;
    font-size: 0.875rem;
    font-weight: 700;
}
.xs-status-banner.ok {
    border: 1px solid color-mix(in oklch, var(--xs-success) 40%, transparent);
    background: color-mix(in oklch, var(--xs-success) 12%, transparent);
    color: var(--xs-success);
}
.xs-status-banner .dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: currentColor;
}
.xs-auth-wrap {
    display: flex;
    justify-content: center;
    padding: 2rem 1rem 3rem;
}
.xs-auth-card {
    width: min(460px, 100%);
    border-radius: 1.25rem;
    border: 1px solid var(--xs-border);
    background: var(--card);
    box-shadow: var(--shadow-card);
    padding: 1.75rem 1.5rem;
}
.xs-auth-head {
    text-align: center;
    margin-bottom: 1.35rem;
}
.xs-auth-head h2 {
    margin: 0;
    font-size: 1.45rem;
    font-weight: 800;
}
.xs-auth-head p {
    margin: 0.55rem 0 0;
    color: var(--muted-foreground);
    font-size: 0.9rem;
}
.xs-nav-tabs .nav-link {
    border-radius: 0.65rem 0.65rem 0 0 !important;
}
.xs-domain-tabs .xs-panel { margin-bottom: 0; }

/* Domain nameservers submit spacing */
.xs-ns-submit {
    padding-top: 2.25rem !important;
    margin-top: 0.5rem !important;
    padding-left: 0;
}
@media (min-width: 576px) {
    .xs-ns-submit {
        padding-left: 33.333333%;
    }
}

/* ========== Global form action button spacing ========== */
/*
 * #main-body .row { margin: 0 !important } kills Bootstrap form-group.row
 * bottom spacing — restore field rhythm, then lift action rows.
 */
body.xs-client #main-body form .form-group,
body.xs-client #main-body form .form-group.row {
    margin-bottom: 1.15rem !important;
}
body.xs-client #main-body form .form-group.row.xs-form-actions,
body.xs-client #main-body form .form-group.submit-container,
body.xs-client #main-body form .form-group.row.submit-container,
body.xs-client #main-body form .xs-form-actions {
    margin-bottom: 0 !important;
}

body.xs-client .xs-form-actions,
body.xs-client form .xs-form-actions,
body.xs-client #main-body .xs-form-actions.row,
body.xs-client #main-body form .row.xs-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin-top: 2rem !important;
    margin-bottom: 0 !important;
    padding-top: 0.35rem !important;
}

body.xs-client .xs-form-actions.text-center,
body.xs-client form p.xs-form-actions,
body.xs-client form .text-center.xs-form-actions {
    display: flex;
    justify-content: center;
}

/* Direct submit/reset after last field (any nesting depth) */
body.xs-client form .form-group + button[type="submit"],
body.xs-client form .form-group + input[type="submit"],
body.xs-client form .form-group + input[type="reset"],
body.xs-client form .form-group + .xs-btn,
body.xs-client form .form-group + .btn:not(.btn-link):not(.generate-password):not(.btn-sm),
body.xs-client form > .btn,
body.xs-client form > input.btn,
body.xs-client form > .xs-btn,
body.xs-client form > input.xs-btn,
body.xs-client form > button[type="submit"],
body.xs-client form > input[type="submit"],
body.xs-client form > input[type="reset"] {
    margin-top: 2rem !important;
}
body.xs-client form > .btn + .btn,
body.xs-client form > .btn + input.btn,
body.xs-client form > input.btn + .btn,
body.xs-client form > input.btn + input.btn,
body.xs-client form > .xs-btn + .xs-btn,
body.xs-client form > .xs-btn + input.xs-btn,
body.xs-client form > input.xs-btn + .xs-btn,
body.xs-client form > input.xs-btn + input.xs-btn {
    margin-top: 2rem !important;
    margin-left: 0.5rem;
}

/* Bootstrap / text-center wrappers that only hold actions */
body.xs-client form .form-group.row.submit-container,
body.xs-client form .form-group.submit-container,
body.xs-client form .submit-container,
body.xs-client form .form-group.row:has(> [class*="col-"] > input[type="submit"]),
body.xs-client form .form-group.row:has(> [class*="col-"] > button[type="submit"]),
body.xs-client form .form-group.row:has(> [class*="col-"] > .btn-primary),
body.xs-client form .form-group.row:has(> [class*="col-"] > .xs-btn-primary),
body.xs-client form p.text-center:has(> .btn),
body.xs-client form p.text-center:has(> .xs-btn),
body.xs-client form p.text-center:has(> button[type="submit"]),
body.xs-client form p.text-center:has(> input[type="submit"]),
body.xs-client form .text-center:has(> .btn-primary),
body.xs-client form .text-center:has(> .xs-btn-primary),
body.xs-client form .text-center:has(> button[type="submit"]),
body.xs-client form .text-center:has(> input[type="submit"]),
body.xs-client form .form-group + .text-center:has(button),
body.xs-client form .form-group + p.text-center:has(button) {
    margin-top: 2rem !important;
    padding-top: 0.35rem !important;
}

/* Password / account panels */
body.xs-client #tabChangepw form .form-group.row.xs-form-actions,
body.xs-client .using-password-strength .xs-form-actions,
body.xs-client .xs-contact-actions.xs-form-actions {
    margin-top: 2rem !important;
}

/* Contacts footer already has padding — keep border rhythm, don't double-gap */
.xs-contacts-page .xs-panel .xs-contact-actions.xs-form-actions {
    margin-top: 0 !important;
    padding-top: 1rem !important;
}

/* Ensure last field keeps air before actions */
body.xs-client form .form-group:has(+ .xs-form-actions),
body.xs-client form .form-group:has(+ p.xs-form-actions),
body.xs-client form .form-group:has(+ .xs-ns-submit),
body.xs-client form .form-group.row:has(+ .form-group.row.xs-form-actions),
body.xs-client form .form-group:has(+ button[type="submit"]),
body.xs-client form .form-group:has(+ input[type="submit"]),
body.xs-client form .form-group:has(+ .text-center:has(button)),
body.xs-client form .form-group:has(+ p.text-center:has(button)) {
    margin-bottom: 0.35rem !important;
}

body.xs-client .xs-ns-submit.xs-form-actions {
    padding-top: 2.25rem !important;
}

/* ========== Mass payment ========== */
.xs-masspay-intro {
    margin: 0 0 1.25rem;
    color: var(--muted-foreground);
    font-size: 0.925rem;
    line-height: 1.5;
    max-width: 48rem;
}
.xs-masspay-stats {
    grid-template-columns: 1fr !important;
    margin-bottom: 1.25rem;
}
@media (min-width: 640px) {
    .xs-masspay-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .xs-masspay-stats:has(> :nth-child(3)) {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
.xs-masspay-grid {
    align-items: start;
}
.xs-masspay-invoices .xs-panel-head {
    margin-bottom: 0;
}
.xs-masspay-invoice {
    border-bottom: 1px solid var(--xs-border);
    padding: 1.1rem 1.25rem;
}
.xs-masspay-invoice:last-of-type {
    border-bottom: 0;
}
.xs-masspay-invoice-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.xs-masspay-invoice-head > div {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    flex-wrap: wrap;
}
.xs-masspay-invoice-num {
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -0.01em;
}
.xs-masspay-lines {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.xs-masspay-lines li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: start;
}
.xs-masspay-desc {
    color: var(--muted-foreground);
    font-size: 0.875rem;
    line-height: 1.45;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.xs-masspay-amt {
    font-weight: 700;
    font-size: 0.9rem;
    white-space: nowrap;
    text-align: right;
}
.xs-masspay-empty {
    padding: 2.5rem 1.25rem;
    text-align: center;
    color: var(--muted-foreground);
}
.xs-masspay-empty i {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    opacity: 0.7;
}
.xs-masspay-empty p {
    margin: 0;
}
.xs-masspay-totals {
    border-top: 1px solid var(--xs-border);
    padding: 1rem 1.25rem 1.25rem;
    background: rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.xs-masspay-total-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    font-size: 0.9rem;
}
.xs-masspay-total-row span {
    color: var(--muted-foreground);
}
.xs-masspay-total-row strong {
    font-weight: 700;
    text-align: right;
}
.xs-masspay-total-row.due {
    margin-top: 0.35rem;
    padding-top: 0.75rem;
    border-top: 1px dashed var(--xs-border);
}
.xs-masspay-total-row.due span,
.xs-masspay-total-row.due strong {
    color: var(--xs-primary);
    font-size: 1.05rem;
    font-weight: 800;
}
.xs-masspay-paybox-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}
.xs-masspay-due-hero {
    border: 1px solid color-mix(in oklch, var(--xs-primary) 35%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 10%, var(--card));
    border-radius: 0.9rem;
    padding: 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.xs-masspay-due-hero .cap {
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-masspay-due-hero .amt {
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--xs-primary);
    line-height: 1.15;
    word-break: break-word;
}
.xs-masspay-submit {
    width: 100%;
    justify-content: center;
    margin-top: 0.25rem !important;
}
.xs-masspay-paybox-body .form-group + .xs-masspay-submit {
    margin-top: 0.35rem !important;
}
.xs-masspay-secure {
    margin: 0;
    font-size: 0.8rem;
    color: var(--muted-foreground);
    text-align: center;
    line-height: 1.4;
}
.xs-masspay-secure i {
    color: var(--xs-success);
    margin-right: 0.25rem;
}
@media (min-width: 992px) {
    .xs-masspay-paybox {
        position: sticky;
        top: 1rem;
    }
}

/* =========================================================
   Invoice payment — Make Payment (PayPal / card / Bancontact)
   ========================================================= */

body.xs-client #frmPayment.xs-invoice-pay,
body.xs-client form#frmPayment {
    max-width: 1100px;
    margin: 0 auto 2rem;
}

body.xs-client .xs-invoice-pay-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    align-items: start;
}

@media (min-width: 992px) {
    body.xs-client .xs-invoice-pay-grid {
        grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
    }
    body.xs-client .xs-invoice-pay-aside {
        position: sticky;
        top: 1rem;
    }
}

body.xs-client .xs-invoice-pay-card,
body.xs-client #frmPayment .card,
body.xs-client #invoiceIdSummary.card {
    background: var(--card) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 1rem !important;
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

body.xs-client #frmPayment .card-body,
body.xs-client #invoiceIdSummary .card-body {
    padding: 1.35rem 1.4rem !important;
}

body.xs-client #frmPayment .card-title,
body.xs-client #invoiceIdSummary h2 {
    margin: 0 0 1rem !important;
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em;
    color: var(--foreground) !important;
    text-align: left !important;
}

body.xs-client #invoiceIdSummary h2 {
    text-align: center !important;
}

body.xs-client #frmPayment .payment-instructions,
body.xs-client #frmPayment .approval-instructions,
body.xs-client .paypal_ppcpv-payment-form .payment-instructions,
body.xs-client .paypal_ppcpv-payment-form .approval-instructions {
    color: var(--muted-foreground) !important;
    font-size: 0.9rem;
    margin-bottom: 1rem !important;
    text-align: center;
    line-height: 1.45;
}

/* Pay method rows / vaulted accounts — dark, readable */
body.xs-client #frmPayment .paymethod-info,
body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info:not([data-paymethod-id]),
body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info[data-paymethod-id],
body.xs-client #frmPayment.paypal_ppcpv-payment-form .three-column-grid,
body.xs-client .paypal_ppcpv-payment-form .paymethod-info,
body.xs-client #paypal_ppcpv_input_container_button {
    background: var(--background) !important;
    border-color: var(--xs-border) !important;
    color: var(--foreground) !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Saved card rows (new layout) */
body.xs-client #frmPayment .xs-saved-cards,
body.xs-client #frmPayment .three-column-grid.xs-saved-cards {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 1rem !important;
    grid-template-columns: none !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}
body.xs-client #frmPayment .xs-saved-card {
    display: flex !important;
    align-items: center !important;
    gap: 0.85rem !important;
    margin: 0 !important;
    padding: 0.95rem 1.1rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.9rem !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    cursor: pointer !important;
}
body.xs-client #frmPayment .xs-saved-card.is-active,
body.xs-client #frmPayment .xs-saved-card.selected {
    background: color-mix(in oklch, var(--xs-primary) 14%, var(--background)) !important;
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border)) !important;
    box-shadow: 0 0 0 1px color-mix(in oklch, var(--xs-primary) 25%, transparent);
}
body.xs-client #frmPayment .xs-saved-card-brand {
    display: flex !important;
    width: 2.4rem !important;
    height: 2.4rem !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0.65rem !important;
    background: color-mix(in oklch, var(--xs-primary) 14%, transparent) !important;
    color: var(--xs-primary) !important;
    font-size: 1.25rem !important;
    flex-shrink: 0 !important;
}
body.xs-client #frmPayment .xs-saved-card-meta {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.15rem !important;
    min-width: 0 !important;
    flex: 1 !important;
}
body.xs-client #frmPayment .xs-saved-card-meta strong {
    color: var(--foreground) !important;
    font-weight: 700 !important;
}
body.xs-client #frmPayment .xs-saved-card-meta small {
    color: var(--muted-foreground) !important;
    font-size: 0.75rem !important;
}
body.xs-client #frmPayment .xs-saved-card-exp {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    text-align: right !important;
    flex-shrink: 0 !important;
}
body.xs-client #frmPayment .xs-saved-card-exp em {
    font-style: normal !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    color: var(--muted-foreground) !important;
}
body.xs-client #frmPayment .xs-saved-card-exp strong {
    color: var(--foreground) !important;
    font-weight: 700 !important;
}
body.xs-client #frmPayment .xs-saved-card--paypal {
    gap: 1rem !important;
    padding: 1.1rem 1.2rem !important;
    border-color: color-mix(in oklch, #ffc439 28%, var(--xs-border)) !important;
    background: color-mix(in oklch, #003087 14%, var(--background)) !important;
}
body.xs-client #frmPayment .xs-saved-card--paypal.is-active,
body.xs-client #frmPayment .xs-saved-card--paypal.selected {
    border-color: #ffc439 !important;
    box-shadow: 0 0 0 1px rgba(255, 196, 57, 0.28) !important;
}
body.xs-client #frmPayment .xs-saved-card--paypal .xs-saved-card-brand {
    background: #ffffff !important;
    color: #003087 !important;
    width: auto !important;
    min-width: 6.5rem !important;
    height: 2.75rem !important;
    padding: 0.35rem 0.65rem !important;
}
body.xs-client #frmPayment .xs-saved-card-brand--paypal img {
    display: block !important;
    max-width: 96px !important;
    height: 22px !important;
    object-fit: contain !important;
}
body.xs-client #frmPayment .xs-new-paypal-opt {
    display: block !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0.85rem 0 1.15rem !important;
    overflow: visible !important;
}
body.xs-client #frmPayment .xs-new-paypal-opt label {
    display: flex !important;
    align-items: center !important;
    gap: 0.85rem !important;
    padding: 1.15rem 1.2rem !important;
    border: 1px dashed color-mix(in oklch, #ffc439 40%, var(--xs-border)) !important;
    border-radius: 0.9rem !important;
    background: color-mix(in oklch, #003087 10%, var(--background)) !important;
    cursor: pointer !important;
    overflow: visible !important;
    line-height: normal !important;
}
body.xs-client #frmPayment .xs-new-paypal-opt .iradio_square-blue,
body.xs-client #frmPayment .xs-new-paypal-opt .iradio_flat-blue,
body.xs-client #frmPayment .xs-saved-card .iradio_square-blue,
body.xs-client #frmPayment .xs-saved-card .iradio_flat-blue {
    overflow: visible !important;
    flex-shrink: 0 !important;
    margin: 0 0.15rem 0 0 !important;
    top: 0 !important;
}
body.xs-client #frmPayment .xs-new-paypal-mark {
    display: flex !important;
    width: 2.5rem !important;
    height: 2.5rem !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 0.65rem !important;
    background: #fff !important;
    flex-shrink: 0 !important;
}
body.xs-client #frmPayment .xs-new-paypal-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.15rem !important;
}
body.xs-client #frmPayment .xs-new-paypal-text strong {
    color: var(--foreground) !important;
}
body.xs-client #frmPayment .xs-new-paypal-text small {
    color: var(--muted-foreground) !important;
    font-size: 0.78rem !important;
}
body.xs-client #frmPayment .xs-saved-card-badge {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: auto !important;
    padding: 0.35rem 0.7rem !important;
    border-radius: 999px !important;
    background: #ffc439 !important;
    color: #003087 !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    flex-shrink: 0 !important;
}
body.xs-client #frmPayment.xs-pay-paypal .xs-paypal-hint {
    margin: 0 0 1.1rem !important;
    padding: 0.85rem 1rem !important;
    border-radius: 0.85rem !important;
    border: 1px solid color-mix(in oklch, #ffc439 28%, var(--xs-border)) !important;
    background: color-mix(in oklch, #003087 12%, var(--background)) !important;
    color: var(--muted-foreground) !important;
    font-size: 0.88rem !important;
}
body.xs-client #frmPayment.xs-pay-paypal .payment-instructions,
body.xs-client #frmPayment.xs-pay-paypal .approval-instructions {
    display: none !important;
}
body.xs-client #frmPayment .xs-new-card-opt {
    margin-bottom: 1.15rem !important;
}
body.xs-client #frmPayment .xs-new-card-opt label {
    display: flex !important;
    align-items: center !important;
    gap: 0.65rem !important;
    margin: 0 !important;
}

body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info:not([data-paymethod-id]),
body.xs-client #frmPayment .paymethod-info:not([data-paymethod-id]):not(.xs-saved-card) {
    display: flex !important;
    align-items: center;
    gap: 0.65rem;
    width: 100% !important;
    max-width: 32rem !important;
    margin: 0 auto 0.75rem !important;
    padding: 0.85rem 1.1rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
    text-align: left !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
}

body.xs-client #frmPayment .paymethod-info label,
body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info label,
body.xs-client #frmPayment .paymethod-info .payer-label,
body.xs-client .paypal_ppcpv-payment-form .payer-label,
body.xs-client .paypal_ppcpv-payment-form .payer-email {
    color: var(--foreground) !important;
    font-weight: 600 !important;
    margin: 0 !important;
}

body.xs-client .paypal_ppcpv-payment-form .payer-email {
    color: var(--muted-foreground) !important;
    font-weight: 500 !important;
}

body.xs-client #frmPayment.paypal_ppcpv-payment-form .selected,
body.xs-client .paypal_ppcpv-payment-form .selected,
body.xs-client #frmPayment .paymethod-info.selected {
    background: color-mix(in oklch, var(--xs-primary) 14%, var(--background)) !important;
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border)) !important;
    box-shadow: 0 0 0 1px color-mix(in oklch, var(--xs-primary) 25%, transparent);
}

/* Legacy paypal grid only — not our saved-cards flex */
body.xs-client #frmPayment.paypal_ppcpv-payment-form .three-column-grid:not(.xs-saved-cards) {
    display: grid !important;
    grid-template-columns: auto auto minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 32rem !important;
    margin: 0 auto 0.75rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
    overflow: hidden;
    background: var(--background) !important;
}

body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info[data-paymethod-id] {
    border: 0 !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0.75rem 0.85rem !important;
    background: transparent !important;
    color: var(--foreground) !important;
}

body.xs-client #frmPayment.paypal_ppcpv-payment-form .paymethod-info[data-paymethod-id]:nth-child(5n+5) {
    display: none !important;
}

/* Stripe fields spacing on invoice pay */
body.xs-client #frmPayment #stripeElements .form-group,
body.xs-client #frmPayment #stripeElements .form-group.row {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.45rem !important;
    margin: 0 0 1rem !important;
}
body.xs-client #frmPayment #stripeElements [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.xs-client #frmPayment #stripeElements .col-sm-4:empty,
body.xs-client #frmPayment #stripeElements .col-sm-6:empty {
    display: none !important;
}

/* PayPal / Bancontact SDK buttons container */
body.xs-client #paypal_ppcpv_input_container,
body.xs-client #paypal_ppcpv_input_container_button,
body.xs-client #frmPayment #paymentGatewayInput {
    width: 100% !important;
    max-width: 32rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

body.xs-client #frmPayment.paypal_ppcpv-payment-form .cc-payment-form .col-sm-8 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 auto !important;
    text-align: center !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body.xs-client #frmPayment .logo img {
    height: 1.5rem !important;
    width: auto !important;
    max-width: 2.5rem;
}

/* Submit = same width as payment options */
body.xs-client #frmPayment #btnSubmitContainer,
body.xs-client #frmPayment .xs-invoice-pay-submit {
    width: 100% !important;
    max-width: 32rem !important;
    margin: 1.15rem auto 0 !important;
    text-align: center !important;
    padding: 0 !important;
}

body.xs-client #frmPayment #btnSubmit,
body.xs-client #frmPayment .xs-invoice-pay-submit .btn {
    width: 100% !important;
    min-height: 2.85rem;
    border-radius: 0.85rem !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    background: var(--xs-primary) !important;
    border-color: var(--xs-primary) !important;
    color: var(--xs-primary-foreground) !important;
    box-shadow: var(--shadow-glow);
}

/* Invoice summary */
body.xs-client #invoiceIdSummary .invoice-summary-table {
    margin: 0.75rem 0 1rem;
    max-height: none;
    border: 1px solid var(--xs-border);
    border-radius: 0.75rem;
    overflow: hidden;
}

body.xs-client #invoiceIdSummary .invoice-summary-table table {
    margin: 0 !important;
    width: 100%;
}

body.xs-client #invoiceIdSummary .invoice-summary-table td {
    font-size: 0.875rem !important;
    padding: 0.65rem 0.85rem !important;
    border-color: var(--xs-border) !important;
    color: var(--foreground) !important;
    background: transparent !important;
}

body.xs-client #invoiceIdSummary .invoice-summary-table td.total-row {
    background: color-mix(in oklch, var(--accent) 55%, transparent) !important;
    font-weight: 600 !important;
    color: var(--foreground) !important;
}

body.xs-client #invoiceIdSummary .mb-2 {
    color: var(--muted-foreground) !important;
    margin-bottom: 0.75rem !important;
}

body.xs-client #invoiceIdSummary .alert-success {
    background: color-mix(in oklch, var(--xs-success) 14%, var(--card)) !important;
    border: 1px solid color-mix(in oklch, var(--xs-success) 35%, var(--xs-border)) !important;
    color: var(--xs-success) !important;
    border-radius: 0.75rem !important;
    font-weight: 700;
    margin: 0 !important;
}

body.xs-client .xs-invoice-pay-ssl,
body.xs-client #frmPayment > .alert-warning {
    margin-top: 1.25rem !important;
    border-radius: 0.85rem !important;
    background: color-mix(in oklch, var(--xs-warning) 12%, var(--card)) !important;
    border: 1px solid color-mix(in oklch, var(--xs-warning) 28%, transparent) !important;
    color: var(--foreground) !important;
}

body.xs-client .xs-invoice-pay-ssl i {
    color: var(--xs-warning);
}

/* Stripe elements on invoice pay */
body.xs-client #frmPayment #stripeElements label,
body.xs-client #frmPayment .stripe-cards-inputs label,
body.xs-client #frmPayment .cc-details .col-form-label,
body.xs-client #frmPayment .control-label {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
    float: none !important;
    margin: 0 0 0.4rem !important;
    color: var(--muted-foreground) !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
}

body.xs-client #frmPayment #stripeCreditCard,
body.xs-client #frmPayment #stripeExpiryDate,
body.xs-client #frmPayment #stripeCvc,
body.xs-client #frmPayment .StripeElement,
body.xs-client #frmPayment #inputDescription,
body.xs-client #frmPayment .cc-payment-form .form-control:not(#inputPhone) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.85rem !important;
    padding: 0.7rem 0.9rem !important;
    box-sizing: border-box !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.75rem !important;
    color: var(--foreground) !important;
}

/* Keep Stripe Link fully visible */
body.xs-client #frmPayment.card,
body.xs-client #frmPayment .card,
body.xs-client #frmPayment .xs-invpay-panel,
body.xs-client #frmPayment .card-body {
    overflow: visible !important;
}
body.xs-client #frmPayment #stripeCreditCard,
body.xs-client #frmPayment #stripeCreditCard.form-control,
body.xs-client #frmPayment #stripeCreditCard.StripeElement {
    overflow: visible !important;
    min-height: 3.25rem !important;
    height: auto !important;
    padding: 0.85rem 1rem !important;
}
body.xs-client #frmPayment #stripeCreditCard iframe,
body.xs-client #frmPayment #stripeElements {
    overflow: visible !important;
}

/* Billing address form */
body.xs-client #frmPayment .xs-bill-choice,
body.xs-client #frmPayment #billingAddressChoice {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.65rem !important;
    margin-bottom: 1.15rem !important;
}
body.xs-client #frmPayment .xs-bill-choice-label {
    display: block !important;
    text-align: left !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: var(--muted-foreground) !important;
    margin: 0 !important;
}
body.xs-client #frmPayment .xs-bill-choice-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.55rem !important;
    width: 100% !important;
}
body.xs-client #frmPayment .xs-bill-opt {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.7rem !important;
    margin: 0 !important;
    padding: 0.85rem 1rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.85rem !important;
    background: var(--background) !important;
    color: var(--foreground) !important;
    cursor: pointer !important;
}
body.xs-client #frmPayment .xs-bill-opt-body {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.2rem !important;
}
body.xs-client #frmPayment .xs-bill-opt-body strong {
    color: var(--foreground) !important;
    font-weight: 700 !important;
}
body.xs-client #frmPayment .xs-bill-opt-body small {
    color: var(--muted-foreground) !important;
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
}
body.xs-client #frmPayment #newBillingAddress,
body.xs-client #frmPayment .xs-bill-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.95rem !important;
    margin: 0 0 1.15rem !important;
    padding: 1rem 1.05rem !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.95rem !important;
    background: color-mix(in oklch, var(--background) 88%, var(--card)) !important;
}
body.xs-client #frmPayment #newBillingAddress .cc-billing-address,
body.xs-client #frmPayment .xs-bill-field {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    margin: 0 !important;
    width: 100% !important;
}
body.xs-client #frmPayment #newBillingAddress .col-form-label,
body.xs-client #frmPayment #newBillingAddress label {
    display: block !important;
    width: 100% !important;
    float: none !important;
    text-align: left !important;
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: var(--muted-foreground) !important;
}
body.xs-client #frmPayment #newBillingAddress .xs-bill-input,
body.xs-client #frmPayment #newBillingAddress [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}
body.xs-client #frmPayment #newBillingAddress .form-control:not(#inputPhone),
body.xs-client #frmPayment #newBillingAddress .custom-select,
body.xs-client #frmPayment #newBillingAddress select {
    width: 100% !important;
    min-height: 2.75rem !important;
    padding: 0.65rem 0.85rem !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.7rem !important;
    color: var(--foreground) !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input {
    display: block !important;
    width: 100% !important;
    position: relative !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input .flag-container {
    z-index: 2 !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input.separate-dial-code .selected-dial-code {
    color: var(--foreground) !important;
}
body.xs-client #frmPayment #newBillingAddress #inputPhone,
body.xs-client #frmPayment #newBillingAddress .intl-tel-input input.form-control {
    width: 100% !important;
    min-height: 2.75rem !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.7rem !important;
    color: var(--foreground) !important;
    padding-top: 0.65rem !important;
    padding-bottom: 0.65rem !important;
    padding-right: 0.85rem !important;
    padding-left: 84px !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-2 input {
    padding-left: 76px !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-3 input {
    padding-left: 84px !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-4 input {
    padding-left: 92px !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input.separate-dial-code.allow-dropdown.iti-sdc-5 input {
    padding-left: 100px !important;
}
body.xs-client #frmPayment #newBillingAddress .intl-tel-input .country-list {
    background: var(--card) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    z-index: 30 !important;
}

body.xs-client #frmPayment .cc-details,
body.xs-client #frmPayment #inputDescriptionContainer,
body.xs-client #frmPayment #billingAddressChoice {
    margin-bottom: 1rem !important;
}
body.xs-client #frmPayment #inputDescriptionContainer [class*="col-"],
body.xs-client #frmPayment .cc-details [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ===== Cancel request page ===== */
.xs-cancel-page {
    max-width: 680px;
}
.xs-cancel-page .xs-page-header {
    margin-bottom: 1.25rem;
}
.xs-cancel-page .xs-cancel-panel {
    margin-top: 0;
}
.xs-cancel-page .xs-panel-head h3 {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}
.xs-cancel-page .xs-panel-head h3 .fa-ban {
    color: var(--destructive);
}
.xs-cancel-body {
    padding: 1.5rem 1.5rem 1.65rem;
}
.xs-cancel-target {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1rem 1.15rem;
    margin-bottom: 1.5rem;
    border-radius: 0.9rem;
    border: 1px solid color-mix(in oklch, var(--destructive) 22%, var(--xs-border));
    background: color-mix(in oklch, var(--destructive) 7%, var(--card));
}
.xs-cancel-target-label {
    font-size: 0.7rem;
    font-weight: 650;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}
.xs-cancel-target-name {
    font-size: 1rem;
    font-weight: 650;
    color: var(--foreground);
    line-height: 1.4;
}
.xs-cancel-domain-tag {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0.1rem 0.45rem;
    border-radius: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--xs-primary);
    background: color-mix(in oklch, var(--xs-primary) 12%, transparent);
}
.xs-cancel-form .xs-cancel-field {
    margin-bottom: 1.5rem;
}
.xs-cancel-form .xs-cancel-field > label,
.xs-cancel-form .xs-cancel-type-label {
    display: block;
    margin: 0 0 0.35rem;
    font-size: 0.92rem;
    font-weight: 650;
    color: var(--foreground);
}
.xs-cancel-hint {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--muted-foreground);
}
.xs-cancel-form textarea.form-control {
    min-height: 128px;
    padding: 0.9rem 1rem !important;
    line-height: 1.5;
    resize: vertical;
}
.xs-cancel-domain {
    margin-bottom: 1.5rem;
    padding: 1rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid color-mix(in oklch, var(--xs-warning) 30%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-warning) 8%, var(--card));
}
.xs-cancel-domain-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin-bottom: 0.45rem;
    font-weight: 650;
    color: var(--xs-warning);
}
.xs-cancel-domain p {
    margin: 0 0 0.75rem;
    font-size: 0.85rem;
    color: var(--muted-foreground);
    line-height: 1.45;
}
.xs-cancel-domain-check {
    display: flex !important;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0 !important;
    text-align: left !important;
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--foreground);
}
.xs-cancel-domain-check .form-check-input {
    margin-top: 0.2rem;
    flex-shrink: 0;
}
.xs-cancel-type-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}
.xs-cancel-type-card {
    position: relative;
    display: block;
    margin: 0;
    cursor: pointer;
}
.xs-cancel-type-card > input[type="radio"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
.xs-cancel-type-card .iradio_square-blue,
.xs-cancel-type-card .iradio_flat-blue,
.xs-cancel-type-card .iCheck-helper {
    display: none !important;
}
.xs-cancel-type-card-inner {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-height: 4.5rem;
    padding: 1.05rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--accent) 28%, var(--card));
    transition: border-color .15s, background-color .15s, box-shadow .15s;
}
.xs-cancel-type-card:hover .xs-cancel-type-card-inner {
    border-color: color-mix(in oklch, var(--xs-primary) 35%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 6%, var(--card));
}
.xs-cancel-type-card:has(input:checked) .xs-cancel-type-card-inner,
.xs-cancel-type-card input:checked + .xs-cancel-type-card-inner {
    border-color: color-mix(in oklch, var(--xs-primary) 55%, transparent);
    background: color-mix(in oklch, var(--xs-primary) 11%, var(--card));
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-primary) 16%, transparent);
}
.xs-cancel-type-card:has(input:focus-visible) .xs-cancel-type-card-inner,
.xs-cancel-type-card input:focus-visible + .xs-cancel-type-card-inner {
    outline: 2px solid color-mix(in oklch, var(--xs-primary) 55%, transparent);
    outline-offset: 2px;
}
.xs-cancel-type-icon {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
}
.xs-cancel-type-icon.tone-danger {
    background: color-mix(in oklch, var(--destructive) 16%, transparent);
    color: var(--destructive);
}
.xs-cancel-type-icon.tone-info {
    background: color-mix(in oklch, var(--xs-info) 16%, transparent);
    color: var(--xs-info);
}
.xs-cancel-type-text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    flex: 1 1 auto;
    min-width: 0;
    padding-right: 0.25rem;
}
.xs-cancel-type-text .t {
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--foreground);
    line-height: 1.25;
}
.xs-cancel-type-text .s {
    font-size: 0.8rem;
    color: var(--muted-foreground);
    line-height: 1.4;
}
.xs-cancel-type-check {
    flex: 0 0 auto;
    width: 1.35rem;
    height: 1.35rem;
    margin-top: 0.15rem;
    border-radius: 999px;
    border: 1.5px solid var(--xs-border);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    color: transparent;
    background: transparent;
    transition: background-color .15s, border-color .15s, color .15s;
}
.xs-cancel-type-card:has(input:checked) .xs-cancel-type-check,
.xs-cancel-type-card input:checked + .xs-cancel-type-card-inner .xs-cancel-type-check {
    border-color: var(--xs-primary);
    background: var(--xs-primary);
    color: var(--xs-primary-foreground);
}
.xs-cancel-actions {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    justify-content: flex-start !important;
    margin-top: 0.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--xs-border);
    text-align: left !important;
}
@media (max-width: 640px) {
    .xs-cancel-body {
        padding: 1.2rem 1.1rem 1.35rem;
    }
    .xs-cancel-actions .xs-btn {
        width: 100%;
    }
}

/* ===== Upgrade / Downgrade pages ===== */
.xs-upgrade-page {
    max-width: 960px;
}
.xs-upgrade-page + .xs-upgrade-page,
.xs-upgrade-configure .xs-upgrade-panel + .xs-upgrade-panel {
    margin-top: 1rem;
}
.xs-upgrade-body {
    padding: 1.25rem 1.35rem 1.5rem;
}
.xs-upgrade-current {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.95rem 1.1rem;
    margin-bottom: 1.15rem;
    border-radius: 0.85rem;
    border: 1px solid color-mix(in oklch, var(--xs-primary) 28%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 10%, var(--card));
}
.xs-upgrade-current--row {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0;
}
.xs-upgrade-current-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}
.xs-upgrade-current-name {
    display: block;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--foreground);
    line-height: 1.35;
}
.xs-upgrade-current-domain {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-upgrade-intro {
    margin: 0 0 0.85rem;
    color: var(--muted-foreground);
    font-size: 0.9rem;
}
.xs-upgrade-section-label {
    margin: 0 0 0.75rem;
    font-size: 0.8rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted-foreground);
}
.xs-upgrade-package-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}
.xs-upgrade-configure-grid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.xs-upgrade-package-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 1.1rem 1.15rem 1.15rem;
    border-radius: 0.95rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--accent) 30%, var(--card));
    transition: border-color .15s, box-shadow .15s;
}
.xs-upgrade-package-card:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border));
}
.xs-upgrade-package-card.is-recommended {
    border-color: color-mix(in oklch, var(--xs-success) 45%, transparent);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-success) 12%, transparent);
}
.xs-upgrade-package-card.is-current {
    border-color: color-mix(in oklch, var(--xs-warning) 40%, transparent);
}
.xs-upgrade-badge {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.xs-upgrade-badge.tone-current {
    background: color-mix(in oklch, var(--xs-warning) 20%, transparent);
    color: var(--xs-warning);
}
.xs-upgrade-badge.tone-recommended {
    background: color-mix(in oklch, var(--xs-success) 20%, transparent);
    color: var(--xs-success);
}
.xs-upgrade-package-head h4 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-upgrade-package-card:has(.xs-upgrade-badge) .xs-upgrade-package-head h4 {
    padding-right: 4.5rem;
}
.xs-upgrade-package-group {
    display: inline-block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--muted-foreground);
}
.xs-upgrade-package-desc {
    font-size: 0.85rem;
    color: var(--muted-foreground);
    line-height: 1.45;
}
.xs-upgrade-package-desc p {
    margin: 0 0 0.4rem;
}
.xs-upgrade-package-desc ul {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
}
.xs-upgrade-feature-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--xs-border);
}
.xs-upgrade-feature-list li {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.55rem 0;
    border-bottom: 1px solid var(--xs-border);
    font-size: 0.82rem;
    color: var(--muted-foreground);
}
.xs-upgrade-feature-list li:last-child {
    border-bottom: 0;
}
.xs-upgrade-feature-list li span {
    color: var(--foreground);
}
.xs-upgrade-feature-list li em {
    font-style: normal;
    color: var(--muted-foreground);
}
.xs-upgrade-feature-list .fa-check {
    color: var(--xs-success);
}
.xs-upgrade-feature-list .fa-times {
    color: var(--destructive);
}
.xs-upgrade-package-form {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.xs-upgrade-package-price .form-control,
.xs-upgrade-package-price .custom-select {
    width: 100%;
}
.xs-upgrade-price-free,
.xs-upgrade-price-amount {
    display: block;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-upgrade-price-cycle {
    font-size: 0.78rem;
    color: var(--muted-foreground);
}
.xs-upgrade-choose-btn {
    width: 100%;
}
.xs-upgrade-choose-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}
.xs-upgrade-qty-inline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.85rem;
}
.xs-upgrade-qty-inline .form-control {
    width: 5.5rem;
    text-align: center;
}
.xs-upgrade-actions {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: flex-start !important;
    margin-top: 0.35rem;
}
.xs-upgrade-config-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.15rem;
}
.xs-upgrade-config-row {
    padding: 0.95rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--accent) 28%, var(--card));
}
.xs-upgrade-config-name {
    margin-bottom: 0.65rem;
    font-size: 0.9rem;
    font-weight: 650;
    color: var(--foreground);
}
.xs-upgrade-config-cols {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.75rem;
    align-items: center;
}
.xs-upgrade-config-col-label {
    display: block;
    margin-bottom: 0.3rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}
.xs-upgrade-config-col-value {
    display: block;
    font-size: 0.88rem;
    color: var(--foreground);
}
.xs-upgrade-config-arrow {
    color: var(--muted-foreground);
    opacity: 0.7;
}
.xs-upgrade-check {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    cursor: pointer;
}
.xs-upgrade-qty {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.xs-upgrade-qty .form-control {
    width: 5rem;
}
.xs-upgrade-summary-table-wrap {
    margin-bottom: 1rem;
    overflow-x: auto;
    border-radius: 0.85rem;
    border: 1px solid var(--xs-border);
}
.xs-upgrade-summary-table {
    margin: 0;
    width: 100%;
}
.xs-upgrade-summary-table th,
.xs-upgrade-summary-table td {
    padding: 0.8rem 1rem;
    border-bottom: 1px solid var(--xs-border);
    vertical-align: middle;
}
.xs-upgrade-summary-table tbody tr:last-child th,
.xs-upgrade-summary-table tbody tr:last-child td {
    border-bottom: 0;
}
.xs-upgrade-from {
    color: var(--muted-foreground);
}
.xs-upgrade-to {
    font-weight: 650;
    color: var(--foreground);
}
.xs-upgrade-arrow-inline {
    margin: 0 0.4rem;
    font-size: 0.7rem;
    color: var(--muted-foreground);
}
.xs-upgrade-subtotal td {
    color: var(--muted-foreground);
}
.xs-upgrade-total td {
    font-weight: 700;
    font-size: 1rem;
    background: color-mix(in oklch, var(--xs-primary) 8%, transparent);
}
.xs-upgrade-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 0.5rem;
}
.xs-upgrade-summary-block {
    padding: 1rem 1.05rem;
    border-radius: 0.85rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--accent) 25%, var(--card));
}
.xs-upgrade-summary-block h4 {
    margin: 0 0 0.75rem;
    font-size: 0.95rem;
    font-weight: 650;
}
.xs-upgrade-promo-row {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}
.xs-upgrade-promo-row .form-control {
    flex: 1 1 160px;
}
@media (max-width: 768px) {
    .xs-upgrade-package-grid,
    .xs-upgrade-summary-grid,
    .xs-upgrade-config-cols {
        grid-template-columns: 1fr;
    }
    .xs-upgrade-config-arrow {
        display: none;
    }
    .xs-upgrade-current--row {
        flex-direction: column;
        align-items: flex-start;
    }
    .xs-upgrade-actions .xs-btn,
    .xs-upgrade-promo-row .xs-btn {
        width: 100%;
    }
}

/* === xs-upgrade forced (loaded via client css) === */
/* xServere Upgrade — forced card UI (fallbacks if tokens missing) */

body.xs-client .xs-upgrade,
.xs-upgrade {
  width: 100% !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
}

body.xs-client .xs-upgrade .xs-page-header {
  margin-bottom: 1.25rem !important;
}

body.xs-client .xs-upgrade-card,
.xs-upgrade-card {
  display: block !important;
  margin: 0 !important;
  border: 1px solid #2b3548 !important;
  border: 1px solid var(--xs-border, #2b3548) !important;
  border-radius: 1.15rem !important;
  background: #121826 !important;
  background: var(--card, #121826) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.35) !important;
  overflow: hidden !important;
}

body.xs-client .xs-upgrade-card-top,
.xs-upgrade-card-top {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 1.25rem 1.35rem !important;
  border-bottom: 1px solid #2b3548 !important;
  background: linear-gradient(135deg, rgba(59,130,246,.18), rgba(18,24,38,.95) 55%, #121826) !important;
}

body.xs-client .xs-upgrade-card-icon,
.xs-upgrade-card-icon {
  flex: 0 0 auto !important;
  width: 3rem !important;
  height: 3rem !important;
  border-radius: .9rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(59,130,246,.2) !important;
  color: #60a5fa !important;
  font-size: 1.1rem !important;
}

body.xs-client .xs-upgrade-card-kicker,
.xs-upgrade-card-kicker {
  font-size: .72rem !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: #93c5fd !important;
  margin: 0 0 .2rem !important;
}

body.xs-client .xs-upgrade-card-service,
.xs-upgrade-card-service {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #f8fafc !important;
  line-height: 1.35 !important;
}

body.xs-client .xs-upgrade-card-host,
.xs-upgrade-card-host {
  display: inline-block !important;
  margin-left: .35rem !important;
  padding: .12rem .5rem !important;
  border-radius: .45rem !important;
  font-size: .8rem !important;
  font-weight: 650 !important;
  color: #60a5fa !important;
  background: rgba(59,130,246,.16) !important;
}

body.xs-client .xs-upgrade-card-body,
.xs-upgrade-card-body {
  padding: 1.35rem !important;
}

body.xs-client .xs-upgrade-step-head,
.xs-upgrade-step-head {
  display: flex !important;
  align-items: flex-start !important;
  gap: .85rem !important;
  margin: 0 0 1rem !important;
}

body.xs-client .xs-upgrade-step-num,
.xs-upgrade-step-num {
  flex: 0 0 auto !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  color: #fff !important;
  background: #3b82f6 !important;
  margin-top: .1rem !important;
}

body.xs-client .xs-upgrade-step-head h2,
.xs-upgrade-step-head h2 {
  margin: 0 0 .2rem !important;
  font-size: .98rem !important;
  font-weight: 700 !important;
  color: #f8fafc !important;
}

body.xs-client .xs-upgrade-step-head p,
.xs-upgrade-step-head p,
body.xs-client .xs-upgrade-hint,
.xs-upgrade-hint {
  margin: 0 !important;
  font-size: .82rem !important;
  line-height: 1.45 !important;
  color: #94a3b8 !important;
}

body.xs-client .xs-upgrade-opts,
.xs-upgrade-opts {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  align-items: stretch !important;
}

body.xs-client .xs-upgrade-opt,
.xs-upgrade-opt {
  display: flex !important;
  margin: 0 !important;
  height: 100% !important;
}

body.xs-client .xs-upgrade-opt-box,
.xs-upgrade-opt-box {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: .85rem !important;
  width: 100% !important;
  height: 100% !important;
  box-sizing: border-box !important;
  padding: 1.15rem !important;
  border-radius: .95rem !important;
  border: 1px solid #2b3548 !important;
  background: #171e2b !important;
}

body.xs-client .xs-upgrade-opt:hover .xs-upgrade-opt-box,
.xs-upgrade-opt:hover .xs-upgrade-opt-box {
  border-color: rgba(59,130,246,.55) !important;
  background: #1a2436 !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,.16) !important;
}

body.xs-client .xs-upgrade-opt-head,
.xs-upgrade-opt-head {
  display: flex !important;
  align-items: center !important;
  gap: .75rem !important;
}

body.xs-client .xs-upgrade-opt-ico,
.xs-upgrade-opt-ico {
  flex: 0 0 auto !important;
  width: 2.6rem !important;
  height: 2.6rem !important;
  border-radius: .8rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(59,130,246,.18) !important;
  color: #60a5fa !important;
  font-size: 1rem !important;
}

body.xs-client .xs-upgrade-opt-main,
.xs-upgrade-opt-main {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .55rem !important;
}

body.xs-client .xs-upgrade-opt-group,
.xs-upgrade-opt-group {
  display: inline-flex !important;
  align-self: flex-start !important;
  padding: .15rem .5rem !important;
  border-radius: 999px !important;
  font-size: .68rem !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #94a3b8 !important;
  border: 1px solid #2b3548 !important;
  background: #121826 !important;
}

body.xs-client .xs-upgrade-opt-title,
.xs-upgrade-opt-title {
  display: block !important;
  font-size: 1.15rem !important;
  font-weight: 800 !important;
  letter-spacing: -.02em !important;
  color: #f8fafc !important;
  text-transform: capitalize !important;
  line-height: 1.2 !important;
}

body.xs-client .xs-upgrade-opt-desc,
.xs-upgrade-opt-desc {
  font-size: .82rem !important;
  color: #94a3b8 !important;
  line-height: 1.45 !important;
}

body.xs-client .xs-upgrade-opt-price,
.xs-upgrade-opt-price {
  margin-top: auto !important;
  padding: .75rem .85rem !important;
  border-radius: .75rem !important;
  border: 1px solid #2b3548 !important;
  background: #0f1520 !important;
}

body.xs-client .xs-upgrade-opt-amount,
.xs-upgrade-opt-amount {
  display: block !important;
  font-size: 1.35rem !important;
  font-weight: 800 !important;
  color: #60a5fa !important;
}

body.xs-client .xs-upgrade-opt-cycle-lab,
.xs-upgrade-opt-cycle-lab {
  display: block !important;
  margin: 0 0 .35rem !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #94a3b8 !important;
}

body.xs-client .xs-upgrade .xs-upgrade-cycle-select,
body.xs-client .xs-upgrade .xs-upgrade-cycle-select.form-control,
body.xs-client .xs-upgrade .xs-upgrade-cycle-select.custom-select {
  width: 100% !important;
  max-width: 100% !important;
  height: 44px !important;
  font-weight: 650 !important;
  border-radius: .65rem !important;
  background: #121826 !important;
  border: 1px solid #2b3548 !important;
  color: #f8fafc !important;
}

body.xs-client .xs-upgrade-opt-btn,
.xs-upgrade-opt-btn {
  width: 100% !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  align-self: stretch !important;
  white-space: nowrap !important;
  min-height: 42px !important;
}

body.xs-client .xs-upgrade-foot,
.xs-upgrade-foot {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .65rem !important;
  margin-top: .25rem !important;
}

body.xs-client .xs-upgrade-empty,
.xs-upgrade-empty {
  padding: 1.5rem 1rem !important;
  text-align: center !important;
  border: 1px dashed #2b3548 !important;
  border-radius: .9rem !important;
  color: #94a3b8 !important;
}

body.xs-client .xs-upgrade-config-list,
.xs-upgrade-config-list {
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
  margin-bottom: 1.1rem !important;
}

body.xs-client .xs-upgrade-config-row,
.xs-upgrade-config-row {
  padding: .95rem 1rem !important;
  border-radius: .85rem !important;
  border: 1px solid #2b3548 !important;
  background: #171e2b !important;
}

body.xs-client .xs-upgrade-config-name,
.xs-upgrade-config-name {
  margin-bottom: .65rem !important;
  font-weight: 650 !important;
  color: #f8fafc !important;
}

body.xs-client .xs-upgrade-config-cols,
.xs-upgrade-config-cols {
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  gap: .75rem !important;
  align-items: center !important;
}

body.xs-client .xs-upgrade-config-lab,
.xs-upgrade-config-lab {
  display: block !important;
  margin-bottom: .25rem !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #94a3b8 !important;
}

body.xs-client .xs-upgrade-config-val,
.xs-upgrade-config-val {
  color: #f8fafc !important;
}

body.xs-client .xs-upgrade-config-arrow,
.xs-upgrade-config-arrow {
  color: #64748b !important;
}

@media (max-width: 991.98px) {
  body.xs-client .xs-upgrade-opts,
  .xs-upgrade-opts {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.xs-client .xs-upgrade,
  .xs-upgrade {
    max-width: 100% !important;
  }
  body.xs-client .xs-upgrade-opts,
  .xs-upgrade-opts {
    grid-template-columns: 1fr !important;
  }
  body.xs-client .xs-upgrade-config-cols,
  .xs-upgrade-config-cols {
    grid-template-columns: 1fr !important;
  }
  body.xs-client .xs-upgrade-config-arrow,
  .xs-upgrade-config-arrow {
    display: none !important;
  }
}

/* ========== New ticket — professional multi-card (dark + light) ========== */
.xs-ticket-new {
    width: 100%;
}
.xs-ticket-new-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    gap: 1.25rem;
    align-items: start;
}
.xs-ticket-new-main,
.xs-ticket-new-aside {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}
.xs-ticket-card .xs-panel-head {
    padding: 1.1rem 1.35rem;
}
.xs-ticket-card-title {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}
.xs-ticket-card-title h3 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-ticket-card-title p {
    margin: 0.2rem 0 0;
    font-size: 0.8rem;
    color: var(--muted-foreground);
    font-weight: 500;
}
.xs-ticket-card-ico {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
}
.xs-ticket-card-ico.tone-primary {
    background: color-mix(in oklch, var(--xs-primary) 16%, transparent);
    color: var(--xs-primary);
}
.xs-ticket-card-ico.tone-violet {
    background: color-mix(in oklch, var(--violet) 16%, transparent);
    color: var(--violet);
}
.xs-ticket-card-ico.tone-info {
    background: color-mix(in oklch, var(--xs-info) 16%, transparent);
    color: var(--xs-info);
}
.xs-ticket-card-ico.tone-success {
    background: color-mix(in oklch, var(--xs-success) 16%, transparent);
    color: var(--xs-success);
}
.xs-ticket-card-body {
    padding: 1.2rem 1.35rem 1.4rem;
}
.xs-ticket-new .form-group {
    margin-bottom: 1rem;
}
.xs-ticket-new .form-group.mb-0 {
    margin-bottom: 0;
}
.xs-ticket-new label:not(.custom-file-label):not(.sr-only) {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--muted-foreground);
}
.xs-ticket-grid {
    display: grid;
    gap: 1rem;
}
.xs-ticket-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.xs-ticket-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Themed inputs — no stark white boxes; works on guest (xs-auth) + client */
.xs-ticket-new .form-control,
.xs-ticket-new select.form-control,
.xs-ticket-new textarea.form-control,
body.xs-auth .xs-ticket-new .form-control,
body.xs-client .xs-ticket-new .form-control,
body.xs-auth .xs-ticket-new select.form-control,
body.xs-client .xs-ticket-new select.form-control {
    height: 46px;
    border-radius: 0.75rem !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
    font-weight: 500;
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}
.xs-ticket-new textarea.form-control,
body.xs-auth .xs-ticket-new textarea.form-control,
body.xs-client .xs-ticket-new textarea.form-control {
    height: auto;
    min-height: 160px;
}
.xs-ticket-new .form-control:focus,
.xs-ticket-new select.form-control:focus,
body.xs-auth .xs-ticket-new .form-control:focus,
body.xs-client .xs-ticket-new .form-control:focus {
    border-color: color-mix(in oklch, var(--xs-primary) 55%, var(--xs-border)) !important;
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-primary) 18%, transparent) !important;
    outline: none !important;
}
.xs-ticket-new .form-control:disabled,
.xs-ticket-new .form-control.disabled,
body.xs-auth .xs-ticket-new .form-control:disabled,
body.xs-client .xs-ticket-new .form-control:disabled {
    opacity: 0.72;
    cursor: not-allowed;
    background: color-mix(in oklch, var(--muted) 55%, var(--background)) !important;
}
.xs-ticket-new .form-control::placeholder {
    color: var(--muted-foreground) !important;
    opacity: 0.75;
}
html.light .xs-ticket-new .form-control,
html.light body.xs-auth .xs-ticket-new .form-control,
html.light body.xs-client .xs-ticket-new .form-control {
    background: var(--muted) !important;
    border-color: var(--xs-border) !important;
}
html.light .xs-ticket-new .form-control:focus {
    background: var(--card) !important;
}

/* Markdown editor inside ticket cards (guest + client) */
.xs-ticket-new .md-editor,
.xs-ticket-new .xs-md-wrap .md-editor,
body.xs-auth .xs-ticket-new .md-editor,
body.xs-client .xs-ticket-new .md-editor {
    border: 1px solid var(--xs-border) !important;
    border-radius: 0.9rem !important;
    overflow: hidden;
    background: var(--background) !important;
    box-shadow: none !important;
}
html.light .xs-ticket-new .md-editor {
    background: var(--muted) !important;
}
.xs-ticket-new .md-editor > .btn-toolbar,
.xs-ticket-new .md-editor .md-header,
.xs-ticket-new .md-editor .btn-toolbar,
body.xs-auth .xs-ticket-new .md-editor .btn-toolbar {
    background: color-mix(in oklch, var(--muted) 55%, var(--card)) !important;
    border-bottom: 1px solid var(--xs-border) !important;
    padding: 0.45rem 0.55rem !important;
    margin: 0 !important;
}
.xs-ticket-new .md-editor .btn-toolbar .btn,
body.xs-auth .xs-ticket-new .md-editor .btn-toolbar .btn {
    background: transparent !important;
    border: 0 !important;
    color: var(--muted-foreground) !important;
    border-radius: 0.45rem !important;
    box-shadow: none !important;
}
.xs-ticket-new .md-editor .btn-toolbar .btn:hover {
    background: var(--accent) !important;
    color: var(--foreground) !important;
}
.xs-ticket-new .md-editor > textarea.markdown-editor,
.xs-ticket-new .md-editor > .md-preview,
.xs-ticket-new .md-editor .md-input,
body.xs-auth .xs-ticket-new .md-editor > textarea.markdown-editor {
    background: transparent !important;
    color: var(--foreground) !important;
    border: 0 !important;
    min-height: 180px;
    padding: 1rem 1.1rem !important;
}
.xs-ticket-new .md-editor .md-footer,
.xs-ticket-new .markdown-editor-status,
body.xs-auth .xs-ticket-new .md-editor .md-footer,
body.xs-auth .xs-ticket-new .markdown-editor-status {
    display: block !important;
    background: color-mix(in oklch, var(--muted) 65%, var(--card)) !important;
    background-color: color-mix(in oklch, var(--muted) 65%, var(--card)) !important;
    border-top: 1px solid var(--xs-border) !important;
    color: var(--muted-foreground) !important;
}

/* Dropzone refinements on themed cards */
.xs-ticket-new .xs-ticket-dropzone {
    margin-bottom: 0;
    background: color-mix(in oklch, var(--muted) 40%, transparent);
    border-color: color-mix(in oklch, var(--xs-border) 80%, var(--xs-primary) 20%);
}
html.light .xs-ticket-new .xs-ticket-dropzone {
    background: var(--muted);
}
.xs-ticket-new .xs-ticket-dropzone:hover,
.xs-ticket-new .xs-ticket-dropzone.is-dragover {
    border-color: color-mix(in oklch, var(--xs-primary) 45%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 8%, var(--card));
}

.xs-ticket-submit-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.xs-ticket-captcha {
    width: 100%;
    display: flex;
    justify-content: center;
}
.xs-ticket-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    align-items: center;
}
.xs-ticket-tips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.95rem;
}
.xs-ticket-tips li {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}
.xs-ticket-tips strong {
    display: block;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-ticket-tips span:not(.xs-ticket-tip-ico) {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--muted-foreground);
}
.xs-ticket-tip-ico {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 0.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in oklch, var(--xs-primary) 14%, transparent);
    color: var(--xs-primary);
    font-size: 0.8rem;
}
@media (max-width: 960px) {
    .xs-ticket-new-layout {
        grid-template-columns: 1fr;
    }
    .xs-ticket-new-aside {
        order: -1;
    }
}
@media (max-width: 720px) {
    .xs-ticket-grid-2,
    .xs-ticket-grid-3 {
        grid-template-columns: 1fr;
    }
}

/* ========== Contact page (ticket-style panels) ========== */
.xs-contact-page {
    width: 100%;
}
.xs-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1.25rem;
    align-items: start;
}
.xs-contact-main,
.xs-contact-aside {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.xs-contact-panel-body {
    padding: 1.25rem 1.5rem 1.5rem;
}
.xs-contact-page .form-group {
    margin-bottom: 1rem;
}
.xs-contact-page label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--foreground);
}
.xs-contact-page .form-control,
body.xs-auth[data-template="contact"] .xs-contact-page .form-control {
    height: 44px;
    border-radius: 0.75rem !important;
    background: var(--background) !important;
    border: 1px solid var(--xs-border) !important;
    color: var(--foreground) !important;
    box-shadow: none !important;
}
.xs-contact-page textarea.form-control,
body.xs-auth[data-template="contact"] .xs-contact-page textarea.form-control {
    height: auto;
    min-height: 180px;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}
.xs-contact-page .form-control:focus,
body.xs-auth[data-template="contact"] .xs-contact-page .form-control:focus {
    border-color: var(--xs-primary) !important;
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--xs-primary) 25%, transparent) !important;
}
.xs-contact-page .form-control::placeholder {
    color: var(--muted-foreground) !important;
}
html.light .xs-contact-page .form-control {
    background: var(--muted) !important;
}
html.light .xs-contact-page .form-control:focus {
    background: var(--card) !important;
}
.xs-contact-submit-panel .xs-contact-submit-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}
.xs-contact-captcha {
    width: 100%;
    display: flex;
    justify-content: center;
}
.xs-contact-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    justify-content: center;
    align-items: center;
}
.xs-contact-sent-body {
    text-align: center;
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.xs-contact-sent-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    margin-bottom: 1rem;
    background: color-mix(in oklch, var(--xs-success) 22%, transparent);
    color: var(--xs-success);
    font-size: 1.15rem;
}
.xs-contact-sent-body h2 {
    margin: 0 0 0.5rem;
    font-size: 1.35rem;
    font-weight: 800;
}
.xs-contact-sent-body p {
    margin: 0 0 1.25rem;
    color: var(--muted-foreground);
}
.xs-contact-aside-lead {
    margin: 0 0 1rem;
    color: var(--muted-foreground);
    font-size: 0.9rem;
    line-height: 1.5;
}
.xs-contact-points {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.xs-contact-points li {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}
.xs-contact-points strong {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--foreground);
}
.xs-contact-points span:not(.xs-contact-point-ico) {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8rem;
    color: var(--muted-foreground);
    line-height: 1.4;
}
.xs-contact-point-ico {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
}
.xs-contact-point-ico.tone-primary {
    background: color-mix(in oklch, var(--xs-primary) 18%, transparent);
    color: var(--xs-primary);
}
.xs-contact-point-ico.tone-violet {
    background: color-mix(in oklch, var(--violet) 18%, transparent);
    color: var(--violet);
}
.xs-contact-point-ico.tone-success {
    background: color-mix(in oklch, var(--xs-success) 18%, transparent);
    color: var(--xs-success);
}
.xs-contact-info-card + .xs-contact-info-card {
    margin-top: 0;
}
@media (max-width: 900px) {
    .xs-contact-layout {
        grid-template-columns: 1fr;
    }
}

/* ========== Legal / Terms page — card points ========== */
.xs-legal-page { width: 100%; }
.xs-legal-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--muted) 55%, var(--card));
    color: var(--muted-foreground);
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
}
.xs-legal-layout {
    display: grid;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    gap: 1.25rem;
    align-items: start;
}
.xs-legal-aside {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
    position: sticky;
    top: 1rem;
}
.xs-legal-toc-body { padding: 0.85rem 1.1rem 1.15rem; }
.xs-legal-toc {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    max-height: min(52vh, 480px);
    overflow: auto;
    padding-right: 0.25rem;
}
.xs-legal-toc a {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.5rem 0.55rem;
    border-radius: 0.55rem;
    color: var(--muted-foreground) !important;
    font-size: 0.78rem;
    font-weight: 550;
    line-height: 1.35;
    text-decoration: none !important;
    border-left: 2px solid transparent;
}
.xs-legal-toc a .n {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: color-mix(in oklch, var(--xs-primary) 70%, var(--muted-foreground));
    min-width: 1.4rem;
}
.xs-legal-toc a:hover {
    background: var(--accent);
    color: var(--foreground) !important;
}
.xs-legal-toc a.is-active {
    background: color-mix(in oklch, var(--xs-primary) 12%, transparent);
    color: var(--foreground) !important;
    border-left-color: var(--xs-primary);
}
.xs-legal-toc a.is-active .n { color: var(--xs-primary); }
.xs-legal-docs {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.xs-legal-docs a {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.65rem;
    border: 1px solid var(--xs-border);
    background: color-mix(in oklch, var(--muted) 35%, transparent);
    color: var(--foreground) !important;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none !important;
}
.xs-legal-docs a:hover {
    border-color: color-mix(in oklch, var(--xs-primary) 40%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-primary) 8%, var(--card));
}
.xs-legal-docs a i {
    color: var(--xs-primary);
    width: 1rem;
    text-align: center;
}
.xs-legal-legend-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    font-size: 0.8rem;
    color: var(--muted-foreground);
}
.xs-legal-legend-list li {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}
.xs-legal-mark {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 0.25rem;
    flex-shrink: 0;
}
.xs-legal-mark--key {
    background: color-mix(in oklch, var(--xs-primary) 35%, transparent);
    box-shadow: inset 0 -2px 0 var(--xs-primary);
}
.xs-legal-mark--def {
    background: color-mix(in oklch, var(--xs-info) 30%, transparent);
    border: 1px solid color-mix(in oklch, var(--xs-info) 45%, transparent);
}
.xs-legal-mark--warn {
    background: color-mix(in oklch, var(--xs-warning) 28%, transparent);
    border: 1px solid color-mix(in oklch, var(--xs-warning) 40%, transparent);
}

.xs-legal-lead { margin-bottom: 1.15rem; overflow: hidden; }
.xs-legal-lead-inner {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.25rem 1.4rem;
}
.xs-legal-lead h2 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}
.xs-legal-lead p {
    margin: 0.35rem 0 0;
    color: var(--muted-foreground);
    font-size: 0.9rem;
    line-height: 1.5;
    max-width: 52rem;
}

.xs-legal-sections {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}
.xs-legal-section {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}
.xs-legal-section-head {
    padding: 1rem 1.2rem !important;
}
.xs-legal-section-title {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
}
.xs-legal-section-copy { min-width: 0; }
.xs-legal-kicker {
    margin: 0 0 0.15rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--xs-primary);
}
.xs-legal-section-title h3 {
    margin: 0;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.015em;
}
.xs-legal-num {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.8rem;
    background: color-mix(in oklch, var(--xs-primary) 16%, transparent);
    color: var(--xs-primary);
    font-size: 0.82rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* Points grid */
.xs-legal-points {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
}
.xs-legal-points-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}
.xs-legal-points-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 720px) {
    .xs-legal-points-grid--compact {
        grid-template-columns: 1fr;
    }
}

.xs-legal-subgroup {
    margin: 0.35rem 0 0.15rem;
}
.xs-legal-subgroup--numbered {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
}
.xs-legal-subgroup-title {
    margin: 0;
    padding: 0.35rem 0.15rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted-foreground);
}

.xs-legal-point {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.85rem;
    align-items: start;
    padding: 1rem 1.1rem;
    border: 1px solid var(--xs-border);
    border-radius: 1rem;
    background:
        linear-gradient(180deg, color-mix(in oklch, var(--card) 92%, white 4%), var(--card));
    box-shadow: var(--shadow-card);
}
html.light .xs-legal-point {
    background: var(--card);
}
.xs-legal-point-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    height: 1.85rem;
    padding: 0 0.45rem;
    border-radius: 0.55rem;
    background: color-mix(in oklch, var(--xs-primary) 14%, transparent);
    color: var(--xs-primary);
    font-size: 0.72rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    margin-top: 0.1rem;
    white-space: nowrap;
}
.xs-legal-point-body {
    min-width: 0;
    font-size: 0.915rem;
    line-height: 1.7;
    color: color-mix(in oklch, var(--foreground) 74%, var(--muted-foreground));
    font-weight: 450;
}
.xs-legal-point-body > p,
.xs-legal-point-body > div {
    margin: 0;
}
.xs-legal-point-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--foreground);
    letter-spacing: -0.01em;
}
.xs-legal-point-body a {
    color: var(--xs-primary) !important;
    font-weight: 650;
    text-decoration: none !important;
    border-bottom: 1px solid color-mix(in oklch, var(--xs-primary) 35%, transparent);
}
.xs-legal-point-body a:hover { border-bottom-color: var(--xs-primary); }

.xs-legal-point .xs-legal-em,
.xs-legal-point b.xs-legal-em,
.xs-legal-point strong.xs-legal-em {
    color: var(--foreground) !important;
    font-weight: 750 !important;
    background: linear-gradient(transparent 62%, color-mix(in oklch, var(--xs-primary) 28%, transparent) 62%);
    padding: 0 0.12em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
html.light .xs-legal-point .xs-legal-em {
    background: linear-gradient(transparent 62%, color-mix(in oklch, var(--xs-primary) 20%, transparent) 62%);
}

/* Definition points */
.xs-legal-point--def {
    border-color: color-mix(in oklch, var(--xs-info) 32%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-info) 7%, var(--card));
}
.xs-legal-point--def .xs-legal-point-badge {
    background: color-mix(in oklch, var(--xs-info) 16%, transparent);
    color: var(--xs-info);
}
.xs-legal-point--def .xs-legal-term {
    color: var(--xs-info) !important;
    font-weight: 800 !important;
    background: none !important;
}

/* Critical points */
.xs-legal-point--critical {
    border-color: color-mix(in oklch, var(--xs-warning) 36%, var(--xs-border));
    background: color-mix(in oklch, var(--xs-warning) 8%, var(--card));
}
.xs-legal-point--critical .xs-legal-point-badge {
    background: color-mix(in oklch, var(--xs-warning) 18%, transparent);
    color: color-mix(in oklch, var(--xs-warning) 80%, var(--foreground));
}

/* Bullet/list points */
.xs-legal-point--bullet {
    background: color-mix(in oklch, var(--muted) 28%, var(--card));
}
html.light .xs-legal-point--bullet {
    background: var(--muted);
}

@media (max-width: 960px) {
    .xs-legal-layout { grid-template-columns: 1fr; }
    .xs-legal-aside { position: static; order: -1; }
    .xs-legal-toc { max-height: 200px; }
    .xs-legal-legend { display: none; }
}

/* ========== Facturi fiscale ========== */
.xs-fiscal-num {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 0.45rem;
    background: color-mix(in oklch, var(--xs-primary) 14%, transparent);
    color: var(--xs-primary);
    font-weight: 700;
    font-size: 0.85rem;
}
.xs-fiscal-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}
.xs-fiscal-empty {
    text-align: center;
    padding: 2.5rem 1.25rem;
    color: var(--muted-foreground);
}
.xs-fiscal-empty h3 {
    margin: 0.85rem 0 0.35rem;
    color: var(--foreground);
    font-weight: 800;
}
.xs-fiscal-empty p {
    margin: 0 0 1.1rem;
    font-size: 0.9rem;
}
.xs-fiscal-aside {
    padding: 1.25rem;
    font-size: 0.875rem;
    color: var(--muted-foreground);
    line-height: 1.55;
}
.xs-fiscal-aside p { margin: 0 0 1rem; }
.xs-fiscal-tips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.xs-fiscal-tips li {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: var(--foreground);
    font-size: 0.85rem;
}
.xs-fiscal-tips i {
    color: var(--xs-primary);
    margin-top: 0.15rem;
    width: 1rem;
    text-align: center;
}