/*
 * Vendalio Design System 2026.07
 * Capa visual global y reutilizable. No modifica lógica, datos ni permisos.
 */
:root {
    --color-primary: #0b63ce;
    --color-primary-dark: #06458f;
    --color-primary-strong: #003a7a;
    --color-primary-soft: #eaf3ff;
    --color-secondary: #00a98f;
    --color-secondary-dark: #007c6a;
    --color-secondary-soft: #e8fbf7;
    --color-success: #07875f;
    --color-success-soft: #eaf8f2;
    --color-warning: #c96a00;
    --color-warning-soft: #fff5e6;
    --color-danger: #c92a3d;
    --color-danger-soft: #fff0f2;
    --color-info: #087f9c;
    --color-info-soft: #e9f8fb;
    --color-background: #f3f6fa;
    --color-surface: #ffffff;
    --color-surface-soft: #f8fafc;
    --color-text: #12213a;
    --color-text-muted: #64748b;
    --color-text-soft: #8290a3;
    --color-border: #dce5ef;
    --color-border-strong: #c9d6e4;
    --sidebar-background: #062d5f;
    --sidebar-background-end: #074f76;
    --sidebar-text: #d7e5f4;
    --sidebar-text-active: #ffffff;
    --focus-ring: 0 0 0 .22rem rgba(11, 99, 206, .18);
    --border-radius-xs: 8px;
    --border-radius-sm: 10px;
    --border-radius: 14px;
    --border-radius-lg: 18px;
    --border-radius-xl: 24px;
    --shadow-card: 0 12px 30px rgba(18, 33, 58, .07);
    --shadow-card-hover: 0 18px 38px rgba(18, 33, 58, .11);
    --shadow-overlay: 0 24px 70px rgba(6, 25, 50, .22);
    --content-max-width: 1680px;
    --transition-fast: 150ms ease;
    --transition-base: 220ms ease;
    --font-ui: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

html {
    scroll-behavior: smooth;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: var(--font-ui);
    color: var(--color-text);
}

::selection {
    color: #fff;
    background: var(--color-primary);
}

:focus-visible {
    outline: 3px solid rgba(11, 99, 206, .32);
    outline-offset: 2px;
}

.pv-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 99999;
    transform: translateY(-150%);
    padding: 10px 14px;
    border-radius: var(--border-radius-sm);
    color: #fff;
    background: var(--color-primary-strong);
    font-weight: 800;
    text-decoration: none;
    transition: transform var(--transition-fast);
}

.pv-skip-link:focus {
    transform: translateY(0);
    color: #fff;
}

/* =========================================================
   Aplicación de cliente y administración
   ========================================================= */
body.pv-app-body,
body.pv-admin-body {
    min-width: 320px;
    background: var(--color-background) !important;
    color: var(--color-text);
}

.pv-app-body .client-shell,
.pv-admin-body .admin-shell,
.pv-app-body .client-main,
.pv-admin-body .admin-main {
    background:
        radial-gradient(circle at 94% 4%, rgba(11, 99, 206, .055), transparent 24rem),
        linear-gradient(180deg, #f8fafc 0%, var(--color-background) 100%) fixed !important;
}

.pv-app-body .client-sidebar,
.pv-admin-body .admin-sidebar {
    padding: 18px 14px 20px !important;
    background:
        radial-gradient(circle at 15% 0%, rgba(0, 169, 143, .22), transparent 18rem),
        linear-gradient(180deg, var(--sidebar-background) 0%, #073b6b 58%, var(--sidebar-background-end) 100%) !important;
    border-right: 1px solid rgba(255, 255, 255, .11);
    box-shadow: 12px 0 34px rgba(6, 45, 95, .10);
}

.pv-app-body .client-sidebar-head,
.pv-admin-body .admin-sidebar-head {
    min-height: 64px;
    margin-bottom: 18px;
    padding: 8px 9px !important;
    border: 1px solid rgba(11, 99, 206, .14) !important;
    border-radius: var(--border-radius) !important;
    background: #fff !important;
    box-shadow: 0 10px 26px rgba(4, 34, 72, .16) !important;
}

.pv-app-body .client-brand,
.pv-admin-body .admin-brand {
    min-height: 46px;
    margin: 0 !important;
    overflow: hidden;
}

.pv-app-body .pv-brand-logo--sidebar,
.pv-admin-body .pv-brand-logo--sidebar {
    width: min(174px, 100%);
    height: 46px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
}

.pv-sidebar-brand-mark {
    display: none;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(145deg, var(--color-primary), var(--color-secondary));
    border: 2px solid rgba(255, 255, 255, .8);
    font-size: 1.05rem;
    font-weight: 900;
    line-height: 1;
}

.pv-app-body .client-sidebar-control,
.pv-admin-body .admin-sidebar-control {
    width: 36px;
    height: 36px;
    border: 1px solid rgba(11, 99, 206, .14) !important;
    border-radius: 11px !important;
    color: var(--color-primary-strong) !important;
    background: var(--color-primary-soft) !important;
}

.pv-app-body .client-sidebar-control:hover,
.pv-admin-body .admin-sidebar-control:hover {
    color: #fff !important;
    background: var(--color-primary) !important;
    transform: translateY(-1px);
}

.pv-app-body .client-menu,
.pv-admin-body .admin-menu {
    gap: 5px;
}

.pv-app-body .client-menu-link,
.pv-admin-body .admin-menu-link {
    position: relative;
    min-height: 46px;
    gap: 12px;
    padding: 8px 11px !important;
    border: 1px solid transparent;
    border-radius: 12px !important;
    color: var(--sidebar-text) !important;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.25;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);
}

.pv-app-body .client-menu-link::after,
.pv-admin-body .admin-menu-link::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 8px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: transparent;
    transform: translateY(-50%);
}

.pv-app-body .client-menu-link:hover,
.pv-admin-body .admin-menu-link:hover {
    color: #fff !important;
    background: rgba(255, 255, 255, .10) !important;
    border-color: rgba(255, 255, 255, .12);
    transform: translateX(2px);
    box-shadow: none !important;
}

.pv-app-body .client-menu-link.active,
.pv-admin-body .admin-menu-link.active {
    color: var(--sidebar-text-active) !important;
    background: linear-gradient(90deg, rgba(11, 99, 206, .90), rgba(0, 169, 143, .58)) !important;
    border-color: rgba(255, 255, 255, .28) !important;
    box-shadow: inset 3px 0 0 #fff, 0 6px 16px rgba(0, 25, 62, .16) !important;
    transform: none;
}

