*{margin:0;padding:0;box-sizing:border-box}:root{--font-sans: "DM Sans", system-ui, -apple-system, sans-serif;--font-ar: "Noto Sans Arabic", "DM Sans", Tahoma, sans-serif;--bg-page: #e8eef5;--bg-page-accent: radial-gradient(1200px 600px at 10% -10%, rgba(13, 148, 136, .12), transparent 50%), radial-gradient(900px 500px at 100% 0%, rgba(79, 70, 229, .1), transparent 45%), linear-gradient(180deg, #eef2f7 0%, #e2e8f0 100%);--surface: #ffffff;--surface-muted: #f8fafc;--border: rgba(15, 23, 42, .08);--border-strong: rgba(15, 23, 42, .12);--text: #0f172a;--text-muted: #64748b;--text-subtle: #94a3b8;--accent: #0d9488;--accent-hover: #0f766e;--accent-soft: rgba(13, 148, 136, .12);--indigo: #4f46e5;--indigo-soft: rgba(79, 70, 229, .1);--income: #059669;--income-bg: linear-gradient(145deg, #ecfdf5 0%, #ffffff 55%);--income-border: rgba(16, 185, 129, .35);--expense: #e11d48;--expense-bg: linear-gradient(145deg, #fff1f2 0%, #ffffff 55%);--expense-border: rgba(244, 63, 94, .35);--balance: #0369a1;--balance-bg: linear-gradient(145deg, #f0f9ff 0%, #ffffff 55%);--balance-border: rgba(14, 165, 233, .35);--neutral-bg: linear-gradient(145deg, #f8fafc 0%, #ffffff 55%);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 12px 40px rgba(15, 23, 42, .1);--radius: 16px;--radius-sm: 12px}html[data-theme=dark]{--bg-page: #070a0e;--bg-page-accent: radial-gradient(1000px 520px at 12% 0%, rgba(45, 212, 191, .08), transparent 55%), radial-gradient(800px 480px at 95% 5%, rgba(129, 140, 248, .1), transparent 50%), linear-gradient(180deg, #0b0f14 0%, #070a0e 100%);--surface: #111827;--surface-muted: #0f1419;--border: rgba(248, 250, 252, .08);--border-strong: rgba(248, 250, 252, .14);--text: #f1f5f9;--text-muted: #94a3b8;--text-subtle: #64748b;--accent: #2dd4bf;--accent-hover: #5eead4;--accent-soft: rgba(45, 212, 191, .15);--indigo: #818cf8;--indigo-soft: rgba(129, 140, 248, .12);--income: #34d399;--income-bg: linear-gradient(145deg, rgba(16, 185, 129, .12) 0%, #111827 55%);--income-border: rgba(52, 211, 153, .35);--expense: #fb7185;--expense-bg: linear-gradient(145deg, rgba(244, 63, 94, .12) 0%, #111827 55%);--expense-border: rgba(251, 113, 133, .35);--balance: #38bdf8;--balance-bg: linear-gradient(145deg, rgba(14, 165, 233, .12) 0%, #111827 55%);--balance-border: rgba(56, 189, 248, .35);--neutral-bg: linear-gradient(145deg, #0f1419 0%, #111827 55%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 8px 28px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .55)}body{font-family:var(--font-sans);color:var(--text);line-height:1.5;min-height:100vh;background-color:var(--bg-page);background-image:var(--bg-page-accent);background-attachment:fixed;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{max-width:1120px;margin:0 auto;padding:32px 20px 48px}.rtl{font-family:var(--font-ar)}.top-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.top-bar h1{font-size:clamp(1.65rem,4vw,2.15rem);font-weight:700;letter-spacing:-.03em;margin-bottom:6px;background:linear-gradient(120deg,#0f172a,#0d9488);-webkit-background-clip:text;background-clip:text;color:transparent}.rtl .top-bar h1{background:linear-gradient(120deg,#0f172a,#4f46e5);-webkit-background-clip:text;background-clip:text;color:transparent}.subtitle{font-size:.95rem;color:var(--text-muted);max-width:36ch;margin-bottom:0}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.theme-btn{padding:10px 16px;border:1px solid var(--border-strong);background:var(--surface-muted);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .12s}.theme-btn:hover{border-color:var(--indigo);box-shadow:var(--shadow-md)}.theme-btn:active{transform:scale(.98)}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.hero-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;padding:6px 12px;border-radius:999px;background:var(--indigo-soft);color:var(--indigo);border:1px solid rgba(99,102,241,.2)}html[data-theme=dark] .hero-tag{background:#818cf81f;color:#a5b4fc;border-color:#818cf840}html[data-theme=dark] .top-bar h1{background:linear-gradient(120deg,#f8fafc,#2dd4bf);-webkit-background-clip:text;background-clip:text;color:transparent}html[data-theme=dark] .rtl .top-bar h1{background:linear-gradient(120deg,#f8fafc,#a5b4fc);-webkit-background-clip:text;background-clip:text;color:transparent}.lang-btn{padding:10px 16px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:.875rem;color:var(--text);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .12s}.lang-btn:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.lang-btn:active{transform:scale(.98)}.user-switcher{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:22px;box-shadow:var(--shadow-md)}.user-switcher label{font-weight:600;font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.user-switcher input[type=text]{padding:11px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:200px;font-size:.95rem;background:var(--surface-muted);transition:border-color .15s,box-shadow .15s}.user-switcher input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.save-user-btn{padding:11px 18px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent) 0%,#0f766e 100%);color:#fff;cursor:pointer;font-weight:600;font-size:.875rem;box-shadow:0 4px 14px #0d948859;transition:transform .12s,box-shadow .15s}.save-user-btn:hover{box-shadow:0 6px 20px #0d948873}.save-user-btn:active{transform:translateY(1px)}.current-user{color:var(--text-muted);font-size:.875rem}.current-user strong{color:var(--text);font-weight:700}.users-list-wrap{flex-basis:100%;margin-top:4px;padding-top:14px;border-top:1px solid var(--border)}.users-title{font-size:.75rem;font-weight:700;color:var(--text-subtle);margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}.privacy-note{font-size:.8rem;color:var(--text-subtle);margin-bottom:12px;line-height:1.45}.users-list{display:flex;gap:8px;flex-wrap:wrap}.user-chip{padding:8px 14px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-muted);color:var(--text);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.user-chip:hover{background:var(--indigo-soft);border-color:#4f46e540}.active-user-chip{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;border-color:transparent;box-shadow:0 4px 12px #4f46e559}.active-user-chip:hover{background:linear-gradient(135deg,#4338ca,#4f46e5);border-color:transparent}.muted{color:var(--text-muted)}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.summary-5{grid-template-columns:repeat(5,minmax(0,1fr))}.summary-card{position:relative;border-radius:var(--radius);padding:18px 18px 20px;border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius) var(--radius) 0 0;opacity:.9}.summary-card:nth-child(1){background:var(--income-bg);border-color:var(--income-border)}.summary-card:nth-child(1):before{background:linear-gradient(90deg,#10b981,#34d399)}.summary-card:nth-child(2){background:var(--expense-bg);border-color:var(--expense-border)}.summary-card:nth-child(2):before{background:linear-gradient(90deg,#f43f5e,#fb7185)}.summary-card:nth-child(3){background:var(--balance-bg);border-color:var(--balance-border)}.summary-card:nth-child(3):before{background:linear-gradient(90deg,#0ea5e9,#38bdf8)}.summary-card:nth-child(4),.summary-card:nth-child(5){background:var(--neutral-bg)}.summary-card:nth-child(4):before{background:linear-gradient(90deg,#64748b,#94a3b8)}.summary-card:nth-child(5):before{background:linear-gradient(90deg,#0d9488,#2dd4bf)}.summary-card h3{font-size:.7rem;font-weight:700;color:var(--text-muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.07em}.income-amount{color:var(--income);font-size:clamp(1.25rem,3vw,1.55rem);font-weight:700;letter-spacing:-.02em}.expense-amount{color:var(--expense);font-size:clamp(1.25rem,3vw,1.55rem);font-weight:700;letter-spacing:-.02em}.balance-amount{font-size:clamp(1.25rem,3vw,1.55rem);font-weight:700;color:var(--balance);letter-spacing:-.02em}.summary-card:nth-child(4) .balance-amount,.summary-card:nth-child(5) .balance-amount{color:var(--text)}.negative-balance{color:var(--expense)}.add-transaction,.transactions{border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 24px;margin-bottom:20px;background:var(--surface);box-shadow:var(--shadow-md)}.add-transaction h2,.transactions h2{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);letter-spacing:-.02em}form{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}form input,form select,.filters select,.filters input{padding:12px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.9rem;background:var(--surface-muted);color:var(--text);transition:border-color .15s,box-shadow .15s,background .15s}form input::placeholder{color:var(--text-subtle)}form input:focus,form select:focus,.filters select:focus,.filters input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}form input[type=text]{flex:2 1 220px}form input[type=number],form input[type=date]{flex:1 1 140px}form select{flex:1 1 150px;cursor:pointer}form button{padding:12px 22px;background:linear-gradient(135deg,var(--indigo) 0%,#6366f1 100%);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;font-weight:600;box-shadow:0 4px 14px #4f46e559;transition:transform .12s,box-shadow .15s}form button:hover{box-shadow:0 6px 20px #4f46e573}form button:active{transform:translateY(1px)}.filters{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.filters select{min-width:140px}.advanced-filters{padding:16px;background:var(--surface-muted);border-radius:var(--radius-sm);border:1px solid var(--border)}.advanced-filters input[type=text]{min-width:180px;flex:1 1 200px}.clear-btn{padding:12px 16px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-weight:600;font-size:.875rem;color:var(--text-muted);transition:background .15s,border-color .15s,color .15s}.clear-btn:hover{background:#fef2f2;border-color:#e11d4840;color:var(--expense)}.table-wrap{border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden}table{width:100%;border-collapse:collapse}thead{background:linear-gradient(180deg,#f1f5f9,#e2e8f0)}th,td{padding:14px 16px;text-align:start;border-bottom:1px solid var(--border);font-size:.875rem}tbody tr{transition:background .12s}tbody tr:hover{background:#0d94880a}tbody tr:last-child td{border-bottom:none}th{font-size:.65rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.income-value{color:var(--income);font-weight:700;font-variant-numeric:tabular-nums}.expense-value{color:var(--expense);font-weight:700;font-variant-numeric:tabular-nums}.capitalize{text-transform:capitalize}.delete-btn{padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;font-size:.8rem;font-weight:600;color:var(--text-muted);transition:background .15s,border-color .15s,color .15s}.delete-btn:hover{background:#fff1f2;border-color:var(--expense-border);color:var(--expense)}.empty-state{color:var(--text-muted);font-size:.95rem;padding:28px 16px;text-align:center;background:var(--surface-muted);border-radius:var(--radius-sm);border:1px dashed var(--border-strong)}.error-message{color:var(--expense);margin-top:12px;font-size:.875rem;font-weight:500}.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.section-head h2{margin:0;border:none;padding:0}.add-transaction h2{margin-bottom:0;padding-bottom:0;border:none}.add-transaction .section-head+form{margin-top:4px}.scan-receipt-btn{padding:11px 18px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#0d9488,#6366f1);color:#fff;cursor:pointer;font-weight:700;font-size:.8125rem;letter-spacing:.02em;box-shadow:0 6px 20px #4f46e559;transition:transform .12s,box-shadow .15s,opacity .15s;white-space:nowrap}.scan-receipt-btn:hover:not(:disabled){box-shadow:0 8px 26px #0d948866}.scan-receipt-btn:disabled{opacity:.75;cursor:wait}.insights-panel{border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 18px;margin-bottom:20px;background:var(--surface);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.insights-panel:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#0d9488,#6366f1,#f43f5e);opacity:.85}.insights-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px}.insights-panel h2{font-size:1.05rem;font-weight:800;letter-spacing:-.03em;margin-bottom:6px;color:var(--text)}.insights-sub{font-size:.875rem;color:var(--text-muted);max-width:42ch;line-height:1.45}.insights-stat-grid{display:flex;flex-wrap:wrap;gap:10px}.insight-pill{padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border-strong);min-width:120px}.insight-pill.muted-pill{opacity:.92}.insight-pill-label{display:block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:4px}.insight-pill-value{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text)}.insight-pill:first-child .insight-pill-value{color:var(--indigo)}html[data-theme=dark] .insight-pill:first-child .insight-pill-value{color:#a5b4fc}.insights-narrative{font-size:.9rem;color:var(--text-muted);line-height:1.55;margin-bottom:14px}.insights-narrative strong{color:var(--text)}.chart-wrap{width:100%;min-height:280px;margin-top:4px}.chart-tooltip{background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow-lg);font-size:.8125rem;color:var(--text)}.chart-tooltip-title{font-weight:700;margin-bottom:6px;color:var(--text)}.chart-footnote{margin-top:10px;font-size:.75rem;color:var(--text-subtle);line-height:1.45}.modal-backdrop{position:fixed;inset:0;z-index:1000;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{width:min(440px,100%);max-height:min(90vh,640px);overflow:auto;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);padding:22px 22px 20px;animation:popIn .22s cubic-bezier(.22,1,.36,1)}@keyframes popIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.modal-head h2{font-size:1.1rem;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--text)}.modal-close{border:none;background:var(--surface-muted);width:36px;height:36px;border-radius:10px;font-size:1.35rem;line-height:1;cursor:pointer;color:var(--text-muted);transition:background .15s,color .15s}.modal-close:hover:not(:disabled){background:var(--indigo-soft);color:var(--indigo)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-hint{font-size:.85rem;color:var(--text-muted);margin-bottom:14px;line-height:1.45}.modal-error{color:var(--expense);font-size:.85rem;font-weight:600;margin-bottom:12px}.ocr-progress{height:6px;background:var(--surface-muted);border-radius:999px;overflow:hidden;margin-bottom:14px;border:1px solid var(--border)}.ocr-progress-bar{height:100%;background:linear-gradient(90deg,#0d9488,#6366f1);border-radius:999px;transition:width .2s ease-out}.modal-fields{display:flex;flex-direction:column;gap:12px}.modal-fields label{display:flex;flex-direction:column;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.modal-fields input,.modal-fields select{padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:.95rem;background:var(--surface-muted);color:var(--text)}.modal-fields input:focus,.modal-fields select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}.btn-ghost{padding:11px 18px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-muted);font-weight:600;font-size:.875rem;color:var(--text-muted);cursor:pointer;transition:border-color .15s,color .15s}.btn-ghost:hover:not(:disabled){border-color:var(--text-subtle);color:var(--text)}.btn-primary{padding:11px 20px;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--indigo) 0%,#6366f1 100%);color:#fff;font-weight:700;font-size:.875rem;cursor:pointer;box-shadow:0 4px 14px #4f46e559;transition:transform .12s,box-shadow .15s}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #4f46e573}.btn-primary:disabled,.btn-ghost:disabled{opacity:.55;cursor:not-allowed}@media(max-width:900px){.summary-5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app{padding:20px 14px 36px}.summary,.summary-5{grid-template-columns:1fr}.top-bar{flex-direction:column;align-items:stretch}.top-actions{justify-content:flex-end}.user-switcher{flex-direction:column;align-items:stretch}.user-switcher input[type=text]{min-width:0;width:100%}.save-user-btn{width:100%}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:640px}}
