/* Base Styles */
[data-theme] {
    background-color: var(--theme-base-100) !important;
    color: var(--theme-base-content) !important;
}

/* Buttons */
[data-theme] .btn {
    transition: all 0.2s ease-in-out !important;
}

/* Primary Buttons */
[data-theme] .btn-primary {
    background-color: var(--theme-primary) !important;
    border-color: var(--theme-primary) !important;
    color: var(--theme-primary-content) !important;
}
[data-theme] .btn-primary:hover {
    background-color: var(--theme-primary-focus) !important;
    border-color: var(--theme-primary-focus) !important;
}
[data-theme] .btn-primary:disabled {
    background-color: var(--theme-disabled) !important;
    border-color: var(--theme-disabled) !important;
    color: var(--theme-disabled-content) !important;
}

/* Secondary Buttons */
[data-theme] .btn-secondary {
    background-color: var(--theme-secondary) !important;
    border-color: var(--theme-secondary) !important;
    color: var(--theme-secondary-content) !important;
}
[data-theme] .btn-secondary:hover {
    background-color: var(--theme-secondary-focus) !important;
    border-color: var(--theme-secondary-focus) !important;
}

/* Danger Buttons */
[data-theme] .btn-danger {
    background-color: var(--theme-secondary) !important;
    border-color: var(--theme-secondary) !important;
    color: var(--theme-secondary-content) !important;
}
[data-theme] .btn-secondary:hover {
    background-color: var(--theme-secondary-focus) !important;
    border-color: var(--theme-secondary-focus) !important;
}

/* Cards */
[data-theme] .card {
    background-color: var(--theme-base-200) !important;
    border: 1px solid var(--theme-base-300) !important;
}

/* Inputs */
[data-theme] .input {
    background-color: var(--theme-base-100) !important;
    border: 1px solid var(--theme-base-300) !important;
    color: var(--theme-base-content) !important;
}
[data-theme] .input:focus {
    border-color: var(--theme-primary) !important;
    box-shadow: 0 0 0 1px var(--theme-primary) !important;
}
/* Style invalid inputs in validated forms */
.was-validated input:invalid {
    border-color: red;
    background-color: #fff0f0;
}
/* Optional: Add a red glow on focus */
.was-validated input:invalid:focus {
    box-shadow: 0 0 0 0.2rem rgba(255, 0, 0, 0.25);
    outline: none;
}

/* Checkboxes */
[data-theme] .checkbox {
    border-color: var(--theme-base-300) !important;
    vertical-align: middle !important;
    margin-right: 6px !important;
}
[data-theme] .checkbox:checked {
    background-color: var(--theme-primary) !important;
    border-color: var(--theme-primary) !important;
}

/* Alerts */
[data-theme] .alert-info {
    background-color: var(--theme-info) !important;
    color: var(--theme-info-content) !important;
}
[data-theme] .alert-success-text {
    color: var(--theme-success) !important;
}
[data-theme] .alert-success {
    background-color: var(--theme-success) !important;
    color: var(--theme-success-content) !important;
}
[data-theme] .alert-warning {
    background-color: var(--theme-warning) !important;
    color: var(--theme-warning-content) !important;
}
[data-theme] .alert-error {
    background-color: var(--theme-error) !important;
    color: var(--theme-error-content) !important;
}
[data-theme] .alert-error-text {
    color: var(--theme-error) !important;
}

/* Badges */
[data-theme] .badge {
    background-color: var(--theme-base-300) !important;
    color: var(--theme-base-content) !important;
}
[data-theme] .badge-primary {
    background-color: var(--theme-primary) !important;
    color: var(--theme-primary-content) !important;
}

/* Progress */
[data-theme] .progress {
    background-color: var(--theme-base-100) !important;
}
[data-theme] .progress::-webkit-progress-value {
    background-color: var(--theme-primary) !important;
}
[data-theme] .progress::-moz-progress-bar {
    background-color: var(--theme-primary) !important;
}

/* Tables */
[data-theme] .table {
    background-color: var(--theme-base-100) !important;
    color: var(--theme-base-content) !important;
    font-size: 0.875rem !important;
}