.pv-app-body .client-menu-link.active::after,
.pv-admin-body .admin-menu-link.active::after {
    background: #fff;
}

.pv-app-body .client-menu-label,
.pv-admin-body .admin-menu-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Centrado físico de todos los SVG de la interfaz. */
.pv-svg-icon {
    position: static !important;
    inset: auto !important;
    display: block !important;
    margin: auto !important;
    transform: none !important;
    flex: 0 0 auto;
}

.pv-page-title-icon,
.pv-section-icon,
.pv-metric-icon,
.pv-tile-icon,
.pv-nav-icon,
.pv-menu-icon,
.pv-action-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.pv-app-body .client-menu-link .pv-menu-icon,
.pv-admin-body .admin-menu-link .pv-menu-icon {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    flex-basis: 30px !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: var(--pv-icon-color, var(--color-primary)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .20) !important;
}

.pv-app-body .client-menu-link .pv-menu-icon .pv-svg-icon,
.pv-admin-body .admin-menu-link .pv-menu-icon .pv-svg-icon {
    width: 18px !important;
    height: 18px !important;
}

.pv-app-body .client-menu-link:hover .pv-menu-icon,
.pv-admin-body .admin-menu-link:hover .pv-menu-icon,
.pv-app-body .client-menu-link.active .pv-menu-icon,
.pv-admin-body .admin-menu-link.active .pv-menu-icon {
    border: 0 !important;
    background: var(--pv-icon-deep, var(--color-primary-dark)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .42) !important;
    transform: none;
}

body.client-sidebar-collapsed .client-sidebar,
body.admin-sidebar-collapsed .admin-sidebar {
    width: 92px !important;
    padding-inline: 12px !important;
}

body.client-sidebar-collapsed .client-main,
body.admin-sidebar-collapsed .admin-main {
    margin-left: 92px !important;
}

body.client-sidebar-collapsed .client-sidebar-head,
body.admin-sidebar-collapsed .admin-sidebar-head {
    padding: 8px 6px !important;
}

body.client-sidebar-collapsed .client-brand .pv-brand-logo--sidebar,
body.admin-sidebar-collapsed .admin-brand .pv-brand-logo--sidebar {
    display: none !important;
}

body.client-sidebar-collapsed .client-brand .pv-sidebar-brand-mark,
body.admin-sidebar-collapsed .admin-brand .pv-sidebar-brand-mark {
    display: inline-flex;
}

body.client-sidebar-collapsed .client-menu-link,
body.admin-sidebar-collapsed .admin-menu-link {
    width: 54px;
    min-height: 48px;
    margin-inline: auto;
    padding: 8px !important;
    justify-content: center !important;
}

body.client-sidebar-collapsed .client-menu-link::after,
body.admin-sidebar-collapsed .admin-menu-link::after {
    display: none;
}

body.client-sidebar-collapsed .client-menu-link .pv-menu-icon,
body.admin-sidebar-collapsed .admin-menu-link .pv-menu-icon {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    flex-basis: 34px !important;
}

.pv-sidebar-label-tooltip {
    padding: 9px 12px !important;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px !important;
    background: #082f61 !important;
    box-shadow: 0 12px 28px rgba(4, 25, 54, .26) !important;
    font-size: .82rem;
}

.pv-app-body .client-topbar,
.pv-admin-body .admin-topbar {
    min-height: 88px;
    padding: 17px clamp(20px, 2.6vw, 36px) !important;
    background: rgba(255, 255, 255, .96) !important;
    border-bottom: 1px solid var(--color-border) !important;
    box-shadow: 0 8px 22px rgba(18, 33, 58, .045) !important;
    backdrop-filter: blur(14px);
}

.pv-app-body .client-topbar-title,
.pv-admin-body .admin-topbar-title {
    min-width: 0;
    flex: 1 1 auto;
}

.pv-app-body .pv-page-title-wrap,
.pv-admin-body .pv-page-title-wrap {
    gap: 12px;
}

.pv-page-title-icon {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: var(--pv-icon-color, var(--color-primary)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .20) !important;
}

.pv-page-title-icon .pv-svg-icon {
    width: 25px !important;
    height: 25px !important;
}

.pv-topbar-copy {
    min-width: 0;
}

.pv-app-body .client-topbar h1,
.pv-admin-body .admin-topbar h1 {
    margin: 2px 0 0 !important;
    overflow: hidden;
    color: var(--color-text) !important;
    font-size: clamp(1.25rem, 2vw, 1.72rem) !important;
    font-weight: 850 !important;
    letter-spacing: -.025em;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pv-topbar-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 12px;
    min-width: 0;
}

.pv-breadcrumb {
    display: flex;
    align-items: center;
    min-width: 0;
    margin: 0;
    color: var(--color-text-muted);
    font-size: .76rem;
    font-weight: 700;
}

.pv-breadcrumb a {
    color: var(--color-primary-dark);
    text-decoration: none;
}

.pv-breadcrumb a:hover {
    text-decoration: underline;
}

.pv-breadcrumb-separator {
    margin: 0 7px;
    color: #a3afbd;
}

.pv-tenant-code {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    padding: 3px 8px;
    border: 1px solid #cfe0f5;
    border-radius: 999px;
    color: var(--color-primary-dark);
    background: var(--color-primary-soft);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .025em;
    white-space: nowrap;
}

.pv-app-body .client-user,
.pv-admin-body .admin-user {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 1 auto;
}

.pv-user-identity {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 5px 8px 5px 5px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: #fff;
}

.pv-user-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 11px;
    color: #fff;
    background: linear-gradient(145deg, var(--color-primary), var(--color-secondary));
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .03em;
}

.pv-app-body .client-user-text,
.pv-admin-body .admin-user-text {
    display: grid;
    min-width: 0;
    text-align: left;
    line-height: 1.18;
}

