/**
 * Default Template - Theme Color System
 * This file provides CSS overrides to apply admin-configured colors
 * to Bootstrap components. CSS variables are injected from layout.blade.php.
 */

/* CSS variables are injected dynamically via template_css_vars_style() */

/* ============================================================
   GLOBAL THEME OVERRIDES - Apply theme variables to ALL components
   ============================================================ */

/* Force ALL Bootstrap components to use admin-configured border/shadow styling */
body[data-template="default"] .btn,
body[data-template="default"] .btn:hover,
body[data-template="default"] .btn:focus,
body[data-template="default"] .btn:active,
body[data-template="default"] .card,
body[data-template="default"] .card-header,
body[data-template="default"] .card-footer,
body[data-template="default"] .form-control,
body[data-template="default"] .form-control:focus,
body[data-template="default"] .form-select,
body[data-template="default"] .form-select:focus,
body[data-template="default"] .input-group-text,
body[data-template="default"] .alert,
body[data-template="default"] .modal-content,
body[data-template="default"] .modal-header,
body[data-template="default"] .dropdown-menu,
body[data-template="default"] .dropdown-item,
body[data-template="default"] .toast,
body[data-template="default"] .toast-header,
body[data-template="default"] .badge,
body[data-template="default"] .progress,
body[data-template="default"] .list-group-item,
body[data-template="default"] .list-group-item:first-child,
body[data-template="default"] .list-group-item:last-child,
body[data-template="default"] .nav-tabs .nav-link,
body[data-template="default"] .nav-pills .nav-link,
body[data-template="default"] .pagination .page-link,
body[data-template="default"] .breadcrumb-item {
    border-radius: var(--bs-border-radius) !important;
}

body[data-template="default"] .btn,
body[data-template="default"] .card,
body[data-template="default"] .form-control,
body[data-template="default"] .form-select,
body[data-template="default"] .input-group-text,
body[data-template="default"] .alert,
body[data-template="default"] .modal-content,
body[data-template="default"] .list-group-item,
body[data-template="default"] .dropdown-menu,
body[data-template="default"] .toast,
body[data-template="default"] .badge {
    border-width: var(--bs-border-width) !important;
}

body[data-template="default"] .card,
body[data-template="default"] .alert,
body[data-template="default"] .modal-content,
body[data-template="default"] .dropdown-menu,
body[data-template="default"] .toast {
    box-shadow: var(--bs-box-shadow) !important;
}

/* ============================================================
   BASE LAYOUT & COLORS
   ============================================================ */

