/* ============================================================
   Dark Theme
   ============================================================ */

body.theme-dark {
    --ink: #e8eef5;
    --ink-muted: #9aa8b8;
    --surface: #0b1220;
    --surface-2: #111a2b;
    --card: #141e31;
    --border: #243247;
    --primary-soft: rgba(45, 212, 191, 0.14);
    --shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
    --shadow-sm: 0 2px 12px rgba(0, 0, 0, 0.28);
    background:
        radial-gradient(1000px 480px at 100% -10%, rgba(15, 118, 110, 0.18), transparent 55%),
        radial-gradient(800px 400px at 0% 100%, rgba(194, 65, 12, 0.1), transparent 50%),
        #0b1220;
    color: var(--ink);
}

body.theme-dark .custom-card,
body.theme-dark .stat-card,
body.theme-dark .modal-content,
body.theme-dark .dropdown-menu,
body.theme-dark .po-item-row {
    background: var(--card);
    border-color: var(--border);
    color: var(--ink);
}

body.theme-dark .custom-card .card-header,
body.theme-dark .modal-header {
    background: linear-gradient(180deg, #182338, #141e31);
    border-color: var(--border);
    color: var(--ink);
}

body.theme-dark .custom-table thead th {
    background: #182338;
    color: #cbd5e1;
    border-color: var(--border);
}

body.theme-dark .custom-table tbody td {
    border-color: #1f2c42;
    color: var(--ink);
}

body.theme-dark .custom-table tbody tr:hover {
    background: #182338;
}

body.theme-dark .form-control,
body.theme-dark .form-select,
body.theme-dark .input-group-text {
    background: #0f172a;
    border-color: #2a3a52;
    color: var(--ink);
}

body.theme-dark .form-control:focus,
body.theme-dark .form-select:focus {
    background: #111827;
    color: var(--ink);
}

body.theme-dark .form-control::placeholder {
    color: #7c8aa0;
}

body.theme-dark .text-muted {
    color: #9aa8b8 !important;
}

body.theme-dark .bg-light {
    background-color: #182338 !important;
}

body.theme-dark .border,
body.theme-dark .border-bottom,
body.theme-dark .border-top {
    border-color: var(--border) !important;
}

body.theme-dark .app-sidebar {
    background: linear-gradient(180deg, #121b2d 0%, #0e1626 100%);
    border-left-color: var(--border);
    box-shadow: -8px 0 28px rgba(0, 0, 0, 0.35);
}

body.theme-dark .sidebar-btn {
    color: #d5dee8;
}

body.theme-dark .sidebar-btn-icon {
    background: #1a2740;
    color: #5eead4;
}

body.theme-dark .sidebar-btn:hover {
    background: #182338;
    border-color: #2a3f5c;
    color: #5eead4;
    box-shadow: none;
}

body.theme-dark .sidebar-btn-main {
    background: #182338;
    border-color: #243247;
}

body.theme-dark .sidebar-submenu {
    border-inline-start-color: #2a3a52;
}

body.theme-dark .sidebar-btn-sub .sidebar-btn-icon {
    background: #1a2740;
}

body.theme-dark .sidebar-btn.active-group,
body.theme-dark .sidebar-btn.active {
    color: #99f6e4;
}

body.theme-dark .app-footer-credit {
    color: #9aa8b8;
}

body.theme-dark .app-footer-inner {
    border-top-color: var(--border);
}

body.theme-dark .dropdown-item {
    color: var(--ink);
}

body.theme-dark .dropdown-item:hover,
body.theme-dark .dropdown-item:focus {
    background: #182338;
    color: #99f6e4;
}

body.theme-dark .notif-item {
    border-bottom-color: #1f2c42;
    color: var(--ink);
}

body.theme-dark .notif-item:hover {
    background: #182338;
}

body.theme-dark .notif-item.unread {
    background: rgba(15, 118, 110, 0.16);
}

body.theme-dark .notif-item-body strong {
    color: #e8eef5;
}

body.theme-dark .notif-item-icon {
    background: #1a2740;
}

body.theme-dark .legend-item {
    background: #182338;
    border-color: var(--border);
}

body.theme-dark .progress-thin {
    background: #1a2740;
}

body.theme-dark .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ink);
    color: var(--ink);
}