.pv-app-body .client-user-text strong,
.pv-admin-body .admin-user-text strong {
    max-width: 180px;
    overflow: hidden;
    color: var(--color-text);
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pv-app-body .client-user-text span,
.pv-admin-body .admin-user-text span {
    color: var(--color-text-muted);
    font-size: .72rem;
}

.pv-logout-button {
    min-width: 40px;
}

.pv-app-body .client-content,
.pv-admin-body .admin-content {
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: clamp(20px, 2.5vw, 34px) !important;
}

/* Títulos, héroes y jerarquía */
.pv-app-body h2,
.pv-admin-body h2,
.pv-app-body h3,
.pv-admin-body h3 {
    color: var(--color-text);
    letter-spacing: -.018em;
}

.pv-app-body .client-hero,
.pv-app-body .settings-hero,
.pv-admin-body .admin-hero,
.pv-admin-body .admin-dashboard-hero,
.pv-app-body .client-module-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 34px) !important;
    border: 1px solid #d5e2f0 !important;
    border-radius: var(--border-radius-xl) !important;
    color: var(--color-text) !important;
    background:
        radial-gradient(circle at 93% 8%, rgba(0, 169, 143, .13), transparent 17rem),
        radial-gradient(circle at 72% 110%, rgba(11, 99, 206, .12), transparent 22rem),
        linear-gradient(135deg, #fff 0%, #f5f9ff 100%) !important;
    box-shadow: var(--shadow-card) !important;
}

.pv-app-body .client-hero::before,
.pv-app-body .settings-hero::before,
.pv-admin-body .admin-hero::before,
.pv-admin-body .admin-dashboard-hero::before,
.pv-app-body .client-module-hero::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, var(--color-primary), var(--color-secondary));
}

.pv-app-body .client-hero h2,
.pv-app-body .settings-hero h2,
.pv-admin-body .admin-hero h2,
.pv-admin-body .admin-dashboard-hero h2,
.pv-app-body .client-module-hero h2 {
    color: var(--color-text) !important;
    font-size: clamp(1.45rem, 3vw, 2.25rem) !important;
    font-weight: 900;
}

.pv-app-body .client-hero p,
.pv-app-body .settings-hero p,
.pv-admin-body .admin-hero p,
.pv-admin-body .admin-dashboard-hero p,
.pv-app-body .client-module-hero p {
    color: var(--color-text-muted) !important;
    line-height: 1.65;
}

.pv-app-body .client-hero-panel,
.pv-app-body .settings-hero-card,
.pv-admin-body .admin-hero-card,
.pv-app-body .receivables-card {
    min-width: min(260px, 100%);
    border: 1px solid rgba(255, 255, 255, .12) !important;
    border-radius: var(--border-radius-lg) !important;
    color: #fff !important;
    background:
        radial-gradient(circle at 85% 10%, rgba(0, 169, 143, .40), transparent 10rem),
        linear-gradient(145deg, #052d60, #0b63ce) !important;
    box-shadow: 0 16px 34px rgba(5, 45, 96, .18) !important;
}

.pv-icon-heading {
    min-width: 0;
}

.pv-section-icon,
.pv-tile-icon,
.pv-nav-icon,
.pv-metric-icon {
    border: 0 !important;
    background: var(--pv-icon-color, var(--color-primary)) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .20) !important;
}

.pv-section-icon .pv-svg-icon,
.pv-tile-icon .pv-svg-icon,
.pv-nav-icon .pv-svg-icon,
.pv-metric-icon .pv-svg-icon {
    margin: auto !important;
}

/* Tarjetas y paneles */
.pv-app-body .card,
.pv-admin-body .card,
.pv-app-body .client-card,
.pv-app-body .client-kpi,
.pv-app-body .client-module-tile,
.pv-app-body .client-action-card,
.pv-app-body .settings-summary-card,
.pv-app-body .sales-panel,
.pv-app-body .cash-panel,
.pv-app-body .settings-panel,
.pv-admin-body .admin-kpi,
.pv-admin-body .admin-panel,
.pv-admin-body .admin-table-card,
.pv-admin-body .admin-kpi-card,
.pv-admin-body .admin-stat-card {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--border-radius-lg) !important;
    background: var(--color-surface) !important;
    box-shadow: var(--shadow-card) !important;
}

.pv-app-body .card-header,
.pv-admin-body .card-header {
    min-height: 62px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border) !important;
    background: linear-gradient(180deg, #fff, #fbfcfe) !important;
}

.pv-app-body .card-body,
.pv-admin-body .card-body {
    padding: clamp(18px, 2vw, 24px);
}

.pv-app-body .client-kpi,
.pv-admin-body .admin-kpi,
.pv-app-body .client-module-tile,
.pv-app-body .client-action-card,
.pv-admin-body .admin-kpi-card {
    transition: transform var(--transition-base), border-color var(--transition-fast), box-shadow var(--transition-base);
}

.pv-app-body .client-kpi:hover,
.pv-admin-body .admin-kpi:hover,
.pv-app-body .client-module-tile:hover,
.pv-app-body .client-action-card:hover,
.pv-admin-body .admin-kpi-card:hover {
    border-color: #bdd1e7 !important;
    box-shadow: var(--shadow-card-hover) !important;
    transform: translateY(-2px);
}

.pv-app-body .client-kpi .card-body[data-pv-iconized-metric="2"],
.pv-app-body .client-kpi-card[data-pv-iconized-metric="2"],
.pv-app-body .settings-summary-card[data-pv-iconized-metric="2"],
.pv-admin-body .admin-kpi[data-pv-iconized-metric="2"],
.pv-admin-body .admin-kpi-card[data-pv-iconized-metric="2"],
.pv-admin-body .admin-stat-card[data-pv-iconized-metric="2"] {
    min-height: 112px !important;
    padding: 20px 20px 20px 82px !important;
}

.pv-metric-icon {
    left: 20px !important;
    width: 46px !important;
    height: 46px !important;
    border-radius: 14px !important;
}

.pv-metric-icon .pv-svg-icon {
    width: 25px !important;
    height: 25px !important;
}

.client-module-tile[data-pv-iconized-tile="2"] {
    min-height: 104px !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    gap: 4px 14px !important;
    padding: 18px !important;
}

.pv-tile-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
}

.client-module-tile h3,
.client-action-card h3 {
    font-size: 1rem !important;
    line-height: 1.28;
}

.client-module-tile p,
.client-action-card p {
    color: var(--color-text-muted) !important;
    font-size: .84rem;
    line-height: 1.5;
}

