/* Planejatta theme system */
:root {
    color-scheme: light;
    --plj-bg: #f8fafc;
    --plj-surface: #ffffff;
    --plj-surface-soft: #f1f5f9;
    --plj-border: #e5e7eb;
    --plj-text: #1f2937;
    --plj-muted: #64748b;
    --plj-primary: #16a34a;
    --plj-primary-strong: #15803d;
    --plj-shadow: 0 8px 22px rgba(15, 23, 42, .08);
}

:root[data-theme="dark"] {
    color-scheme: dark;
    --plj-bg: #0f172a;
    --plj-surface: #111827;
    --plj-surface-soft: #1e293b;
    --plj-border: #334155;
    --plj-text: #e5e7eb;
    --plj-muted: #94a3b8;
    --plj-primary: #22c55e;
    --plj-primary-strong: #16a34a;
    --plj-shadow: 0 10px 26px rgba(0, 0, 0, .32);
}

:root[data-theme="dark"] body {
    background: var(--plj-bg) !important;
    color: var(--plj-text) !important;
}

:root[data-theme="dark"] .bg-white,
:root[data-theme="dark"] .bg-gray-50,
:root[data-theme="dark"] .bg-gray-100,
:root[data-theme="dark"] .bg-blue-50,
:root[data-theme="dark"] .bg-blue-100,
:root[data-theme="dark"] .bg-green-50,
:root[data-theme="dark"] .bg-green-100,
:root[data-theme="dark"] .bg-yellow-50,
:root[data-theme="dark"] .bg-red-50,
:root[data-theme="dark"] .bg-indigo-50,
:root[data-theme="dark"] .bg-rose-50,
:root[data-theme="dark"] .bg-emerald-50,
:root[data-theme="dark"] .card-setting,
:root[data-theme="dark"] .kpi-card,
:root[data-theme="dark"] .stat-card,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .bank-help-card,
:root[data-theme="dark"] details,
:root[data-theme="dark"] table,
:root[data-theme="dark"] #dropdownMenu {
    background-color: var(--plj-surface) !important;
    color: var(--plj-text) !important;
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] .bg-gray-200,
:root[data-theme="dark"] .bg-gray-300 {
    background-color: var(--plj-surface-soft) !important;
}

:root[data-theme="dark"] .bg-gray-800 {
    background-color: #111827 !important;
}

:root[data-theme="dark"] .text-black,
:root[data-theme="dark"] .text-gray-700,
:root[data-theme="dark"] .text-gray-800,
:root[data-theme="dark"] .text-gray-900 {
    color: var(--plj-text) !important;
}

:root[data-theme="dark"] .text-gray-400,
:root[data-theme="dark"] .text-gray-500,
:root[data-theme="dark"] .text-gray-600 {
    color: var(--plj-muted) !important;
}