/* Enforce base background/text/link colors for this template */
body[data-template="default"] {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

html[data-template],
html body[data-template="default"] {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

body[data-template="default"] a,
body[data-template="default"] .link-primary,
body[data-template="default"] .text-link,
body[data-template="default"] .text-primary {
    color: var(--bs-link-color) !important;
}

body[data-template="default"] a:hover,
body[data-template="default"] a:focus {
    color: var(--bs-link-hover-color) !important;
    opacity: 0.9;
}

body[data-template="default"] .bg-body {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

/* Common surfaces */
body[data-template="default"] .card {
    background-color: var(--bs-body-bg) !important;
    border: var(--bs-card-border) !important;
    border-radius: var(--bs-card-border-radius) !important;
    box-shadow: var(--bs-card-shadow) !important;
    --bs-card-bg: var(--bs-secondary-bg) !important;
    overflow: hidden; /* ensure inner backgrounds respect rounded corners */
}

body[data-template="default"] .card-body {
    background-color: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: inherit;
}

body[data-template="default"] .form-control,
body[data-template="default"] .input-group-text {
    background-color: var(--bs-body-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

body[data-template="default"] .list-group-item,
body[data-template="default"] .list-group-item-action {
    background-color: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

body[data-template="default"] .border,
body[data-template="default"] .border-top,
body[data-template="default"] .border-bottom,
body[data-template="default"] .border-start,
body[data-template="default"] .border-end {
    border-color: var(--bs-border-color) !important;
    border-width: var(--bs-border-width) !important;
}

body[data-template="default"] .text-body,
body[data-template="default"] .text-body-secondary {
    color: var(--bs-body-color) !important;
}

/* Modal styling */
body[data-template="default"] .modal-content {
    background-color: var(--bs-body-bg) !important;
    border-color: var(--bs-border-color) !important;
}

body[data-template="default"] .modal-header,
body[data-template="default"] .modal-body,
body[data-template="default"] .modal-footer {
    border-color: var(--bs-border-color) !important;
}

/* Override Bootstrap alert colors with custom palette */
/* Alerts honor palette colors and alert opacity */
body[data-template="default"] .alert,
body[data-template="default"] .alert-primary,
body[data-template="default"] .alert-secondary,
body[data-template="default"] .alert-success,
body[data-template="default"] .alert-danger,
body[data-template="default"] .alert-warning,
body[data-template="default"] .alert-info,
body[data-template="default"] .alert-light,
body[data-template="default"] .alert-dark {
    border-width: var(--bs-alert-border-width, 1px) !important;
    border-style: solid !important;
    border-color: var(--bs-alert-border-color) !important;
    box-shadow: var(--bs-alert-shadow, none) !important;
    background-color: rgba(var(--bs-body-bg-rgb), var(--bs-alert-opacity)) !important;
    color: var(--bs-body-color) !important;
}

body[data-template="default"] .alert-primary {
    background-color: rgba(var(--bs-primary-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-primary .alert-heading,
body[data-template="default"] .alert-primary .alert-link {
    color: var(--bs-primary) !important;
}

body[data-template="default"] .alert-secondary {
    background-color: rgba(var(--bs-secondary-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-secondary .alert-heading,
body[data-template="default"] .alert-secondary .alert-link {
    color: var(--bs-secondary) !important;
}

body[data-template="default"] .alert-success {
    background-color: rgba(var(--bs-success-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-success .alert-heading,
body[data-template="default"] .alert-success .alert-link {
    color: var(--bs-success) !important;
}

body[data-template="default"] .alert-info {
    background-color: rgba(var(--bs-info-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-info .alert-heading,
body[data-template="default"] .alert-info .alert-link {
    color: var(--bs-info) !important;
}

body[data-template="default"] .alert-warning {
    background-color: rgba(var(--bs-warning-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-warning .alert-heading,
body[data-template="default"] .alert-warning .alert-link {
    color: var(--bs-warning) !important;
}

body[data-template="default"] .alert-danger {
    background-color: rgba(var(--bs-danger-rgb), var(--bs-alert-opacity)) !important;
}
body[data-template="default"] .alert-danger .alert-heading,
body[data-template="default"] .alert-danger .alert-link {
    color: var(--bs-danger) !important;
}

/* Override button colors */
.btn-primary {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-primary) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-primary) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-primary) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-border-color) !important;
}

.btn-secondary {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-secondary) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-secondary) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-secondary) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-secondary) !important;
    border-color: var(--bs-border-color) !important;
}

.btn-success {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-success) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-success) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-success) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-success) !important;
    border-color: var(--bs-border-color) !important;
}

.btn-info {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-info) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-info) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-info) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-info) !important;
    border-color: var(--bs-border-color) !important;
}

.btn-warning {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-warning) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-warning) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-warning) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-warning) !important;
    border-color: var(--bs-border-color) !important;
}

.btn-danger {
    --bs-btn-color: var(--bs-emphasis-color) !important;
    --bs-btn-hover-color: var(--bs-emphasis-color) !important;
    --bs-btn-active-color: var(--bs-emphasis-color) !important;
    --bs-btn-bg: var(--bs-danger) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-danger) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-danger) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-danger) !important;
    border-color: var(--bs-border-color) !important;
}

/* Tertiary button (subtle background) */
.btn-tertiary {
    --bs-btn-color: var(--bs-body-color) !important;
    --bs-btn-hover-color: var(--bs-body-color) !important;
    --bs-btn-active-color: var(--bs-body-color) !important;
    --bs-btn-bg: var(--bs-tertiary-bg) !important;
    --bs-btn-border-color: var(--bs-border-color) !important;
    --bs-btn-hover-bg: var(--bs-secondary-bg) !important;
    --bs-btn-hover-border-color: var(--bs-border-color) !important;
    --bs-btn-active-bg: var(--bs-secondary-bg) !important;
    --bs-btn-active-border-color: var(--bs-border-color) !important;
    background-color: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-border-color) !important;
    border-radius: var(--bs-border-radius) !important;
}