/* Botones */
.pv-app-body .btn,
.pv-admin-body .btn,
.pv-auth-page .btn,
.pv-billing-page .btn,
.pv-status-page .btn {
    min-height: 40px;
    border-radius: 10px !important;
    font-weight: 750;
    letter-spacing: .005em;
    box-shadow: none;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
}

.pv-app-body .btn:hover,
.pv-admin-body .btn:hover,
.pv-auth-page .btn:hover,
.pv-billing-page .btn:hover,
.pv-status-page .btn:hover {
    transform: translateY(-1px);
}

.pv-app-body .btn:active,
.pv-admin-body .btn:active,
.pv-auth-page .btn:active,
.pv-billing-page .btn:active,
.pv-status-page .btn:active {
    transform: translateY(0);
}

.pv-app-body .btn-primary,
.pv-admin-body .btn-primary,
.pv-auth-page .btn-primary,
.pv-billing-page .btn-primary,
.pv-status-page .btn-primary,
.pv-app-body .btn-success,
.pv-admin-body .btn-success,
.pv-auth-page .btn-success,
.pv-billing-page .btn-success,
.pv-status-page .btn-success {
    color: #fff !important;
    border-color: var(--color-primary) !important;
    background: var(--color-primary) !important;
    box-shadow: 0 7px 16px rgba(11, 99, 206, .18) !important;
}

.pv-app-body .btn-primary:hover,
.pv-admin-body .btn-primary:hover,
.pv-auth-page .btn-primary:hover,
.pv-billing-page .btn-primary:hover,
.pv-status-page .btn-primary:hover,
.pv-app-body .btn-success:hover,
.pv-admin-body .btn-success:hover,
.pv-auth-page .btn-success:hover,
.pv-billing-page .btn-success:hover,
.pv-status-page .btn-success:hover {
    border-color: var(--color-primary-dark) !important;
    background: var(--color-primary-dark) !important;
    box-shadow: 0 10px 22px rgba(11, 99, 206, .23) !important;
}

.pv-app-body .btn-danger,
.pv-admin-body .btn-danger {
    color: #fff !important;
    border-color: var(--color-danger) !important;
    background: var(--color-danger) !important;
}

.pv-app-body .btn-warning,
.pv-admin-body .btn-warning {
    color: #4b2a00 !important;
    border-color: #edae49 !important;
    background: #f7bd5b !important;
}

.pv-app-body .btn-light-primary,
.pv-admin-body .btn-light-primary,
.pv-app-body .btn-outline-primary,
.pv-admin-body .btn-outline-primary,
.pv-app-body .btn-light-success,
.pv-admin-body .btn-light-success,
.pv-app-body .btn-outline-success,
.pv-admin-body .btn-outline-success {
    color: var(--color-primary-dark) !important;
    border-color: #bdd4ef !important;
    background: var(--color-primary-soft) !important;
}

.pv-app-body .btn-light-danger,
.pv-admin-body .btn-light-danger,
.pv-app-body .btn-outline-danger,
.pv-admin-body .btn-outline-danger {
    color: var(--color-danger) !important;
    border-color: #f0bec5 !important;
    background: var(--color-danger-soft) !important;
}

.pv-app-body .btn-light,
.pv-admin-body .btn-light,
.pv-app-body .btn-secondary,
.pv-admin-body .btn-secondary {
    color: #334155 !important;
    border-color: var(--color-border) !important;
    background: #f6f8fb !important;
}

.pv-app-body .btn:disabled,
.pv-admin-body .btn:disabled,
.pv-auth-page .btn:disabled,
.pv-billing-page .btn:disabled {
    cursor: not-allowed;
    opacity: .58;
    transform: none;
    box-shadow: none !important;
}

.pv-action-icon {
    width: 18px !important;
    height: 18px !important;
    margin-right: 7px !important;
}

.pv-action-icon .pv-svg-icon {
    width: 17px !important;
    height: 17px !important;
}

/* Formularios y Select2 */
.pv-app-body .form-label,
.pv-admin-body .form-label,
.pv-auth-page .form-label,
.pv-billing-page .form-label {
    margin-bottom: 7px;
    color: #26364c;
    font-size: .86rem;
    font-weight: 750;
}

.pv-required-mark {
    margin-left: 3px;
    color: var(--color-danger);
    font-weight: 900;
}

.pv-app-body .form-control,
.pv-app-body .form-select,
.pv-admin-body .form-control,
.pv-admin-body .form-select,
.pv-auth-page .form-control,
.pv-auth-page .form-select,
.pv-billing-page .form-control,
.pv-billing-page .form-select,
.pv-app-body .select2-container--bootstrap5 .select2-selection,
.pv-admin-body .select2-container--bootstrap5 .select2-selection,
.pv-app-body .select2-container--default .select2-selection--single,
.pv-admin-body .select2-container--default .select2-selection--single,
.pv-app-body .select2-container--default .select2-selection--multiple,
.pv-admin-body .select2-container--default .select2-selection--multiple {
    min-height: 44px;
    border: 1px solid var(--color-border-strong) !important;
    border-radius: 11px !important;
    color: var(--color-text);
    background-color: #fff !important;
    box-shadow: none !important;
}

.pv-app-body textarea.form-control,
.pv-admin-body textarea.form-control,
.pv-auth-page textarea.form-control,
.pv-billing-page textarea.form-control {
    min-height: 110px;
    resize: vertical;
}

.pv-app-body .form-control:hover,
.pv-app-body .form-select:hover,
.pv-admin-body .form-control:hover,
.pv-admin-body .form-select:hover,
.pv-auth-page .form-control:hover,
.pv-auth-page .form-select:hover,
.pv-billing-page .form-control:hover,
.pv-billing-page .form-select:hover {
    border-color: #9eb7d1 !important;
}

.pv-app-body .form-control:focus,
.pv-app-body .form-select:focus,
.pv-admin-body .form-control:focus,
.pv-admin-body .form-select:focus,
.pv-auth-page .form-control:focus,
.pv-auth-page .form-select:focus,
.pv-billing-page .form-control:focus,
.pv-billing-page .form-select:focus,
.pv-app-body .select2-container--open .select2-selection,
.pv-admin-body .select2-container--open .select2-selection,
.pv-app-body .select2-container--focus .select2-selection,
.pv-admin-body .select2-container--focus .select2-selection {
    border-color: var(--color-primary) !important;
    box-shadow: var(--focus-ring) !important;
}

