/* =========================================
   Nova Wallet Base Styles
========================================= */
@font-face { 
    font-family: 'IranYekan'; 
    src: url('IRANYekanWebMedium.woff2') format('woff2'); 
}

body { 
    background: #f4f7fe !important; margin: 0; padding: 0; 
    font-family: 'IranYekan', Tahoma !important; direction: rtl; font-size: 15.4px; 
}
header, footer, .site-header, .site-footer, .entry-title, #wpadminbar { display: none !important; }

/* Layout & Shell */
.nv-shell { min-height: 100vh; display: flex; }
.nv-view { margin-right: 200px; padding: 20px; width: calc(100% - 200px); flex-grow: 1; box-sizing: border-box; }
.nv-hidden { display: none !important; }
.text-center { text-align: center !important; }

/* Menu Links */
.nv-link { padding: 15px 18px; cursor: pointer; border-bottom: 1px solid #f8fafc; color: #64748b; display: block; text-decoration: none; }
.nv-link.active { color: #2ea1f8; background: #f0f9ff; font-weight: bold; border-left: 5px solid #2ea1f8; }

/* Cards & Tables */
.nv-card { background: #fff !important; border-radius: 12px !important; padding: 20px !important; box-shadow: 0 2px 10px rgba(0,0,0,0.02) !important; margin-bottom: 15px !important; box-sizing: border-box !important; border: none !important; }
.nv-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.nv-table td, .nv-table th { padding: 10px 5px; border-bottom: 1px solid #f1f5f9; text-align: right; }
.f-persian { font-family: 'IranYekan', Tahoma !important; font-variant-numeric: tabular-nums; }

/* Buttons */
.nv-btn { padding: 12px !important; background: #2ea1f8 !important; color: #fff !important; border: none !important; border-radius: 25px !important; font-weight: bold !important; cursor: pointer !important; width: 100% !important; font-family: 'IranYekan', Tahoma !important; box-shadow: none !important; text-shadow: none !important; line-height: normal !important; margin: 0 !important; }
.nv-btn:hover { background: #0284c7 !important; color: #fff !important; }

/* Badges */
.payer-badge { padding: 2px 8px; border-radius: 5px; font-size: 11px; font-weight: bold; display: inline-block; }
.payer-najafi { background: #e0f2fe; color: #0369a1; }
.payer-javidi { background: #fef3c7; color: #92400e; }
.payer-company { background: #f1f5f9; color: #475569; }
.payer-badge-sm { font-size: 10px; padding: 1px 6px; }

/* Action Menu (Three dots) */
.action-menu-container { position: relative; display: inline-block; }
.action-btn { background: none !important; border: none !important; font-size: 20px !important; cursor: pointer !important; padding: 0 10px !important; color: #64748b !important; font-weight: bold !important; box-shadow: none !important; }
.action-btn-sm { padding: 0 !important; font-size: 18px !important; line-height: 1 !important; }
.action-dropdown { display: none; position: absolute; left: 0; right: auto; top: 100%; background: #fff; min-width: 110px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-radius: 8px; z-index: 99999; flex-direction: column; border: 1px solid #e2e8f0; overflow: hidden; }
.action-dropdown.show { display: flex; }
.action-dropdown a { padding: 10px 15px; text-decoration: none; color: #334155; font-size: 12px; text-align: center; border-bottom: 1px solid #f1f5f9; cursor: pointer; }
.action-dropdown a:hover { background: #f8fafc; color: #2ea1f8; }
.action-dropdown a.delete-btn { color: #ef4444; border-bottom: none; }

/* Sidebar */
.nova-sidebar { position: fixed; top: 0; right: -280px; width: 260px; height: 100vh; background: #1e293b; color: #f8fafc; transition: 0.3s; z-index: 9999; display: flex; flex-direction: column; box-shadow: -4px 0 15px rgba(0,0,0,0.2); font-family: 'IRANYekan', Tahoma, sans-serif; direction: rtl; }
.nova-sidebar.show { right: 0; }
.nova-sidebar-header { padding: 30px 20px; text-align: center; border-bottom: 1px solid #334155; margin-bottom: 15px; }
.nova-sidebar-header h3 { margin: 0; font-size: 18px; color: #fff; font-weight: bold; }
.nova-sidebar-header span { font-size: 12px; color: #3b82f6; }
.nova-sidebar-menu { display: flex; flex-direction: column; flex-grow: 1; padding: 0 15px; overflow-y: auto; }
.nova-sidebar-menu a, .nova-sidebar-menu div.nv-link { display: flex; align-items: center; gap: 10px; padding: 12px 15px; margin-bottom: 8px; color: #cbd5e1; text-decoration: none; border-radius: 8px; transition: 0.2s; font-size: 14px; cursor: pointer; }
.nova-sidebar-menu a:hover, .nova-sidebar-menu div.nv-link:hover { background: #334155; color: #fff; }
.nova-sidebar-menu a.active, .nova-sidebar-menu div.nv-link.active { background: #3b82f6; color: #fff; font-weight: bold; }
.nova-sidebar-footer { padding: 15px; border-top: 1px solid #334155; margin-top: auto; }
.nova-btn-exit { display: block; padding: 12px; background: rgba(239, 68, 68, 0.1); color: #ef4444 !important; text-align: center; border-radius: 8px; text-decoration: none; font-weight: bold; transition: 0.2s; }
.nova-btn-exit:hover { background: #ef4444 !important; color: #fff !important; }

/* Mobile Overlay & Toggle */
.nova-mobile-toggle { position: fixed; bottom: 20px; right: 20px; width: 55px; height: 55px; border-radius: 50%; background: #3b82f6 !important; color: #fff !important; border: none !important; font-size: 24px !important; z-index: 9997; box-shadow: 0 4px 15px rgba(0,0,0,0.3) !important; cursor: pointer; display: flex; justify-content: center; align-items: center; padding: 0 !important;}
.nova-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 9998; display: none; }
.nova-overlay.show { display: block; }

/* =========================================
   Form Inputs (New Transaction)
========================================= */
.nv-form-container { max-width: 450px !important; margin: 0 auto !important; }
.nv-date-group { display: flex !important; border: 1px solid #e2e8f0 !important; border-radius: 12px !important; overflow: hidden !important; margin-bottom: 10px !important; background: #fff !important; padding: 0 !important;}
.nv-input-date { border: none !important; flex: 2 !important; text-align: center !important; outline: none !important; box-shadow: none !important; margin: 0 !important; background: transparent !important; border-radius: 0 !important; padding: 10px !important; width: auto !important; height: auto !important; }
.nv-input-day { border: none !important; border-right: 1px solid #e2e8f0 !important; flex: 1 !important; background: #f8fafc !important; text-align: center !important; color: #94a3b8 !important; outline: none !important; box-shadow: none !important; margin: 0 !important; border-radius: 0 !important; padding: 10px !important; width: auto !important; height: auto !important;}
.nv-select-common { width: 100% !important; margin-bottom: 10px !important; padding: 10px !important; border-radius: 8px !important; font-family: inherit !important; box-sizing: border-box !important; outline: none !important; box-shadow: none !important; height: auto !important; line-height: normal !important; background: #fff !important; color: #1e293b !important; }
.nv-select-type { border: 1px solid #e2e8f0 !important; }
.nv-select-payer { background: #f0f9ff !important; border: 1px solid #bae6fd !important; font-weight: bold !important; color: #0369a1 !important; }
.nv-input-common { width: 100% !important; text-align: center !important; padding: 10px !important; border: 1px solid #e2e8f0 !important; border-radius: 8px !important; font-family: inherit !important; box-sizing: border-box !important; outline: none !important; box-shadow: none !important; margin: 0 !important; background: #fff !important; color: #1e293b !important; height: auto !important; }
.nv-mb-20 { margin-bottom: 20px !important; }
.nv-amt-text { font-size: 11.5px !important; color: #2ea1f8 !important; text-align: center !important; margin: 10px 0 !important; min-height: 18px !important; font-weight: bold !important; }

/* =========================================
   History List Filters & Cards (Compact Mobile View)
========================================= */
.nv-filter-group { margin-bottom: 12px !important; display: flex !important; flex-direction: column !important; gap: 8px !important; }
.nv-filter-select { padding: 8px 10px !important; border-radius: 8px !important; border: 1px solid #e2e8f0 !important; font-family: inherit !important; font-size: 13px !important; width: 100% !important; outline: none !important; height: auto !important; box-shadow: none !important; margin: 0 !important; background: #fff !important; }
.nv-filter-row { display: flex !important; gap: 6px !important; }
.nv-filter-input { padding: 8px 10px !important; border: 1px solid #e2e8f0 !important; border-radius: 8px !important; text-align: center !important; font-size: 12px !important; width: 100% !important; font-family: inherit !important; outline: none !important; box-shadow: none !important; margin: 0 !important; background: #fff !important; height: auto !important; }
.nv-filter-btn { background: #2ea1f8 !important; color: #fff !important; border: none !important; padding: 8px 12px !important; border-radius: 8px !important; font-family: inherit !important; font-size: 12px !important; font-weight: bold !important; cursor: pointer !important; flex-shrink: 0 !important; box-shadow: none !important; text-shadow: none !important; margin: 0 !important; height: auto !important; }
.nv-total-box { background: #f0f9ff !important; border: 1px solid #bae6fd !important; border-radius: 8px !important; padding: 10px !important; margin-bottom: 15px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; }
.nv-total-label { color: #0369a1 !important; font-size: 12px !important; font-weight: bold !important; }
.nv-total-value { color: #0284c7 !important; font-size: 15px !important; font-weight: bold !important; }
.nv-empty-state { text-align: center; padding: 15px; font-size: 13px; color: #94a3b8; }

.nv-history-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 10px; margin-bottom: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.02); }
.nv-hc-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 5px; }
.nv-hc-cat { font-weight: bold; color: #1e293b; font-size: 13px; }
.nv-hc-amt { font-weight: bold; color: #10b981; font-size: 13px; }
.nv-hc-bottom { display: flex; justify-content: space-between; align-items: center; }
.nv-hc-info { color: #64748b; font-size: 11px; display: flex; align-items: center; gap: 8px; }
.nv-hc-note { font-size: 11px; color: #64748b; margin-top: 6px; padding-top: 6px; border-top: 1px dashed #f1f5f9; line-height: 1.5; }

/* Inline Edit Form */
.nv-edit-wrapper { display: flex; flex-direction: column; gap: 10px; }
.nv-edit-row { display: flex; gap: 10px; }
.nv-edit-input { flex: 1 !important; padding: 8px !important; border: 1px solid #cbd5e1 !important; border-radius: 6px !important; text-align: center !important; font-family: inherit !important; font-size: 12px !important; box-shadow: none !important; outline: none !important; background: #fff !important; }
.nv-edit-select { width: 100% !important; padding: 8px !important; border: 1px solid #cbd5e1 !important; border-radius: 6px !important; font-family: inherit !important; font-size: 12px !important; box-shadow: none !important; outline: none !important; background: #fff !important; }
.nv-edit-actions { display: flex; gap: 10px; margin-top: 5px; }
.nv-edit-btn-save { flex: 1 !important; background: #10b981 !important; color: #fff !important; border: none !important; padding: 10px !important; border-radius: 6px !important; cursor: pointer !important; font-weight: bold !important; font-family: inherit !important; box-shadow: none !important; }
.nv-edit-btn-cancel { flex: 1 !important; background: #94a3b8 !important; color: #fff !important; border: none !important; padding: 10px !important; border-radius: 6px !important; cursor: pointer !important; font-family: inherit !important; box-shadow: none !important; }

/* =========================================
   Reports View
========================================= */
.nv-rep-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 15px; }
.nv-rep-total-box { background: #2ea1f8 !important; color: #fff !important; padding: 20px !important; border-radius: 15px !important; text-align: center !important; margin-bottom: 15px !important; }
.nv-rep-total-val { font-size: 24px; font-weight: bold; }
.nv-card-success { border-right: 5px solid #10b981 !important; }
.nv-rep-payer-row { display: flex; justify-content: space-between; padding: 10px; border-bottom: 1px solid #eee; }
.nv-rep-payer-val { color: #10b981; font-weight: bold; }
.nv-rep-cat-box { padding: 12px; font-size: 14px; border: 1px solid #e2e8f0; background: #f8fafc; border-radius: 8px; margin-bottom: 10px; }
.nv-rep-cat-header { display: flex; justify-content: space-between; font-weight: bold; margin-bottom: 8px; color: #334155; }
.nv-rep-cat-details { display: flex; flex-direction: column; gap: 6px; padding-right: 12px; border-right: 2px solid #cbd5e1; }
.nv-rep-cat-row { display: flex; justify-content: space-between; font-size: 12px; color: #64748b; }

/* =========================================
   Dashboard Home
========================================= */
.nv-dashboard-fullscreen { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: #f4f7f6 !important; z-index: 9999; display: flex; flex-direction: column; align-items: center; direction: rtl; font-family: 'IranYekan', Tahoma !important; overflow-y: auto; box-sizing: border-box; }
.nv-bar-dash { width: 100%; background: #fff !important; height: 70px; display: flex; justify-content: space-between; align-items: center; padding: 0 30px; box-shadow: 0 2px 10px rgba(0,0,0,0.05) !important; margin-bottom: 20px; box-sizing: border-box; flex-shrink: 0; }
.nv-dash-title { font-weight: bold; color: #2c3e50; font-size: 20px; }
.nv-btn-logout { background: #fee2e2 !important; color: #dc2626 !important; padding: 8px 15px !important; border-radius: 8px !important; text-decoration: none !important; font-weight: bold !important; font-size: 13px !important; }
.nv-dash-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; width: 100%; max-width: 1000px; padding: 20px; box-sizing: border-box; }
.nv-dash-card { background: #fff !important; border-radius: 12px !important; padding: 30px !important; text-align: center; border: 1px solid #e2e8f0 !important; box-sizing: border-box; }
.nv-dash-card h3 { margin: 0; color: #1e293b; }
.nv-dash-card p { color: #64748b; font-size: 13px; }
.btn-dash { width: 100% !important; padding: 12px !important; border-radius: 8px !important; font-weight: bold !important; color: #fff !important; display: block !important; text-decoration: none !important; margin-top: 15px !important; box-sizing: border-box !important; text-align: center !important; }
.nv-bg-purple { background: #8b5cf6 !important; }
.nv-bg-green { background: #10b981 !important; }
.nv-bg-blue { background: #3b82f6 !important; }
.nv-bg-orange { background: #f59e0b !important; }

/* Responsive Adjustments */
@media (max-width: 768px) { 
    .nv-view { margin-right: 0; width: 100%; padding: 10px; } 
    .nv-bar-dash { padding: 0 15px; }
    .nv-dash-title { font-size: 18px; }
}
@media (min-width: 992px) { 
    .nova-sidebar { right: 0; } 
    .nova-mobile-toggle { display: none !important; } 
    .nova-overlay { display: none !important; } 
    .fm-wrapper, .nva-main, .nv-view { margin-right: 260px !important; width: calc(100% - 260px) !important; } 
}