/* Table Header */
[data-theme] .table thead {
    background-color: var(--theme-base-200) !important;
}
[data-theme] .table thead th {
    color: var(--theme-base-content) !important;
    border-bottom: 0px solid var(--theme-base-300) !important;
    font-size: 0.875rem !important;
}

/* Table Body */
[data-theme] .table tbody tr {
    border-bottom: 0px solid var(--theme-base-300) !important;
}
[data-theme] .table tbody tr:hover {
    /*background-color: var(--theme-base-200) !important;*/
}

/* Zebra Striping */
[data-theme='xcert_light'] .table-zebra tbody tr:nth-child(even) {
    background-color: var(--theme-base-150) !important;
}
[data-theme='xcert_light'] .table-zebra tbody tr:nth-child(odd) {
    background-color: var(--theme-base-100) !important;
}
[data-theme='xcert_light'] .table-zebra tbody tr:hover {
    background-color: var(--theme-base-250) !important;
}

/* Compact Table */
[data-theme] .table-compact td,
[data-theme] .table-compact th {
    padding: 0.5rem !important;
}

/* Active Row */
[data-theme] .table tr.active,
[data-theme] .table tr.active:nth-child(even) {
    background-color: var(--theme-primary) !important;
    color: var(--theme-primary-content) !important;
}
[data-theme] .table tr.active:hover {
    background-color: var(--theme-primary-focus) !important;
}

/* Table with border */
[data-theme] .table-bordered {
    border: 1px solid var(--theme-base-300) !important;
}
[data-theme] .table-bordered td,
[data-theme] .table-bordered th {
    border: 1px solid var(--theme-base-300) !important;
}

/* Modals */
[data-theme] .modal {
    padding: 1rem !important;
}

[data-theme] .modal-box {
    background-color: var(--theme-base-100) !important;
    color: var(--theme-base-content) !important;
    border: 1px solid var(--theme-base-300) !important;
    /*max-width: 100% !important;*/
}

[data-theme] .modal-backdrop {
    grid-column-start: auto !important;
    grid-column-end: auto !important;
    grid-row-start: auto !important;
    grid-row-end: auto !important;
    position: fixed !important;
    inset: 0 !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    /*inset: 0;*/
    /*background-color: rgba(0, 0, 0, 0.5); !* Semi-transparent black *!*/
    /*z-index: 40; !* Ensure it's below the modal *!*/
}

/* Links */
[data-theme] .link {
    color: var(--theme-primary) !important;
}
[data-theme] .link:hover {
    color: var(--theme-primary-focus) !important;
}

/* Tabs */
[data-theme] .tab {
    color: var(--theme-base-content) !important;
}
[data-theme] .tab.tab-active {
    color: var(--theme-primary) !important;
    border-color: var(--theme-primary) !important;
}

/* Dropdowns */
[data-theme] .dropdown-content {
    background-color: var(--theme-base-100) !important;
    border: 1px solid var(--theme-base-300) !important;
}

/* Toast/Notifications */
/* Keyframes for fade-out effect */
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

/* Apply the animation */
.disappear {
  animation: fadeOut 2s forwards; /* Disappear over 2 seconds */
  animation-delay: 8s; /* Wait 2 seconds before starting */
}

/* Optionally, remove the element from the layout after it fades out */
.disappear.hidden {
  visibility: hidden;
}

[data-theme] .toast {
    /*background-color: var(--theme-base-200) !important;*/
    color: var(--theme-base-content) !important;
    z-index: 1000 !important;
    margin-top: 2.8rem !important;
}

/* Menu */
[data-theme] .menu {
    background-color: var(--theme-base-200) !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.4rem !important;
}
[data-theme] .menu-item:hover {
    background-color: var(--theme-base-200) !important;
}
[data-theme] .menu-item.active {
    background-color: var(--theme-primary) !important;
    color: var(--theme-primary-content) !important;
}

/* Navbar */
[data-theme] .navbar {
    background-color: var(--theme-base-200) !important;
    color: var(--theme-base-content) !important;
}

/* Footer */
[data-theme] .footer aside div p {
    color: var(--theme-base-300) !important;
}