.pv-app-body .form-control:disabled,
.pv-app-body .form-select:disabled,
.pv-admin-body .form-control:disabled,
.pv-admin-body .form-select:disabled,
.pv-auth-page .form-control:disabled,
.pv-billing-page .form-control:disabled {
    color: #7b8797;
    background: #eef2f6 !important;
    border-color: #d9e0e8 !important;
}

.pv-app-body .form-text,
.pv-admin-body .form-text,
.pv-auth-page .form-text,
.pv-billing-page .form-text {
    color: var(--color-text-muted);
    line-height: 1.45;
}

.pv-app-body .select2-container,
.pv-admin-body .select2-container {
    max-width: 100%;
}

.select2-dropdown {
    z-index: 2055;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-overlay) !important;
}

.select2-results__option {
    padding: 9px 11px !important;
}

.select2-results__option--highlighted,
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    color: #fff !important;
    background: var(--color-primary) !important;
}

/* Tablas, DataTables y listados */
.pv-app-body .table-responsive,
.pv-admin-body .table-responsive {
    border-radius: 13px;
    -webkit-overflow-scrolling: touch;
}

.pv-app-body .table,
.pv-admin-body .table {
    margin-bottom: 0;
    color: var(--color-text);
    border-color: #e7edf4;
}

.pv-app-body .table thead th,
.pv-admin-body .table thead th {
    padding: 13px 12px !important;
    border-top: 0;
    border-bottom: 1px solid #dbe5ef !important;
    color: #42526a !important;
    background: #f5f8fb !important;
    font-size: .73rem !important;
    font-weight: 850 !important;
    letter-spacing: .055em;
    line-height: 1.35;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.pv-app-body .table tbody td,
.pv-admin-body .table tbody td {
    padding: 13px 12px !important;
    border-bottom: 1px solid #edf1f5;
    vertical-align: middle;
}

.pv-app-body .table tbody tr,
.pv-admin-body .table tbody tr {
    transition: background var(--transition-fast);
}

.pv-app-body .table tbody tr:hover > *,
.pv-admin-body .table tbody tr:hover > * {
    background: #f7faff !important;
}

.pv-app-body .table tbody tr:last-child td,
.pv-admin-body .table tbody tr:last-child td {
    border-bottom: 0;
}

.pv-app-body .dataTables_wrapper,
.pv-admin-body .dataTables_wrapper {
    color: var(--color-text-muted);
}

.pv-app-body .dataTables_filter input,
.pv-admin-body .dataTables_filter input,
.pv-app-body .dataTables_length select,
.pv-admin-body .dataTables_length select {
    min-height: 38px;
    border: 1px solid var(--color-border-strong);
    border-radius: 9px;
    background: #fff;
}

.pv-app-body .pagination,
.pv-admin-body .pagination {
    gap: 4px;
}

.pv-app-body .page-link,
.pv-admin-body .page-link {
    min-width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border) !important;
    border-radius: 9px !important;
    color: var(--color-text-muted) !important;
    background: #fff !important;
}

.pv-app-body .page-item.active .page-link,
.pv-admin-body .page-item.active .page-link {
    color: #fff !important;
    border-color: var(--color-primary) !important;
    background: var(--color-primary) !important;
}

.pv-table-actions,
.admin-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.pv-table-actions .btn,
.admin-actions .btn,
.table .btn-sm {
    min-height: 34px;
}

/* Badges, alertas y estados */
.pv-app-body .badge,
.pv-admin-body .badge,
.pv-auth-page .badge,
.pv-billing-page .badge {
    padding: .43rem .65rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: .01em;
}

.badge-light-primary,
.badge-light-info {
    color: #07549f !important;
    border-color: #c8ddf4 !important;
    background: var(--color-primary-soft) !important;
}

.badge-light-success {
    color: #056b4d !important;
    border-color: #bde6d7 !important;
    background: var(--color-success-soft) !important;
}

.badge-light-warning {
    color: #8b4900 !important;
    border-color: #f2d29f !important;
    background: var(--color-warning-soft) !important;
}

.badge-light-danger {
    color: #a61f31 !important;
    border-color: #f1c5cc !important;
    background: var(--color-danger-soft) !important;
}

.badge-light-secondary,
.badge-light-dark {
    color: #475569 !important;
    border-color: #d8e0e9 !important;
    background: #eef2f6 !important;
}

.pv-app-body .alert,
.pv-admin-body .alert,
.pv-auth-page .alert,
.pv-billing-page .alert,
.pv-status-page .alert {
    border-width: 1px;
    border-style: solid;
    border-radius: 13px;
    line-height: 1.55;
}