:root[data-theme="dark"] .border,
:root[data-theme="dark"] .border-gray-100,
:root[data-theme="dark"] .border-gray-200,
:root[data-theme="dark"] .border-gray-300,
:root[data-theme="dark"] .border-blue-100,
:root[data-theme="dark"] .border-green-100,
:root[data-theme="dark"] .border-green-200,
:root[data-theme="dark"] .border-yellow-100,
:root[data-theme="dark"] .border-red-100,
:root[data-theme="dark"] .border-indigo-200 {
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] pre {
    background-color: #0b1220 !important;
    color: var(--plj-text) !important;
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder {
    color: #64748b !important;
}

:root[data-theme="dark"] .shadow,
:root[data-theme="dark"] .shadow-lg,
:root[data-theme="dark"] .shadow-xl,
:root[data-theme="dark"] .shadow-sm {
    box-shadow: var(--plj-shadow) !important;
}

:root[data-theme="dark"] .hover\:bg-gray-100:hover,
:root[data-theme="dark"] .hover\:bg-gray-300:hover {
    background-color: #273449 !important;
}

:root[data-theme="dark"] .bg-green-600,
:root[data-theme="dark"] .bg-green-500,
:root[data-theme="dark"] .bg-green-700,
:root[data-theme="dark"] .bg-green-800,
:root[data-theme="dark"] .bg-blue-500,
:root[data-theme="dark"] .bg-blue-600,
:root[data-theme="dark"] .bg-red-500,
:root[data-theme="dark"] .bg-red-600,
:root[data-theme="dark"] .bg-indigo-600,
:root[data-theme="dark"] .bg-gray-700,
:root[data-theme="dark"] .bg-gray-800,
:root[data-theme="dark"] .action-card {
    color: #fff !important;
}

/* Collaborator management area */
:root[data-theme="dark"] body.gestao {
    background: var(--plj-bg) !important;
}

:root[data-theme="dark"] .header.bg-green-600,
:root[data-theme="dark"] .gestao-header {
    background: #15803d !important;
    color: #fff !important;
}

:root[data-theme="dark"] #sidebar,
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .gestao-sidebar {
    background: #111827 !important;
    color: #e5e7eb !important;
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] #sidebar a,
:root[data-theme="dark"] .sidebar a,
:root[data-theme="dark"] .gestao-sidebar a {
    color: #e5e7eb !important;
}

:root[data-theme="dark"] #sidebar a:hover,
:root[data-theme="dark"] #sidebar a.active,
:root[data-theme="dark"] .sidebar a:hover,
:root[data-theme="dark"] .sidebar a.active,
:root[data-theme="dark"] .gestao-sidebar a:hover,
:root[data-theme="dark"] .gestao-sidebar a.active,
:root[data-theme="dark"] #sidebar .bg-gray-700,
:root[data-theme="dark"] .sidebar .bg-gray-700 {
    background-color: #065f46 !important;
    color: #fff !important;
}

:root[data-theme="dark"] .gestao-footer {
    background: #0b1220 !important;
    color: #cbd5e1 !important;
    border-top: 1px solid var(--plj-border);
}

:root[data-theme="dark"] .gestao-card,
:root[data-theme="dark"] .dash-card,
:root[data-theme="dark"] .stats-card,
:root[data-theme="dark"] .section-card,
:root[data-theme="dark"] .sch-card,
:root[data-theme="dark"] .pcl-card,
:root[data-theme="dark"] .prt-card,
:root[data-theme="dark"] .anl-card,
:root[data-theme="dark"] .anl-obj-card,
:root[data-theme="dark"] .pcl-obj-card,
:root[data-theme="dark"] .pcl-fin-mini-card,
:root[data-theme="dark"] .modal-contract-box,
:root[data-theme="dark"] .createProductModalContent,
:root[data-theme="dark"] .drawer {
    background: var(--plj-surface) !important;
    color: var(--plj-text) !important;
    border-color: var(--plj-border) !important;
    box-shadow: var(--plj-shadow) !important;
}

:root[data-theme="dark"] .todo-item,
:root[data-theme="dark"] .tab-btn:not(.bg-green-500) {
    background: #0b1220 !important;
    color: var(--plj-text) !important;
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] .todo-item:hover {
    background: #122033 !important;
    border-color: #16a34a !important;
}

:root[data-theme="dark"] thead,
:root[data-theme="dark"] tbody,
:root[data-theme="dark"] tr {
    border-color: var(--plj-border) !important;
}

:root[data-theme="dark"] tbody tr:hover {
    background-color: #122033 !important;
}

:root[data-theme="dark"] .bg-white.text-green-700 {
    background-color: #ecfdf5 !important;
    color: #047857 !important;
}

:root[data-theme="dark"] .badge-pri.alta {
    background: #451a1a !important;
    color: #fecaca !important;
}

:root[data-theme="dark"] .badge-pri.media {
    background: #422006 !important;
    color: #fde68a !important;
}

:root[data-theme="dark"] .badge-pri.baixa {
    background: #052e16 !important;
    color: #bbf7d0 !important;
}

/* Final budget modal button guard.
   theme.css loads after module CSS, so keep the contrast guarantee here too. */
.modal-content .budget-save-btn,
.modal-content button.budget-save-btn,
#newModalImport #importConfirmBtn.budget-save-btn {
    appearance: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35rem !important;
    min-height: 46px !important;
    padding: .78rem 1.2rem !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 10px !important;
    color: #fff !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    text-shadow: 0 1px 1px rgba(0,0,0,.18) !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.18), inset 0 1px 0 rgba(255,255,255,.18) !important;
    cursor: pointer !important;
}