input:invalid {
    border: 2px solid red !important;
}

/* Stats */
[data-theme] .stats {
    background-color: var(--theme-base-200) !important;
    border: 1px solid var(--theme-base-300) !important;
}

[data-theme] .stat {
    background-color: var(--theme-base-200) !important;
    border-color: var(--theme-base-300) !important;
}

[data-theme] .stat-title {
    color: var(--theme-base-content) !important;
    opacity: 0.7 !important;
}

[data-theme] .stat-value {
    color: var(--theme-base-content) !important;
}

[data-theme] .stat-desc {
    color: var(--theme-base-content) !important;
    opacity: 0.7 !important;
}

/* Stat colors */
[data-theme] .stat-primary .stat-value {
    color: var(--theme-primary) !important;
}

[data-theme] .stat-secondary .stat-value {
    color: var(--theme-secondary) !important;
}

[data-theme] .stat-accent .stat-value {
    color: var(--theme-accent) !important;
}

/* Stat figure/icons */
[data-theme] .stat-figure {
    color: var(--theme-base-content) !important;
    opacity: 0.7 !important;
}

[data-theme] .stat-primary .stat-figure {
    color: var(--theme-primary) !important;
    opacity: 1 !important;
}

[data-theme] .stat-secondary .stat-figure {
    color: var(--theme-secondary) !important;
    opacity: 1 !important;
}

/* Chat bubble */
.chat-bubble-user {
    background-color: var(--theme-base-300) !important;
    /*background-color: var(--theme-primary) !important;*/
    /*color: var(--theme-primary-content) !important;*/
    color: var(--theme-base-content) !important;
    /*max-width: 100% !important;*/
    /*margin-right: -0.7rem !important;*/
}

.chat-bubble-agent {
    background-color: var(--theme-base-200) !important;
    /*background-color: var(--theme-primary) !important;*/
    /*color: var(--theme-primary-content) !important;*/
    color: var(--theme-base-content) !important;
    /*max-width: 100% !important;*/
    /*margin-left: -0.7rem !important;*/
}

.chat-footer {
    display: flex !important;
    /*justify-content: flex-start !important;*/
    color: var(--theme-primary) !important;
}

[data-theme] .collapse {
    position: relative !important;
    display: grid !important;
    overflow: hidden !important;
    /*grid-template-rows: auto 0fr !important;*/
    transition: grid-template-rows .2s !important;
    width: 100% !important;
    border-radius: 0 !important;  /*var(--rounded-box,1rem);*/
    background-color: initial !important;
}

[data-theme] .collapse-title {
    padding: 0 !important;
    padding-inline-end: 3rem !important;
    min-height: 0 !important;
    transition: background-color .2s ease-out;
}

/* Artefact (inspired from Card) */
[data-theme] .artefact {
    background-color: var(--theme-base-200) !important;
    border: 1px solid var(--theme-base-300) !important;
}

[data-theme] .artefact-title {
    color: var(--theme-base-content) !important;
    font-size: 1.25rem !important; /* Example size, adjust as needed */
    font-weight: bold !important;
}

[data-theme] .artefact-body {
    background-color: var(--theme-base-200) !important;
    padding: 1rem !important; /* Example padding, adjust as needed */
    color: var(--theme-base-content) !important;
    border-radius: 0.5rem !important;
}

[data-theme] .artefact-actions {
    display: flex !important;
    justify-content: flex-end !important; /* Align actions to the right */
}

[data-theme] .artefact-image {
    width: 100% !important;
    height: auto !important;
    border-bottom: 1px solid var(--theme-base-300) !important;
    background-color: var(--theme-base-100) !important;
}

[data-theme] .artefact-header {
    background-color: var(--theme-base-200) !important;
    color: var(--theme-base-content) !important;
    padding: 0.75rem !important; /* Example padding */
    border-bottom: 1px solid var(--theme-base-300) !important;
}

/* Requirement */
[data-theme] .req-title {
    color: var(--theme-base-content) !important;
    font-size: 1.25rem !important; /* Example size, adjust as needed */
    font-weight: bold !important;
}