.alert-success { color: #075e46 !important; border-color: #b8dfd0 !important; background: var(--color-success-soft) !important; }
.alert-info, .alert-primary { color: #07538f !important; border-color: #bfd9ee !important; background: var(--color-info-soft) !important; }
.alert-warning { color: #824600 !important; border-color: #eed09e !important; background: var(--color-warning-soft) !important; }
.alert-danger { color: #9e2232 !important; border-color: #efc1c8 !important; background: var(--color-danger-soft) !important; }

.client-empty,
.pv-empty-state,
.support-ticket-detail-empty {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 28px;
    border: 1px dashed #bed0e2;
    border-radius: var(--border-radius-lg);
    color: var(--color-text-muted);
    background: linear-gradient(180deg, #fff, #f8fafc);
    text-align: center;
}

.pv-loading-state {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 140px;
    color: var(--color-text-muted);
}

/* Modales, dropdowns y confirmaciones */
.pv-app-body .modal-content,
.pv-admin-body .modal-content,
.pv-auth-page .modal-content,
.pv-billing-page .modal-content {
    overflow: hidden;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg) !important;
    box-shadow: var(--shadow-overlay);
}

.pv-app-body .modal-header,
.pv-admin-body .modal-header,
.pv-auth-page .modal-header,
.pv-billing-page .modal-header {
    min-height: 68px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--color-border);
    background: linear-gradient(180deg, #fff, #f8fafc);
}

.pv-app-body .modal-body,
.pv-admin-body .modal-body,
.pv-auth-page .modal-body,
.pv-billing-page .modal-body {
    padding: 22px;
}

.pv-app-body .modal-footer,
.pv-admin-body .modal-footer,
.pv-auth-page .modal-footer,
.pv-billing-page .modal-footer {
    padding: 16px 22px;
    border-top: 1px solid var(--color-border);
    background: #f8fafc;
}

.modal-title {
    color: var(--color-text);
    font-weight: 850;
}

.dropdown-menu {
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--shadow-overlay) !important;
}

.swal2-popup {
    border: 1px solid var(--color-border) !important;
    border-radius: 20px !important;
    box-shadow: var(--shadow-overlay) !important;
}

.swal2-confirm {
    border-radius: 10px !important;
    background: var(--color-primary) !important;
}

.swal2-cancel {
    border-radius: 10px !important;
    background: #64748b !important;
}

/* =========================================================
   Acceso, registro, pagos y estados especiales
   ========================================================= */
body.pv-auth-page,
body.pv-billing-page,
body.pv-status-page {
    min-width: 320px;
    min-height: 100vh;
    background:
        radial-gradient(circle at 10% 10%, rgba(0, 169, 143, .12), transparent 23rem),
        radial-gradient(circle at 88% 5%, rgba(11, 99, 206, .13), transparent 27rem),
        linear-gradient(145deg, #eef5fb 0%, #f8fbff 48%, #edf8f6 100%) fixed !important;
}

.pv-auth-page .auth-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 85% 15%, rgba(0, 169, 143, .55), transparent 18rem),
        linear-gradient(145deg, #042b5b 0%, #0759aa 58%, #008d80 100%) !important;
}

.pv-auth-page .auth-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    bottom: -160px;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
}

.pv-auth-page .auth-card,
.pv-billing-page .auth-card,
.pv-status-page .card,
.pv-auth-page .pv-result-card,
.pv-billing-page .pv-result-card {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--border-radius-xl) !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: var(--shadow-overlay) !important;
}

.pv-auth-page .auth-stat {
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 14px;
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(10px);
}

.pv-auth-page .pv-brand-logo--auth,
.pv-billing-page .pv-brand-logo--auth,
.pv-status-page .pv-brand-logo--auth {
    width: auto;
    max-width: min(280px, 86vw);
    height: auto;
    max-height: 76px;
    object-fit: contain;
}

.pv-auth-page .auth-card h1,
.pv-billing-page .auth-card h1,
.pv-status-page h1 {
    color: var(--color-text) !important;
    letter-spacing: -.03em;
}

.pv-auth-security-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 16px;
    padding: 11px 13px;
    border: 1px solid #cce4df;
    border-radius: 11px;
    color: #176354;
    background: var(--color-secondary-soft);
    font-size: .79rem;
    line-height: 1.45;
}

/* =========================================================
   Landing y páginas públicas
   ========================================================= */
body.pv-public-page {
    min-width: 320px;
    color: var(--color-text);
    background: #fff;
}

.pv-public-page .pv-main-nav {
    border-bottom: 1px solid rgba(11, 99, 206, .10);
    box-shadow: 0 7px 22px rgba(18, 33, 58, .07) !important;
}

.pv-public-page .btn-success,
.pv-public-page .btn-primary {
    color: #fff !important;
    border-color: var(--color-primary) !important;
    border-radius: 10px;
    background: var(--color-primary) !important;
    box-shadow: 0 8px 18px rgba(11, 99, 206, .20);
}

.pv-public-page .btn-outline-success,
.pv-public-page .btn-outline-primary {
    color: var(--color-primary-dark) !important;
    border-color: var(--color-primary) !important;
    border-radius: 10px;
    background: #fff !important;
}

.pv-public-page .btn-outline-success:hover,
.pv-public-page .btn-outline-primary:hover {
    color: #fff !important;
    background: var(--color-primary) !important;
}

.pv-public-page .text-success,
.pv-public-page .text-primary {
    color: var(--color-primary) !important;
}

/* Utilidades globales */
.pv-surface {
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.pv-stack-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}

.pv-help-text {
    color: var(--color-text-muted);
    font-size: .82rem;
    line-height: 1.5;
}

.pv-visually-hidden {
    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;
}

/* Responsive */
@media (max-width: 1199.98px) {
    .pv-app-body .pv-user-identity,
    .pv-admin-body .pv-user-identity {
        display: none;
    }

    .pv-app-body .client-user,
    .pv-admin-body .admin-user {
        gap: 7px;
    }
}

