/*
 * AxiSaaS V7.0.4 - final Bootstrap/theme normalization layer.
 * Loaded last: it intentionally resolves legacy cascade conflicts without
 * changing tenant data or replacing a custom palette.
 */

:root {
    --ax-radius-control: min(var(--theme-button-radius, 6px), 8px);
    --ax-radius-surface: min(var(--theme-card-radius, 8px), 8px);
    --ax-focus-color: var(--theme-input-focus-border, var(--theme-primary, #174ea6));
    --ax-focus-inner: var(--theme-card-bg, #fff);
    --bs-border-radius: var(--ax-radius-control);
    --bs-border-radius-sm: 4px;
    --bs-border-radius-lg: var(--ax-radius-surface);
}

html { scroll-behavior: smooth; }
body { letter-spacing: 0 !important; }
body *, body *::before, body *::after { letter-spacing: 0; }

.skip-link {
    position: fixed;
    z-index: 100000;
    top: 8px;
    left: 8px;
    padding: 10px 14px;
    color: var(--theme-button-primary-text, #fff) !important;
    background: var(--theme-button-primary-bg, var(--theme-primary, #174ea6)) !important;
    border: 2px solid currentColor;
    border-radius: 4px;
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--ax-focus-color) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 2px var(--ax-focus-inner) !important;
}

:where(a, button, input, select, textarea, summary, [tabindex])[aria-disabled="true"],
:where(button, input, select, textarea):disabled {
    cursor: not-allowed;
}

/* Links remain identifiable without relying on color alone (RGAA 10.6). */
.content-area a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge),
.login-links a,
.footer-links a,
.aw-public-legal a,
.drawer-links a,
.support-card a {
    color: var(--theme-link-color, var(--primary, #174ea6)) !important;
    text-decoration:none !important;
    text-decoration-thickness: .08em !important;
    text-underline-offset: .18em !important;
}
.content-area a:not(.btn):not(.nav-link):not(.tab-btn):not(.badge):hover,
.login-links a:hover,
.footer-links a:hover,
.aw-public-legal a:hover,
.drawer-links a:hover,
.support-card a:hover {
    text-decoration-thickness: .14em !important;
}

/* Quiet operational hierarchy: borders carry structure, shadows stay subtle. */
.card,
.panel,
.section,
.widget,
.dashboard-widget,
.theme-panel,
.table-wrap,
.login-card,
.account-drawer,
.axisass-work-card,
.axisass-modal,
.dropdown-menu,
.modal-content,
.accordion-item {
    border-radius: var(--ax-radius-surface) !important;
    border-color: var(--theme-card-border, var(--theme-line-color, var(--line, #64748b))) !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .08) !important;
}
.card:hover,
.theme-card:hover {
    transform: none !important;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .10) !important;
}
.page-title-card {
    background: transparent !important;
    border-width: 0 0 1px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding-inline: 0 !important;
}

.btn,
.tab-btn,
.nav-link,
.form-control,
.form-select,
.input,
.select,
.dropdown-toggle,
.pagination a,
.pagination button,
.home-link,
.account-trigger,
.circle-action,
.notif-btn,
.mobile-toggle,
.mobile-account-trigger,
.sidebar-handle {
    border-radius: var(--ax-radius-control) !important;
}
.btn,
button,
.form-control,
.form-select,
.input,
.select {
    min-height: 44px;
}
.btn { box-shadow: none !important; }
.btn:hover { transform: none !important; }

/* Bootstrap utilities and components follow the active tenant palette. */
.bg-primary { background-color: var(--theme-primary, var(--primary)) !important; }
.bg-secondary { background-color: var(--theme-secondary, var(--secondary)) !important; }
.bg-success { background-color: var(--theme-success, #18794e) !important; }
.bg-danger { background-color: var(--theme-danger, var(--danger, #b42318)) !important; }
.bg-warning { background-color: var(--theme-warning, #9a6700) !important; }
.bg-info { background-color: var(--theme-info, #0369a1) !important; }
.text-primary { color: var(--theme-primary-on-content, var(--theme-link-color)) !important; }
.text-secondary { color: var(--theme-secondary-on-content, var(--theme-content-muted)) !important; }
.text-success { color: var(--theme-success-on-content, #146c43) !important; }
.text-danger { color: var(--theme-danger-on-content, #b42318) !important; }
.text-warning { color: var(--theme-warning-on-content, #7a4d00) !important; }
.text-info { color: var(--theme-info-on-content, #075985) !important; }
.border-primary { border-color: var(--theme-primary, var(--primary)) !important; }
.border-secondary { border-color: var(--theme-secondary, var(--secondary)) !important; }
.border-success { border-color: var(--theme-success, #18794e) !important; }
.border-danger { border-color: var(--theme-danger, var(--danger, #b42318)) !important; }
.border-warning { border-color: var(--theme-warning, #9a6700) !important; }
.border-info { border-color: var(--theme-info, #0369a1) !important; }

.content-area .btn-outline-primary,
.content-area .btn-outline-secondary,
.content-area .btn-outline-success,
.content-area .btn-outline-danger,
.content-area .btn-outline-warning,
.content-area .btn-outline-info {
    background: var(--theme-card-bg, #fff) !important;
}
.content-area .btn-outline-primary:hover { color: var(--theme-button-primary-text, #fff) !important; background: var(--theme-button-primary-bg, var(--theme-primary)) !important; }
.content-area .btn-outline-secondary:hover { color: var(--theme-button-secondary-hover-text, var(--theme-content-text)) !important; background: var(--theme-button-secondary-hover-bg, var(--theme-surface-hover-bg)) !important; }
.content-area .btn-outline-success:hover { color: var(--theme-button-success-text, #fff) !important; background: var(--theme-button-success-bg, #18794e) !important; }
.content-area .btn-outline-danger:hover { color: var(--theme-button-danger-text, #fff) !important; background: var(--theme-button-danger-bg, #b42318) !important; }
.content-area .btn-outline-warning:hover { color: var(--theme-button-warning-text, #111827) !important; background: var(--theme-button-warning-bg, #d99a00) !important; }
.content-area .btn-outline-info:hover { color: var(--theme-info-button-text, #fff) !important; background: var(--theme-info, #0369a1) !important; }

.alert { border-width: 1px 1px 1px 4px !important; border-radius: var(--ax-radius-surface) !important; }
.alert-success { color: var(--theme-alert-success-text) !important; background: var(--theme-alert-success-bg) !important; border-color: var(--theme-alert-success-border) !important; }
.alert-warning { color: var(--theme-alert-warning-text) !important; background: var(--theme-alert-warning-bg) !important; border-color: var(--theme-alert-warning-border) !important; }
.alert-danger { color: var(--theme-alert-danger-text) !important; background: var(--theme-alert-danger-bg) !important; border-color: var(--theme-alert-danger-border) !important; }
.alert-info { color: var(--theme-alert-info-text) !important; background: var(--theme-alert-info-bg) !important; border-color: var(--theme-alert-info-border) !important; }

.badge { border-radius: 4px !important; }
.badge.bg-primary { color: var(--theme-badge-primary-text) !important; background: var(--theme-badge-primary-bg) !important; }
.badge.bg-success { color: var(--theme-badge-success-text) !important; background: var(--theme-badge-success-bg) !important; }
.badge.bg-warning { color: var(--theme-badge-warning-text) !important; background: var(--theme-badge-warning-bg) !important; }
.badge.bg-danger { color: var(--theme-badge-danger-text) !important; background: var(--theme-badge-danger-bg) !important; }
.badge.bg-info { color: var(--theme-badge-info-text) !important; background: var(--theme-badge-info-bg) !important; }

.table-responsive,
.modules-table-wrap {
    border-radius: var(--ax-radius-surface) !important;
    box-shadow: none !important;
}
.table > :not(caption) > * > * { box-shadow: none !important; }

.nav-menu .nav-item,
.nav-parent-toggle,
.nav-child,
.support-card,
.profile-panel {
    border-radius: var(--ax-radius-control) !important;
    box-shadow: none !important;
}
.nav-menu .nav-item:hover,
.nav-menu .nav-item.active,
.nav-parent-toggle:hover,
.nav-group.open > .nav-parent-toggle {
    transform: none !important;
}

.form-control,
.form-select,
.input,
.select {
    color: var(--theme-input-text, var(--text)) !important;
    background: var(--theme-input-bg, var(--card-bg, #fff)) !important;
    border: 1px solid var(--theme-input-border, var(--line)) !important;
}
.form-control::placeholder,
.input::placeholder { color: var(--theme-input-placeholder, var(--muted)) !important; opacity: 1 !important; }
.is-invalid,
.input-error { border-width: 2px !important; }
.invalid-feedback,
.valid-feedback,
.form-text,
.help { opacity: 1 !important; }

.axisass-work-card,
.axisass-modal { border-radius: var(--ax-radius-surface) !important; }
.axisass-toast { border-radius: var(--ax-radius-surface) !important; }

@media (max-width: 640px) {
    .content-area { padding-inline: 12px !important; }
    .card, .panel, .section, .login-card { padding: 16px !important; }
    .actions { align-items: stretch; }
    .actions > .btn, .actions > form, .actions > form > .btn { max-width: 100%; }
}

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