/* Badge colors */
.badge.bg-primary { background-color: var(--bs-primary) !important; }
.badge.bg-secondary { background-color: var(--bs-secondary) !important; }
.badge.bg-success { background-color: var(--bs-success) !important; }
.badge.bg-info { background-color: var(--bs-info) !important; }
.badge.bg-warning { background-color: var(--bs-warning) !important; }
.badge.bg-danger { background-color: var(--bs-danger) !important; }

/* Apply border-radius and styling to badges and other rounded elements */
.badge {
    border-radius: var(--bs-border-radius) !important;
}

/* Text colors */
.text-primary { color: var(--bs-primary) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-success { color: var(--bs-success) !important; }
.text-info { color: var(--bs-info) !important; }
.text-warning { color: var(--bs-warning) !important; }
.text-danger { color: var(--bs-danger) !important; }

/* Background colors */
.bg-primary { background-color: var(--bs-primary) !important; }
.bg-secondary { background-color: var(--bs-secondary) !important; }
.bg-success { background-color: var(--bs-success) !important; }
.bg-info { background-color: var(--bs-info) !important; }
.bg-warning { background-color: var(--bs-warning) !important; }
.bg-danger { background-color: var(--bs-danger) !important; }

/* Navbar colors */
.navbar.bg-primary {
    background-color: var(--bs-primary) !important;
}
/* Navbar: use palette-driven borders, text, and shadow */
body[data-template="default"] .navbar,
body[data-template="default"] .navbar .navbar-brand,
body[data-template="default"] .navbar .navbar-nav .nav-link,
body[data-template="default"] .navbar-dark .navbar-brand,
body[data-template="default"] .navbar-dark .navbar-nav .nav-link,
body[data-template="default"] .navbar-light .navbar-brand,
body[data-template="default"] .navbar-light .navbar-nav .nav-link {
    color: var(--bs-navbar-text-color, var(--bs-body-color)) !important;
}

body[data-template="default"] .navbar {
    border-bottom: var(--bs-navbar-border, 1px solid var(--bs-border-color)) !important;
    box-shadow: var(--bs-navbar-shadow, none) !important;
}

body[data-template="default"] .navbar .navbar-nav .nav-link {
    font-weight: 700 !important;
}

body[data-template="default"] .navbar .navbar-nav .nav-link:hover,
body[data-template="default"] .navbar .navbar-nav .nav-link:focus {
    color: var(--bs-body-color) !important;
    text-decoration: none !important;
}

/* Dropdowns: palette-driven borders and shadow */
.dropdown-menu {
    background-color: var(--bs-body-bg);
    color: var(--bs-emphasis-color);
    border: var(--bs-dropdown-border, var(--bs-alert-border, 1px solid var(--bs-border-color)));
    box-shadow: var(--bs-dropdown-shadow, var(--bs-box-shadow));
}

.dropdown-item {
    color: var(--bs-emphasis-color);
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--bs-emphasis-color);
    background-color: var(--bs-dropdown-hover-bg, var(--bs-tertiary-bg));
    border-radius: 0 !important;
}

/* Alert link styling */
body[data-template="default"] .alert .alert-link {
    color: inherit !important;
    font-weight: 700;
    text-decoration: underline;
}

body[data-template="default"] .alert .alert-heading {
    color: inherit !important;
}

/* Tables: palette-driven borders and optional shadow */
body[data-template="default"] table,
body[data-template="default"] .table,
body[data-template="default"] .table-bordered,
body[data-template="default"] .table > :not(caption) > * > * {
    border-color: var(--bs-border-color) !important;
}

body[data-template="default"] .table,
body[data-template="default"] .table-bordered {
    border: var(--bs-table-border);
    border-radius: var(--bs-table-border-radius);
    box-shadow: var(--bs-table-shadow);
}

/* Border colors */
.border-primary { border-color: var(--bs-primary) !important; }
.border-secondary { border-color: var(--bs-secondary) !important; }
.border-success { border-color: var(--bs-success) !important; }
.border-info { border-color: var(--bs-info) !important; }
.border-warning { border-color: var(--bs-warning) !important; }
.border-danger { border-color: var(--bs-danger) !important; }