@media (max-width: 991.98px) {
    .pv-app-body .client-sidebar,
    .pv-admin-body .admin-sidebar {
        width: min(320px, 90vw) !important;
        padding: 16px 14px 22px !important;
    }

    body.client-sidebar-collapsed .client-main,
    body.admin-sidebar-collapsed .admin-main {
        margin-left: 0 !important;
    }

    body.client-sidebar-collapsed .client-brand .pv-brand-logo--sidebar,
    body.admin-sidebar-collapsed .admin-brand .pv-brand-logo--sidebar {
        display: block !important;
    }

    body.client-sidebar-collapsed .client-brand .pv-sidebar-brand-mark,
    body.admin-sidebar-collapsed .admin-brand .pv-sidebar-brand-mark {
        display: none !important;
    }

    body.client-sidebar-collapsed .client-menu-link,
    body.admin-sidebar-collapsed .admin-menu-link {
        width: auto;
        justify-content: flex-start !important;
        padding: 8px 11px !important;
    }

    .pv-app-body .client-topbar,
    .pv-admin-body .admin-topbar {
        min-height: 78px;
        padding: 14px 18px !important;
    }

    .pv-app-body .client-content,
    .pv-admin-body .admin-content {
        padding: 20px 18px !important;
    }

    .pv-app-body .client-hero,
    .pv-app-body .settings-hero,
    .pv-admin-body .admin-hero,
    .pv-admin-body .admin-dashboard-hero,
    .pv-app-body .client-module-hero {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 767.98px) {
    .pv-page-title-icon {
        width: 42px !important;
        height: 42px !important;
        flex-basis: 42px !important;
        border-radius: 12px !important;
    }

    .pv-page-title-icon .pv-svg-icon {
        width: 22px !important;
        height: 22px !important;
    }

    .pv-app-body .client-topbar h1,
    .pv-admin-body .admin-topbar h1 {
        font-size: 1.25rem !important;
    }

    .pv-tenant-code {
        display: none;
    }

    .pv-app-body .client-content,
    .pv-admin-body .admin-content {
        padding: 16px 13px !important;
    }

    .pv-app-body .client-hero,
    .pv-app-body .settings-hero,
    .pv-admin-body .admin-hero,
    .pv-admin-body .admin-dashboard-hero,
    .pv-app-body .client-module-hero {
        padding: 20px 18px !important;
        border-radius: 18px !important;
    }

    .pv-app-body .card,
    .pv-admin-body .card,
    .pv-app-body .client-card,
    .pv-admin-body .admin-panel,
    .pv-admin-body .admin-table-card {
        border-radius: 15px !important;
    }

    .pv-app-body .card-body,
    .pv-admin-body .card-body {
        padding: 17px;
    }

    .pv-app-body .table-responsive,
    .pv-admin-body .table-responsive,
    .pv-app-body .dataTables_wrapper,
    .pv-admin-body .dataTables_wrapper {
        width: 100%;
        overflow-x: auto;
    }

    .pv-app-body .table,
    .pv-admin-body .table {
        min-width: 680px;
    }

    .pv-app-body .modal-dialog,
    .pv-admin-body .modal-dialog,
    .pv-auth-page .modal-dialog,
    .pv-billing-page .modal-dialog {
        margin: 10px;
    }

    .pv-app-body .modal-body,
    .pv-admin-body .modal-body,
    .pv-auth-page .modal-body,
    .pv-billing-page .modal-body {
        padding: 18px;
    }

    .pv-stack-actions,
    .pv-app-body .client-hero-actions,
    .pv-admin-body .admin-toolbar,
    .pv-app-body .sales-toolbar,
    .pv-app-body .cash-toolbar,
    .pv-app-body .product-toolbar,
    .pv-app-body .inventory-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .pv-stack-actions .btn,
    .pv-app-body .client-hero-actions .btn,
    .pv-admin-body .admin-toolbar .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .pv-app-body .client-topbar,
    .pv-admin-body .admin-topbar {
        flex-direction: row !important;
        align-items: center !important;
        gap: 10px;
    }

    .pv-app-body .client-topbar-title,
    .pv-admin-body .admin-topbar-title {
        width: auto !important;
        flex: 1 1 auto;
    }

    .pv-app-body .client-user,
    .pv-admin-body .admin-user {
        width: auto !important;
        flex: 0 0 auto;
        justify-content: flex-end !important;
    }

    .pv-app-body .pv-tour-launch,
    .pv-admin-body .pv-tour-launch,
    .pv-app-body .pv-setup-launch {
        min-width: 40px;
        padding-inline: 10px;
    }

    .pv-app-body .pv-tour-launch span,
    .pv-admin-body .pv-tour-launch span,
    .pv-app-body .pv-setup-launch span,
    .pv-app-body .pv-setup-badge {
        display: none !important;
    }

    .pv-logout-button span {
        display: none;
    }

    .client-module-tile[data-pv-iconized-tile="2"] {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        padding: 15px !important;
    }

    .pv-tile-icon {
        width: 43px !important;
        height: 43px !important;
    }

    .pv-app-body .client-kpi .card-body[data-pv-iconized-metric="2"],
    .pv-app-body .client-kpi-card[data-pv-iconized-metric="2"],
    .pv-app-body .settings-summary-card[data-pv-iconized-metric="2"],
    .pv-admin-body .admin-kpi[data-pv-iconized-metric="2"],
    .pv-admin-body .admin-kpi-card[data-pv-iconized-metric="2"],
    .pv-admin-body .admin-stat-card[data-pv-iconized-metric="2"] {
        padding-left: 74px !important;
    }

    .pv-metric-icon {
        left: 15px !important;
        width: 43px !important;
        height: 43px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@media print {
    .client-sidebar,
    .admin-sidebar,
    .client-topbar,
    .admin-topbar,
    .client-sidebar-overlay,
    .admin-sidebar-overlay,
    .pv-tour-launch,
    .pv-setup-launch,
    .no-print {
        display: none !important;
    }

    .client-main,
    .admin-main {
        margin-left: 0 !important;
    }

    .client-content,
    .admin-content {
        max-width: none !important;
        padding: 0 !important;
    }

    .card,
    .client-card,
    .admin-panel,
    .admin-table-card {
        box-shadow: none !important;
        break-inside: avoid;
    }
}

@media (max-width: 991.98px) {
    body.client-sidebar-open,
    body.admin-sidebar-open {
        overflow: hidden;
        touch-action: none;
    }

    body.client-sidebar-open .client-sidebar,
    body.admin-sidebar-open .admin-sidebar {
        touch-action: pan-y;
    }
}

/* =========================================================
   Componentes funcionales compartidos entre módulos
   ========================================================= */
.pv-app-body .settings-summary-grid,
.pv-app-body .sales-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

.pv-app-body .settings-grid {
    display: grid;
    grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.pv-app-body .settings-nav {
    position: sticky;
    top: 108px;
    display: grid;
    gap: 7px;
    padding: 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--shadow-card);
}

.pv-app-body .settings-nav-item {
    min-height: 54px;
    display: flex;
    align-items: center;
    border: 1px solid transparent;
    border-radius: 12px;
    color: var(--color-text-muted);
    background: transparent;
    text-align: left;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.pv-app-body .settings-nav-item:hover {
    color: var(--color-primary-dark);
    border-color: #d5e3f1;
    background: #f5f9ff;
}

.pv-app-body .settings-nav-item.active {
    color: var(--color-primary-dark);
    border-color: #bcd5ef;
    background: var(--color-primary-soft);
}

.pv-app-body .settings-nav-item strong,
.pv-app-body .settings-nav-item span:not(.pv-nav-icon) {
    display: block;
}

.pv-app-body .settings-nav-item span:not(.pv-nav-icon) {
    color: var(--color-text-muted);
    font-size: .76rem;
}

.pv-app-body .settings-panel,
.pv-app-body .sales-panel,
.pv-app-body .cash-panel {
    padding: clamp(18px, 2.2vw, 26px);
}

.pv-app-body .settings-panel-head,
.pv-app-body .sales-toolbar,
.pv-app-body .cash-toolbar,
.pv-app-body .product-toolbar,
.pv-app-body .inventory-toolbar,
.pv-admin-body .admin-toolbar,
.pv-admin-body .admin-panel-head,
.pv-app-body .client-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}

.pv-app-body .settings-panel-head h2,
.pv-app-body .settings-panel-head h3,
.pv-app-body .sales-toolbar h2,
.pv-app-body .sales-toolbar h3,
.pv-admin-body .admin-toolbar h2,
.pv-admin-body .admin-toolbar h3,
.pv-admin-body .admin-panel-head h2,
.pv-admin-body .admin-panel-head h3 {
    margin: 0;
}

.pv-app-body .settings-panel-head p,
.pv-app-body .sales-toolbar p,
.pv-admin-body .admin-panel-head p {
    margin: 3px 0 0;
    color: var(--color-text-muted);
}

.pv-app-body .settings-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

.pv-app-body .ops-list,
.pv-app-body .sales-mini-list,
.pv-admin-body .admin-list-cards {
    display: grid;
    gap: 9px;
}

.pv-app-body .ops-list > *,
.pv-app-body .sales-mini-list > *,
.pv-admin-body .admin-list-card {
    border: 1px solid #e2eaf2;
    border-radius: 13px;
    background: #fbfcfe;
    transition: border-color var(--transition-fast), background var(--transition-fast);
}

.pv-app-body .ops-list > *:hover,
.pv-app-body .sales-mini-list > *:hover,
.pv-admin-body .admin-list-card:hover {
    border-color: #bfd3e7;
    background: #f7faff;
}

.pv-app-body .report-type-card {
    min-height: 94px;
    padding: 16px;
    border: 1px solid var(--color-border) !important;
    border-radius: 15px !important;
    color: var(--color-text);
    background: #fff !important;
    box-shadow: 0 8px 22px rgba(18, 33, 58, .05);
    transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.pv-app-body .report-type-card:hover,
.pv-app-body .report-type-card.active {
    border-color: #a9c8e8 !important;
    background: #f5f9ff !important;
    box-shadow: 0 12px 28px rgba(18, 33, 58, .08);
    transform: translateY(-1px);
}

.pv-app-body .sales-empty-state,
.pv-app-body .settings-empty,
.pv-admin-body .admin-empty-state {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    border: 1px dashed #bed0e2;
    border-radius: 15px;
    color: var(--color-text-muted);
    background: #f9fbfd;
    text-align: center;
}

.pv-app-body .sales-empty-state.compact {
    min-height: 110px;
}

.pv-app-body .client-module-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.pv-app-body .client-module-strip > div {
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    background: rgba(255, 255, 255, .09);
}

.pv-app-body .nav-tabs,
.pv-admin-body .nav-tabs {
    gap: 5px;
    border-bottom-color: var(--color-border);
}

.pv-app-body .nav-tabs .nav-link,
.pv-admin-body .nav-tabs .nav-link,
.pv-app-body .nav-pills .nav-link,
.pv-admin-body .nav-pills .nav-link {
    min-height: 44px;
    border-radius: 10px 10px 0 0;
    color: var(--color-text-muted);
    font-weight: 750;
}

.pv-app-body .nav-tabs .nav-link.active,
.pv-admin-body .nav-tabs .nav-link.active,
.pv-app-body .nav-pills .nav-link.active,
.pv-admin-body .nav-pills .nav-link.active {
    color: var(--color-primary-dark);
    border-color: var(--color-border) var(--color-border) #fff;
    background: #fff;
}

.pv-app-body .accordion-item,
.pv-admin-body .accordion-item {
    overflow: hidden;
    border: 1px solid var(--color-border) !important;
    border-radius: 13px !important;
    background: #fff;
}

.pv-app-body .accordion-button,
.pv-admin-body .accordion-button {
    min-height: 58px;
    color: var(--color-text);
    background: #fff;
    font-weight: 800;
}

.pv-app-body .accordion-button:not(.collapsed),
.pv-admin-body .accordion-button:not(.collapsed) {
    color: var(--color-primary-dark);
    background: var(--color-primary-soft);
    box-shadow: inset 0 -1px 0 var(--color-border);
}

.pv-app-body .input-group > .form-control,
.pv-app-body .input-group > .form-select,
.pv-admin-body .input-group > .form-control,
.pv-admin-body .input-group > .form-select {
    min-width: 0;
}

.pv-app-body .input-group-text,
.pv-admin-body .input-group-text {
    border-color: var(--color-border-strong);
    color: var(--color-text-muted);
    background: #f4f7fa;
}

.pv-app-body .progress,
.pv-admin-body .progress,
.pv-billing-page .progress {
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef5;
}

.pv-app-body .progress-bar,
.pv-admin-body .progress-bar,
.pv-billing-page .progress-bar {
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
}

@media (max-width: 991.98px) {
    .pv-app-body .settings-grid {
        grid-template-columns: 1fr;
    }

    .pv-app-body .settings-nav {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .pv-app-body .settings-nav {
        grid-template-columns: 1fr;
    }

    .pv-app-body .settings-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .pv-app-body .settings-form-actions .btn {
        width: 100%;
    }
}

.pv-auth-logo-panel {
    padding: 10px 16px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 14px;
    background: #fff;
}

.pv-status-card {
    width: min(760px, 100%);
}

.pv-status-logo {
    width: auto;
    max-width: min(260px, 80vw);
    max-height: 78px;
    object-fit: contain;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 14px !important;
    align-content: center;
    min-height: 178px;
    padding: 20px !important;
    text-align: left;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > .pv-tile-icon {
    grid-column: 1;
    grid-row: 1 / span 3;
    align-self: start;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > h3,
.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > p,
.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > a {
    grid-column: 2;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > h3 {
    margin: 0 0 5px !important;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > p {
    min-height: 48px;
    margin: 0 !important;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > a {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 12px;
    color: var(--color-primary-dark);
    font-weight: 800;
    text-decoration: none;
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"] > a::after {
    content: "→";
    margin-left: 6px;
    transition: transform var(--transition-fast);
}

.pv-app-body .client-action-card[data-pv-iconized-tile="2"]:hover > a::after {
    transform: translateX(3px);
}

@media (max-width: 575.98px) {
    .pv-app-body .client-action-card[data-pv-iconized-tile="2"] {
        grid-template-columns: 46px minmax(0, 1fr) !important;
        min-height: 160px;
        padding: 16px !important;
    }
}
