/**
 * Xtender Brand Override Layer v1.0
 * Loaded AFTER tenant branding injection — enforces brand on all module patterns.
 * Uses attribute selectors to catch [module]-btn-primary, [module]-badge-success, etc.
 * No module CSS files need editing — this single file handles everything.
 *
 * Brand: #0C5E94 (blue), #F69047 (orange), #254048 (dark)
 * Font: Plus Jakarta Sans
 */

/* === FONT === */
body,
input, select, textarea, button {
    font-family: var(--x-font-family, 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif);
}

/* === BUTTONS — unified across all modules === */

/* Primary buttons: [module]-btn-primary, .btn-primary, .x-btn-primary */
[class*="-btn-primary"],
.btn-primary,
.x-btn-primary {
    background: var(--x-header-primary, var(--x-primary, #0C5E94));
    color: #fff;
    border-color: var(--x-header-primary, var(--x-primary, #0C5E94));
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
    background-image: none; /* kill gradients */
}

[class*="-btn-primary"]:hover:not(:disabled),
.btn-primary:hover:not(:disabled),
.x-btn-primary:hover:not(:disabled) {
    background: var(--x-header-primary-dark, var(--x-primary-dark, #0A4E7C));
    border-color: var(--x-header-primary-dark, var(--x-primary-dark, #0A4E7C));
    background-image: none;
}

/* Success buttons */
[class*="-btn-success"],
.btn-success,
.x-btn-success {
    background: var(--x-success, #1A5C34);
    color: #fff;
    border-color: var(--x-success, #1A5C34);
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
    background-image: none;
}

[class*="-btn-success"]:hover:not(:disabled),
.btn-success:hover:not(:disabled) {
    background: var(--x-success-dark, #144A28);
}

/* Warning buttons */
[class*="-btn-warning"],
.btn-warning,
.x-btn-warning {
    background: var(--x-warning, #7A4210);
    color: #fff;
    border-color: var(--x-warning, #7A4210);
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
    background-image: none;
}

/* Danger buttons */
[class*="-btn-danger"],
.btn-danger,
.x-btn-danger {
    background: var(--x-danger, #8B1F1F);
    color: #fff;
    border-color: var(--x-danger, #8B1F1F);
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
    background-image: none;
}

[class*="-btn-danger"]:hover:not(:disabled),
.btn-danger:hover:not(:disabled) {
    background: var(--x-danger-dark, #711919);
}

/* Info buttons */
[class*="-btn-info"],
.btn-info {
    background: var(--x-info, #0A4E7C);
    color: #fff;
    border-color: var(--x-info, #0A4E7C);
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
    background-image: none;
}

/* Secondary buttons — neutral, no gradient */
[class*="-btn-secondary"],
.btn-secondary,
.x-btn-secondary {
    background-image: none;
    border-radius: var(--x-brand-btn-radius, var(--x-radius, 8px));
}

/* === BADGES — unified status colors === */

[class*="-badge-success"],
.badge-success,
.x-badge-success {
    background: var(--x-success-bg, #E9F7EF);
    color: var(--x-success, #1A5C34);
    border-color: var(--x-success-border, #7DD3A8);
}

[class*="-badge-warning"],
.badge-warning,
.x-badge-warning {
    background: var(--x-warning-bg, #FEF5EC);
    color: var(--x-warning, #7A4210);
    border-color: var(--x-warning-border, #F9B070);
}

[class*="-badge-danger"],
.badge-danger,
.x-badge-danger {
    background: var(--x-danger-bg, #FDF2F2);
    color: var(--x-danger, #8B1F1F);
    border-color: var(--x-danger-border, #F5A8A8);
}

[class*="-badge-info"],
.badge-info,
.x-badge-info {
    background: var(--x-info-bg, #E8F3FB);
    color: var(--x-info, #0A4E7C);
    border-color: var(--x-info-border, #8BBDE7);
}

/* === FOCUS RINGS — unified brand-colored === */

input:focus,
select:focus,
textarea:focus,
[class*="-form-control"]:focus,
[class*="-input"]:focus:not([type="checkbox"]):not([type="radio"]),
.x-form-control:focus,
.x-select:focus,
.x-textarea:focus {
    border-color: var(--x-header-primary, var(--x-primary, #0C5E94));
    box-shadow: 0 0 0 3px rgba(var(--x-primary-rgb, 12, 94, 148), 0.12);
    outline: none;
}

/* === LINKS — brand-colored === */

a:not([class]):not([style]) {
    color: var(--x-brand-link-color, var(--x-header-primary, var(--x-primary, #0C5E94)));
}

/* === UTILITY CLASSES — for removing inline styles === */

.xt-text-primary { color: var(--x-text-primary, #254048); }
.xt-text-secondary { color: var(--x-text-secondary, #476772); }
.xt-text-tertiary { color: var(--x-text-tertiary, #6E8E94); }
.xt-text-muted { color: var(--x-text-muted, #8794A3); }
.xt-text-brand { color: var(--x-header-primary, var(--x-primary, #0C5E94)); }
.xt-text-accent { color: var(--x-secondary, #F69047); }
.xt-text-success { color: var(--x-success, #1A5C34); }
.xt-text-warning { color: var(--x-warning, #7A4210); }
.xt-text-danger { color: var(--x-danger, #8B1F1F); }
.xt-text-info { color: var(--x-info, #0A4E7C); }

.xt-bg-primary { background: var(--x-bg-primary, #FFFFFF); }
.xt-bg-secondary { background: var(--x-bg-secondary, #F4F6F8); }
.xt-bg-brand { background: var(--x-header-primary, var(--x-primary, #0C5E94)); color: #fff; }
.xt-bg-accent { background: var(--x-secondary, #F69047); color: #fff; }
.xt-bg-success { background: var(--x-success-bg, #E9F7EF); }
.xt-bg-warning { background: var(--x-warning-bg, #FEF5EC); }
.xt-bg-danger { background: var(--x-danger-bg, #FDF2F2); }
.xt-bg-info { background: var(--x-info-bg, #E8F3FB); }

.xt-border { border: 1px solid var(--x-border, rgba(37,64,72,0.13)); }
.xt-border-brand { border-color: var(--x-header-primary, var(--x-primary, #0C5E94)); }
.xt-rounded { border-radius: var(--x-radius, 8px); }
.xt-rounded-lg { border-radius: var(--x-radius-lg, 12px); }
.xt-shadow { box-shadow: var(--x-shadow-sm); }
.xt-shadow-md { box-shadow: var(--x-shadow-md); }

/* === GRADIENT KILL — remove all AI-style gradients on interactive elements === */

.btn-primary-gradient,
[class*="-btn-primary-gradient"],
[class*="btn-gradient"] {
    background-image: none;
    background: var(--x-header-primary, var(--x-primary, #0C5E94));
}

/* === SIDEBAR — active state uses tenant variable === */

.app-sidebar-link.active,
[class*="-sidebar-link"].active {
    background: var(--x-brand-sidebar-active, var(--x-header-primary, var(--x-primary, #0C5E94)));
    color: #fff;
    box-shadow: 0 4px 12px rgba(var(--x-primary-rgb, 12, 94, 148), 0.3);
}

[class*="-sidebar-link"]:hover {
    background: rgba(var(--x-primary-rgb, 12, 94, 148), 0.08);
    color: var(--x-header-primary, var(--x-primary, #0C5E94));
}

/* === DARK MODE === */

[data-theme="dark"] [class*="-badge-success"],
[data-theme="dark"] .badge-success {
    background: rgba(26, 92, 52, 0.2);
    color: #6EE7A0;
}

[data-theme="dark"] [class*="-badge-warning"],
[data-theme="dark"] .badge-warning {
    background: rgba(122, 66, 16, 0.2);
    color: #FCD34D;
}

[data-theme="dark"] [class*="-badge-danger"],
[data-theme="dark"] .badge-danger {
    background: rgba(139, 31, 31, 0.2);
    color: #FCA5A5;
}

[data-theme="dark"] [class*="-badge-info"],
[data-theme="dark"] .badge-info {
    background: rgba(10, 78, 124, 0.2);
    color: #93C5FD;
}

[data-theme="dark"] [class*="-btn-primary"],
[data-theme="dark"] .btn-primary {
    background: var(--x-header-primary, var(--x-primary, #0C5E94));
}

/* === SELECTION COLOR === */

::selection {
    background: rgba(var(--x-primary-rgb, 12, 94, 148), 0.2);
    color: var(--x-text-primary, #254048);
}

/* === SCROLLBAR — brand-tinted === */

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: rgba(var(--x-primary-rgb, 12, 94, 148), 0.15);
    border-radius: var(--x-radius-full, 9999px);
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--x-primary-rgb, 12, 94, 148), 0.3);
}