.modal-content form > button.budget-save-btn {
    position: static !important;
    bottom: auto !important;
    isolation: auto !important;
}

.modal-content form > button.budget-save-btn::before {
    content: none !important;
    display: none !important;
}

.modal-content .budget-save-btn i,
.modal-content button.budget-save-btn i {
    color: inherit !important;
}

.modal-content .budget-save-btn--income,
#newModalReceita .budget-save-btn {
    background: #047857 !important;
    background-image: linear-gradient(135deg, #10b981, #047857) !important;
    border-color: #065f46 !important;
}

.modal-content .budget-save-btn--income:hover,
#newModalReceita .budget-save-btn:hover {
    background: #065f46 !important;
    background-image: linear-gradient(135deg, #059669, #065f46) !important;
}

.modal-content .budget-save-btn--expense,
#newModalDespesa .budget-save-btn {
    background: #be123c !important;
    background-image: linear-gradient(135deg, #f43f5e, #be123c) !important;
    border-color: #9f1239 !important;
}

.modal-content .budget-save-btn--expense:hover,
#newModalDespesa .budget-save-btn:hover {
    background: #9f1239 !important;
    background-image: linear-gradient(135deg, #e11d48, #9f1239) !important;
}

.modal-content .budget-save-btn--reserve,
#newModalReserva .budget-save-btn {
    background: #b45309 !important;
    background-image: linear-gradient(135deg, #f59e0b, #b45309) !important;
    border-color: #92400e !important;
}

.modal-content .budget-save-btn--reserve:hover,
#newModalReserva .budget-save-btn:hover {
    background: #92400e !important;
    background-image: linear-gradient(135deg, #d97706, #92400e) !important;
}

.modal-content .budget-save-btn--debt,
#newModalDivida .budget-save-btn {
    background: #b91c1c !important;
    background-image: linear-gradient(135deg, #ef4444, #b91c1c) !important;
    border-color: #991b1b !important;
}

.modal-content .budget-save-btn--debt:hover,
#newModalDivida .budget-save-btn:hover {
    background: #991b1b !important;
    background-image: linear-gradient(135deg, #dc2626, #991b1b) !important;
}

.modal-content .budget-save-btn--import,
#newModalImport #importConfirmBtn.budget-save-btn {
    background: #4338ca !important;
    background-image: linear-gradient(135deg, #6366f1, #4338ca) !important;
    border-color: #3730a3 !important;
}

.modal-content .budget-save-btn--import:hover,
#newModalImport #importConfirmBtn.budget-save-btn:hover {
    background: #3730a3 !important;
    background-image: linear-gradient(135deg, #4f46e5, #3730a3) !important;
}

.modal-content .budget-save-btn:disabled,
#newModalImport #importConfirmBtn.budget-save-btn:disabled {
    background: #6b7280 !important;
    background-image: none !important;
    border-color: #6b7280 !important;
    color: #fff !important;
    cursor: not-allowed !important;
    opacity: .85 !important;
}

:root[data-theme="dark"] .modal-content form > button[type="button"]::before {
    background: linear-gradient(180deg, transparent, var(--plj-surface) 30%) !important;
}

:root[data-theme="dark"] .modal-actions-bar {
    background: var(--plj-surface) !important;
    border-top-color: var(--plj-border) !important;
}

.plj-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 9999px;
    border: 1px solid rgba(255,255,255,.38);
    background: rgba(255,255,255,.16);
    color: #fff;
    cursor: pointer;
    transition: background .15s, transform .12s, border-color .15s;
}

.plj-theme-toggle:hover {
    background: rgba(255,255,255,.24);
    transform: translateY(-1px);
}

.plj-theme-toggle:focus-visible {
    outline: 3px solid rgba(255,255,255,.55);
    outline-offset: 2px;
}

.plj-theme-toggle--floating {
    position: fixed;
    right: 14px;
    bottom: 14px;
    z-index: 80;
    background: var(--plj-primary);
    border-color: var(--plj-primary-strong);
    box-shadow: var(--plj-shadow);
}
