/**
 * Dark Mode Theme
 * Sistema di dark mode con supporto per light/dark/auto
 */

/* Light Mode (Default) */
:root, [data-theme="light"] {
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-tertiary: #e9ecef;
    --text-primary: #212529;
    --text-secondary: #6c757d;
    --text-muted: #adb5bd;
    --border-color: #dee2e6;
    --card-bg: #ffffff;
    --card-shadow: rgba(0, 0, 0, 0.1);
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --nav-bg: var(--primary-color);
    --nav-text: #ffffff;
}

/* Dark Mode */
[data-theme="dark"] {
    --bg-primary: #1a1d23;
    --bg-secondary: #232730;
    --bg-tertiary: #2d323e;
    --text-primary: #e4e6eb;
    --text-secondary: #b0b3b8;
    --text-muted: #8a8d91;
    --border-color: #3e4451;
    --card-bg: #232730;
    --card-shadow: rgba(0, 0, 0, 0.3);
    --input-bg: #2d323e;
    --input-border: #3e4451;
    --nav-bg: #1a1d23;
    --nav-text: #e4e6eb;
}

/* Body e struttura principale */
body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Cards */
.card {
    background-color: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.card-header {
    background-color: var(--bg-secondary);
    border-bottom-color: var(--border-color);
    color: var(--text-primary);
}

.card-footer {
    background-color: var(--bg-secondary);
    border-top-color: var(--border-color);
}

/* Forms */
.form-control, .form-select {
    background-color: var(--input-bg);
    border-color: var(--input-border);
    color: var(--text-primary);
}

.form-control:focus, .form-select:focus {
    background-color: var(--input-bg);
    border-color: var(--primary-color);
    color: var(--text-primary);
}

.form-control::placeholder {
    color: var(--text-muted);
}

/* Input groups */
.input-group-text {
    background-color: var(--bg-secondary);
    border-color: var(--input-border);
    color: var(--text-secondary);
}

/* Tables */
.table {
    color: var(--text-primary);
}

/* Rimosso effetto striped - tutte le righe hanno lo stesso background */
.table > tbody > tr {
    background-color: transparent;
}

.table-hover > tbody > tr:hover > * {
    background-color: var(--bg-secondary);
    color: #fff;
}

/* Modals */
.modal-content {
    background-color: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.modal-header, .modal-footer {
    border-color: var(--border-color);
}

/* Dropdowns */
.dropdown-menu {
    background-color: var(--card-bg);
    border-color: var(--border-color);
}

.dropdown-item {
    color: var(--text-primary);
}

.dropdown-item:hover, .dropdown-item:focus {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}

.dropdown-divider {
    border-color: var(--border-color);
}

/* Navbar - mantiene il colore primario ma adatta il testo */
.navbar-dark {
    background-color: var(--nav-bg) !important;
}

.navbar-dark .navbar-nav .nav-link {
    color: var(--nav-text);
}

/* Navbar buttons - outline buttons nella navbar */
.navbar .btn-outline-primary {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.5);
}

.navbar .btn-outline-primary:hover {
    color: var(--primary-color);
    background-color: #ffffff;
    border-color: #ffffff;
}

.navbar .btn-outline-warning {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.5);
}

.navbar .btn-outline-warning:hover {
    color: #000;
    background-color: #ffc107;
    border-color: #ffc107;
}

/* Dark mode: navbar buttons mantengono stesso stile */
[data-theme="dark"] .navbar .btn-outline-primary {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.5);
}

[data-theme="dark"] .navbar .btn-outline-primary:hover {
    color: var(--primary-color);
    background-color: #ffffff;
    border-color: #ffffff;
}

[data-theme="dark"] .navbar .btn-outline-warning {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.5);
}

[data-theme="dark"] .navbar .btn-outline-warning:hover {
    color: #000;
    background-color: #ffc107;
    border-color: #ffc107;
}

/* Badges */
.badge {
    background-color: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Alerts */
.alert {
    border-color: var(--border-color);
}

[data-theme="dark"] .alert-info {
    background-color: rgba(13, 110, 253, 0.15);
    border-color: rgba(13, 110, 253, 0.3);
    color: #6ea8fe;
}

[data-theme="dark"] .alert-warning {
    background-color: rgba(255, 193, 7, 0.15);
    border-color: rgba(255, 193, 7, 0.3);
    color: #ffda6a;
}

[data-theme="dark"] .alert-danger {
    background-color: rgba(220, 53, 69, 0.15);
    border-color: rgba(220, 53, 69, 0.3);
    color: #ea868f;
}

[data-theme="dark"] .alert-success {
    background-color: rgba(25, 135, 84, 0.15);
    border-color: rgba(25, 135, 84, 0.3);
    color: #75b798;
}

/* List groups */
.list-group-item {
    background-color: var(--card-bg);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.list-group-item:hover {
    background-color: var(--bg-secondary);
}

/* Borders */
.border {
    border-color: var(--border-color) !important;
}

.border-top, .border-end, .border-bottom, .border-start {
    border-color: var(--border-color) !important;
}

/* Text colors */
.text-muted {
    color: var(--text-muted) !important;
}

.text-secondary {
    color: var(--text-secondary) !important;
}

/* Backgrounds */
.bg-light {
    background-color: var(--bg-secondary) !important;
}

.bg-white {
    background-color: var(--card-bg) !important;
}

/* HR */
hr {
    border-color: var(--border-color);
    opacity: 1;
}

/* Card headers con gradient - testo sempre bianco */
.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.modal-header h1,
.modal-header h2,
.modal-header h3,
.modal-header h4,
.modal-header h5,
.modal-header h6,
.modal-title {
    color: white !important;
}

/* TinyMCE Dark Mode Support */
[data-theme="dark"] .tox .tox-edit-area__iframe {
    background-color: var(--input-bg);
}

/* Scrollbar Dark Mode */
[data-theme="dark"]::-webkit-scrollbar-track {
    background: var(--bg-secondary);
}

[data-theme="dark"]::-webkit-scrollbar-thumb {
    background: var(--bg-tertiary);
}

[data-theme="dark"]::-webkit-scrollbar-thumb:hover {
    background: var(--input-border);
}

/* Prevent white flash on page load */
html {
    background-color: #ffffff;
}

html[data-theme="dark"] {
    background-color: #1a1d23;
}

/* Theme toggle transitions */
* {
    transition-property: background-color, border-color, color;
    transition-duration: 0.3s;
    transition-timing-function: ease;
}

/* Disable transitions on theme switch to avoid lag */
.theme-transitioning * {
    transition: none !important;
}