body.theme-dark .alert {
    border: 0;
}

body.theme-dark .btn-outline-primary {
    color: #5eead4;
    border-color: #0f766e;
}

body.theme-dark .btn-outline-primary:hover {
    background: #0f766e;
    color: #fff;
}

body.theme-dark .page-toolbar h4 {
    color: var(--ink);
}

/* Topbar preference buttons */
.topbar-pref-btn {
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    margin: 0 !important;
    color: #fff !important;
    border-radius: 10px;
    text-decoration: none !important;
    font-size: 13px;
    font-weight: 800;
}

.topbar-pref-btn:hover {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}

.login-prefs {
    position: absolute;
    top: 16px;
    inset-inline-end: 16px;
    z-index: 20;
    display: flex;
    gap: 8px;
}

.login-prefs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 42px;
    height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    background: rgba(15, 118, 110, 0.1);
    border: 1px solid rgba(15, 118, 110, 0.2);
    color: #0f766e;
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
}

.login-prefs a:hover {
    background: rgba(15, 118, 110, 0.18);
    color: #0d5c56;
}

body.theme-dark.login-body,
body.theme-dark .login-panel {
    background: #0b1220 !important;
}

body.theme-dark .login-card {
    background: rgba(20, 30, 49, 0.96);
    border-color: #243247;
    color: #e8eef5;
}

body.theme-dark .login-card h2 {
    color: #e8eef5;
}

body.theme-dark .login-card .subtitle,
body.theme-dark .login-meta .form-check-label,
body.theme-dark .login-hint {
    color: #9aa8b8;
}

body.theme-dark .field label {
    color: #cbd5e1;
}

body.theme-dark .input-shell input {
    background: #0f172a;
    border-color: #2a3a52;
    color: #e8eef5;
}

body.theme-dark .login-prefs a {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
    color: #99f6e4;
}

/* LTR sidebar adjustments */
html[dir="ltr"] .app-sidebar {
    right: auto;
    left: 0;
    border-left: 0;
    border-right: 1px solid var(--border);
    box-shadow: 8px 0 28px rgba(15, 23, 42, 0.07);
}

html[dir="ltr"] .has-app-sidebar .main-content {
    margin-right: 0;
    margin-left: var(--sidebar-width);
}

html[dir="ltr"] .has-app-sidebar .app-footer {
    margin-right: 0;
    margin-left: var(--sidebar-width);
}

html[dir="ltr"] .sidebar-btn.active {
    box-shadow: inset 3px 0 0 #0f766e;
}

html[dir="ltr"] .sidebar-btn:hover {
    transform: translateX(2px);
}

html[dir="ltr"] .stat-card {
    border-right: 0;
    border-left: 4px solid var(--primary);
}

html[dir="ltr"] .stat-card.primary { border-left-color: var(--primary); }
html[dir="ltr"] .stat-card.success { border-left-color: var(--success); }
html[dir="ltr"] .stat-card.warning { border-left-color: var(--warning); }
html[dir="ltr"] .stat-card.danger { border-left-color: var(--danger); }
html[dir="ltr"] .stat-card.info { border-left-color: var(--info); }

@media (max-width: 1199.98px) {
    html[dir="ltr"] .app-sidebar {
        transform: translateX(-100%);
    }
    html[dir="ltr"] .app-sidebar.show {
        transform: translateX(0);
    }
    html[dir="ltr"] .has-app-sidebar .main-content {
        margin-left: 0;
        width: 100%;
        max-width: 100%;
    }
    html[dir="ltr"] .has-app-sidebar .app-footer {
        margin-left: 0;
    }
}
