/* ============================================================
   style.css — تصميم عصري متجاوب (RTL)
   ============================================================ */
/* ---------- الثيم الفاتح (افتراضي) — ألوان بسيطة ---------- */
:root{
  --bg:#f3f4f6;
  --bg-2:#eceef1;
  --card:#ffffff;
  --card-2:#f5f6f8;
  --line:#e3e6ea;
  --text:#1f2533;
  --muted:#6b7280;
  --primary:#4f46e5;
  --primary-2:#6366f1;
  --pos:#16a34a;
  --neg:#dc2626;
  --warn:#d97706;
  --radius:14px;
  --shadow:0 6px 20px rgba(20,30,60,.08);
  --grad:linear-gradient(135deg,var(--primary),var(--primary-2));
  --topbar-bg:rgba(255,255,255,.85);
}

/* ---------- الثيم الداكن ---------- */
[data-theme="dark"]{
  --bg:#0f172a;
  --bg-2:#111c33;
  --card:#1e293b;
  --card-2:#243449;
  --line:#2e3e57;
  --text:#e6edf6;
  --muted:#93a4bd;
  --primary:#6366f1;
  --primary-2:#818cf8;
  --shadow:0 10px 30px rgba(0,0,0,.35);
  --grad:linear-gradient(135deg,var(--primary),var(--primary-2));
  --topbar-bg:rgba(15,23,42,.85);
}

/* ---------- ألوان التطبيق (Accent) — تتجاوز primary للثيمين ---------- */
[data-accent="indigo"] {--primary:#4f46e5;--primary-2:#6366f1}
[data-accent="violet"] {--primary:#7c3aed;--primary-2:#8b5cf6}
[data-accent="emerald"]{--primary:#059669;--primary-2:#10b981}
[data-accent="rose"]   {--primary:#e11d48;--primary-2:#f43f5e}
[data-accent="amber"]  {--primary:#d97706;--primary-2:#f59e0b}
[data-accent="sky"]    {--primary:#0284c7;--primary-2:#0ea5e9}
[data-accent="teal"]   {--primary:#0d9488;--primary-2:#14b8a6}
[data-accent="crimson"]{--primary:#dc2626;--primary-2:#ef4444}
[data-accent="slate"]  {--primary:#475569;--primary-2:#64748b}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow-x:hidden;max-width:100%}
body{
  font-family:'Cairo',system-ui,Segoe UI,Tahoma,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  transition:background .2s,color .2s;
  position:relative;width:100%;
}
.hidden{display:none !important}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
small{color:var(--muted)}
.pos{color:var(--pos)!important}
.neg{color:var(--neg)!important}

/* ---------- أزرار ---------- */
.btn{
  border:1px solid var(--line);background:var(--card-2);color:var(--text);
  padding:10px 16px;border-radius:12px;font-weight:600;font-size:14px;
  transition:.15s;display:inline-flex;align-items:center;gap:6px;
}
.btn:hover{border-color:var(--primary);transform:translateY(-1px)}
.btn-primary{background:var(--grad);border:none;color:#fff;box-shadow:0 6px 18px rgba(99,102,241,.4)}
.btn-primary:hover{filter:brightness(1.07)}
.btn-block{width:100%;justify-content:center;padding:13px}
.danger-outline{border-color:var(--neg);color:#fca5a5}
.danger-outline:hover{background:rgba(239,68,68,.12)}
.icon-btn{
  background:transparent;border:none;color:var(--muted);font-size:18px;
  width:36px;height:36px;border-radius:10px;transition:.15s;
}
.icon-btn:hover{background:var(--card-2);color:var(--text)}
.icon-btn.danger:hover{color:var(--neg)}
.icon-btn:disabled{opacity:.3;cursor:not-allowed}

/* ============================================================
   شاشة الدخول
   ============================================================ */
.auth-screen{position:relative;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.auth-card{
  width:100%;max-width:420px;background:var(--card);
  border:1px solid var(--line);border-radius:24px;padding:32px;box-shadow:var(--shadow);
}
.brand{text-align:center;margin-bottom:24px}
.brand-logo{
  width:64px;height:64px;border-radius:18px;display:inline-grid;place-items:center;
  font-size:32px;background:var(--grad);box-shadow:0 8px 22px rgba(99,102,241,.45);margin-bottom:10px;
}
.brand-logo.sm{width:34px;height:34px;font-size:18px;border-radius:10px;margin:0}
.brand h1{font-size:30px;letter-spacing:-.5px}
.brand p{color:var(--muted);font-size:14px}
.tabs{display:flex;background:var(--bg-2);border-radius:12px;padding:4px;margin-bottom:20px}
.tab{flex:1;background:transparent;border:none;color:var(--muted);padding:10px;border-radius:9px;font-weight:600}
.tab.active{background:var(--card-2);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.auth-form{display:flex;flex-direction:column;gap:14px}
.auth-form label,.modal-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
.auth-form input,.auth-form select,.modal-form input,.modal-form select,.month-input{
  background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  padding:12px 14px;border-radius:11px;font-size:15px;font-family:inherit;transition:.15s;
}
input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.2)}
input:disabled{opacity:.6}
.form-error{color:#fca5a5;font-size:13px;min-height:18px;text-align:center}
.hint{text-align:center;font-size:12px;color:var(--muted);background:var(--bg-2);padding:8px;border-radius:9px}
.auth-footer{margin-top:18px;color:var(--muted);font-size:12px}

/* ============================================================
   تخطيط التطبيق
   ============================================================ */
.app{display:flex;min-height:100vh;width:100%;max-width:100%;overflow-x:hidden;padding-inline-start:248px}
.sidebar{
  width:248px;flex-shrink:0;background:var(--bg-2);border-inline-end:1px solid var(--line);
  display:flex;flex-direction:column;padding:18px 14px;
  position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:30;overflow-y:auto;
}
.side-brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;padding:8px 10px 18px}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.nav-group{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}
.nav-group-title{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--muted);opacity:.65;padding:6px 14px 3px}
.nav-link{
  display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;
  color:var(--muted);font-weight:600;transition:.15s;cursor:pointer;font-size:14px;
}
.nav-link:hover{background:var(--card);color:var(--text)}
.nav-link.active{background:var(--grad);color:#fff;box-shadow:0 6px 16px rgba(99,102,241,.35)}
.nav-ico{font-size:18px;width:22px;text-align:center}
.side-user{display:flex;align-items:center;gap:10px;padding:12px;background:var(--card);border-radius:14px;border:1px solid var(--line)}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-weight:800;color:#fff;flex-shrink:0}
.su-info{display:flex;flex-direction:column;line-height:1.3;overflow:hidden}
.su-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.content{flex:1;min-width:0;max-width:100%;display:flex;flex-direction:column;overflow-x:hidden}
.topbar{
  display:flex;align-items:center;gap:12px;padding:14px 24px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--topbar-bg);
  backdrop-filter:blur(10px);z-index:20;
}
.topbar h2{font-size:20px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.month-pill{background:var(--card-2);border:1px solid var(--line);padding:6px 12px;border-radius:20px;font-size:13px;font-weight:600}
.menu-btn{display:none;font-size:22px}
.view{padding:24px;max-width:1200px;width:100%}

.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:25}
.sidebar-backdrop.show{display:block}

/* ---------- شريط أدوات ---------- */
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.month-input{padding:9px 12px}

/* ---------- بطاقات الإحصائيات ---------- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.cards-3{grid-template-columns:repeat(3,1fr)}
.stat-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;display:flex;gap:14px;align-items:center;transition:.2s;
}
.stat-card:hover{transform:translateY(-3px);border-color:var(--primary)}
.stat-card{min-width:0;overflow:hidden}
.stat-ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:22px;background:var(--card-2);flex-shrink:0}
.stat-ico.pos{background:rgba(16,185,129,.15)}
.stat-ico.neg{background:rgba(239,68,68,.15)}
.stat-body{display:flex;flex-direction:column;min-width:0}
.stat-title{color:var(--muted);font-size:13px;font-weight:600}
.stat-value{font-size:22px;font-weight:800;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.stat-sub{font-size:11px}

/* ---------- لوحات ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px; }
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;width:100%;}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.panel-head h3{font-size:16px}
.badge{background:var(--card-2);border:1px solid var(--line);padding:4px 10px;border-radius:20px;font-size:12px;font-weight:700}

/* ---------- قوائم مصغّرة ---------- */
.mini-list{list-style:none;display:flex;flex-direction:column}
.mini-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.mini-list li:last-child{border-bottom:none}
.mini-list small{display:block;font-size:11px}
.note{margin-top:14px;background:var(--bg-2);border:1px dashed var(--line);padding:12px;border-radius:12px;font-size:13px}
.note.pos{border-color:var(--pos);color:#6ee7b7}
.goal-title{font-size:15px;font-weight:700;margin-bottom:12px}

/* ---------- جداول ---------- */
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:start;color:var(--muted);font-weight:700;font-size:12px;padding:10px 12px;border-bottom:1px solid var(--line)}
.table td{padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}
.table tr:hover td{background:var(--card-2)}
.table tr.muted{opacity:.5}
.tag{padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700;background:var(--card-2)}
.tag.income{background:rgba(16,185,129,.15);color:#6ee7b7}
.tag.expense{background:rgba(239,68,68,.15);color:#fca5a5}

/* ---------- بانر ---------- */
.banner{background:var(--grad);border-radius:var(--radius);padding:22px;margin-bottom:20px;color:#fff}
.banner-label{display:block;font-size:13px;opacity:.9}
.banner-value{font-size:32px;font-weight:800}
.banner p{font-size:13px;opacity:.95;margin-top:8px}

/* ---------- مفتاح تبديل ---------- */
.switch{position:relative;display:inline-block;width:42px;height:24px}
.switch input{display:none}
.switch span{position:absolute;inset:0;background:var(--card-2);border:1px solid var(--line);border-radius:20px;transition:.2s}
.switch span:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;right:3px;transition:.2s}
.switch input:checked + span{background:var(--primary)}
.switch input:checked + span:before{transform:translateX(-18px)}

/* ---------- اختيار النوع (مصروف/دخل) ---------- */
.seg-toggle{display:flex;background:var(--bg-2);border-radius:12px;padding:4px}
.seg-toggle input{display:none}
.seg-toggle label{flex:1;text-align:center;padding:10px;border-radius:9px;color:var(--muted);font-weight:700;cursor:pointer;transition:.15s}
.seg-toggle input:checked + label{background:var(--card-2);color:var(--text)}
#t-exp:checked + label{color:#fca5a5}
#t-inc:checked + label{color:#6ee7b7}

/* ---------- نافذة منبثقة ---------- */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:40;padding:16px;overflow-y:auto}
.modal{
  background:var(--card);border:1px solid var(--line);border-radius:20px;
  width:100%;max-width:440px;box-shadow:var(--shadow);animation:pop .18s ease;
  display:flex;flex-direction:column;max-height:92dvh;margin:auto;
}
@keyframes pop{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);flex-shrink:0}
.modal-head h3{font-size:17px}
.modal-body{padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.modal-form{display:flex;flex-direction:column;gap:14px}
.form-row{display:flex;gap:12px}
.form-row label{flex:1}

/* القيمة الثانوية (العملة المرافقة) */
.m-sec{display:block;font-size:.62em;font-weight:600;color:var(--muted);margin-top:2px;white-space:nowrap}
.stat-value .m-sec{font-size:12px}
.rate-input{background:var(--bg-2);border:1px solid var(--line);color:var(--text);padding:7px 10px;border-radius:9px;font-family:inherit}
.preset-cur{padding:7px 12px;font-size:13px}

/* أزرار اللغة والعملة */
.lang-btn,.cur-btn{font-size:13px;font-weight:800;border:1px solid var(--line)}
.lang-btn:hover,.cur-btn:hover{border-color:var(--primary);color:var(--primary)}
.auth-toggles{position:absolute;top:18px;left:18px;display:flex;gap:8px}
[dir="rtl"] .auth-toggles{left:auto;right:18px}
.auth-toggles .icon-btn{background:var(--card);border:1px solid var(--line)}

/* ---------- رسوم بيانية ---------- */
.donut-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.donut-svg{width:200px;height:200px;flex-shrink:0}
.donut-total{fill:var(--text);font-size:20px;font-weight:800}
.donut-sub{fill:var(--muted);font-size:9px}
.seg{transition:stroke-width .2s}
.seg:hover{stroke-width:34px}
.legend{list-style:none;flex:1;min-width:180px;display:flex;flex-direction:column;gap:8px}
.legend li{display:flex;align-items:center;gap:8px;font-size:13px}
.legend .dot{width:12px;height:12px;border-radius:4px;flex-shrink:0}
.legend .lg-name{flex:1}
.legend .lg-val{color:var(--muted);font-size:12px;font-weight:600}
.bars-legend{display:flex;gap:18px;font-size:13px;color:var(--muted);margin-bottom:8px}
.bars-legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;margin-inline-end:4px}
.bars-scroll{overflow-x:auto}
.bars-svg{display:block}
.bar-income{fill:#10b981}
.bar-expense{fill:#ef4444}
.bar-label{fill:var(--muted);font-size:11px}
.empty{text-align:center;color:var(--muted);padding:30px 10px;font-size:14px}

/* ---------- شريط تقدّم ---------- */
.prog-head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px;font-weight:700}
.prog-bar{height:14px;background:var(--bg-2);border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.prog-fill{height:100%;background:var(--grad);border-radius:20px;transition:width .5s ease}
.prog-fill.over{background:var(--neg)}

.row-btns{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- تنبيه علوي (alert bar) ---------- */
.alert-bar{background:rgba(217,119,6,.12);border:1px solid var(--warn);color:var(--warn);
  padding:12px 16px;border-radius:12px;font-weight:700;margin-bottom:18px;cursor:pointer;transition:.15s}
.alert-bar:hover{background:rgba(217,119,6,.2)}
.banner.warn{background:var(--warn)}

/* ---------- شارة التغيّر + بحث + رقائق ---------- */
.chg{font-size:11px;font-weight:700}
.muted-txt{color:var(--muted)}
.search-input{background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  padding:9px 14px;border-radius:11px;font-family:inherit;font-size:14px;min-width:160px}
.search-input:focus{outline:none;border-color:var(--primary)}
.chips{display:flex;gap:6px;background:var(--bg-2);padding:4px;border-radius:11px}
.chip{background:transparent;border:none;color:var(--muted);padding:7px 14px;border-radius:8px;font-weight:700;font-size:13px;transition:.15s}
.chip.active{background:var(--card);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.row-actions{display:flex;gap:2px}

/* ---------- الميزانيات ---------- */
.budget-list{display:flex;flex-direction:column;gap:6px}
.budget-row{padding:14px 0;border-bottom:1px solid var(--line)}
.budget-row:last-child{border-bottom:none}
.budget-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.budget-top strong{font-size:15px}
.budget-input{display:flex;align-items:center;gap:6px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:4px 10px}
.budget-input span{color:var(--muted);font-weight:700;font-size:13px}
.budget-input input{background:transparent;border:none;color:var(--text);width:120px;padding:6px 2px;font-family:inherit;font-size:14px;text-align:end}
.budget-input input:focus{outline:none}
.budget-meta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:12.5px;font-weight:600;flex-wrap:wrap}

/* ---------- دليل الاستخدام ---------- */
.guide-list{display:flex;flex-direction:column;gap:10px}
.guide-step{display:flex;gap:14px;align-items:flex-start;padding:14px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px}
.guide-ico{width:42px;height:42px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--card)}
.guide-step h4{font-size:15px;margin-bottom:4px}
.guide-step p{font-size:13.5px;color:var(--muted);line-height:1.7}
.guide-step b{color:var(--text)}
.inline-stat{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);padding:8px 14px;border-radius:12px}
.inline-stat b{font-size:18px}
.inline-stat small{font-size:12px}

/* ---------- تنبيه ---------- */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  background:var(--card);border:1px solid var(--line);padding:12px 22px;border-radius:30px;
  box-shadow:var(--shadow);z-index:50;font-weight:600;font-size:14px;
}
.toast.ok{border-color:var(--pos)}
.toast.err{border-color:var(--neg)}

/* ============================================================
   متجاوب (Responsive) — يدعم RTL و LTR
   ============================================================ */
@media (max-width:1024px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .cards-3{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:880px){
  .grid-2{grid-template-columns:1fr;
    overflow-x: auto;
  }
  .cards-3{grid-template-columns:1fr}
}

/* ----- وضع الموبايل: قائمة جانبية منزلقة (off-canvas) ----- */
@media (max-width:780px){
  .app{padding-inline-start:0}   /* لا نحجز مكاناً للقائمة على الموبايل (تصير درج منزلق) */
  .sidebar{
    position:fixed;top:0;bottom:0;height:auto;width:84vw;max-width:300px;
    transition:transform .25s ease;z-index:60;box-shadow:0 0 40px rgba(0,0,0,.5);
    overflow-y:auto;
  }
  /* الاتجاه: عربي تفتح من اليمين، إنجليزي من اليسار. نزيحها كلياً خارج الشاشة عند الإغلاق */
  [dir="rtl"] .sidebar{right:0;left:auto;transform:translateX(110%)}
  [dir="ltr"] .sidebar{left:0;right:auto;transform:translateX(-110%)}
  .sidebar.open{transform:translateX(0) !important}

  /* الخلفية المعتمة تغطي كل شي تحت القائمة */
  .sidebar-backdrop{z-index:55;background:rgba(0,0,0,.6)}
  body.drawer-open{overflow:hidden}

  .menu-btn{display:grid;place-items:center}
  .view{padding:16px}
  .topbar{padding:12px 16px;gap:8px}
  .topbar h2{font-size:17px}
  .toolbar{align-items:stretch}
  .toolbar-left{width:100%}
  .search-input{flex:1;min-width:0}
  .month-input{flex:1}
}

/* ----- شاشات صغيرة ----- */
@media (max-width:560px){
  .cards,.cards-3{grid-template-columns:1fr}
  .stat-value{font-size:20px}
  .auth-card{padding:24px 20px}
  .month-pill{display:none}
  .form-row{flex-direction:column;gap:14px}
  .toolbar{gap:10px}
  .toolbar .btn-primary{width:100%;justify-content:center}
  .chips{width:100%;justify-content:space-between}
  .chip{flex:1;text-align:center;padding:8px 6px}
  .banner-value{font-size:24px}
  .m-sec{white-space:normal}
  .topbar-right{gap:4px}
  .icon-btn{width:34px;height:34px}
  /* النوافذ المنبثقة: ورقة سفلية مريحة على الموبايل */
  .modal-overlay{padding:0;align-items:flex-end}
  .modal{max-width:100%;max-height:94dvh;border-radius:20px 20px 0 0;animation:slideUp .22s ease}
  /* منع تكبير iOS التلقائي للحقول */
  .auth-form input,.auth-form select,.modal-form input,.modal-form select,.month-input,.search-input,.budget-input input{font-size:16px}
}
@keyframes slideUp{from{transform:translateY(40px);opacity:.5}to{transform:translateY(0);opacity:1}}

/* ----- الجداول تتحوّل لبطاقات على الموبايل ----- */
@media (max-width:620px){
  .table thead{display:none}
  .table, .table tbody, .table tr, .table td{display:block;width:100%}
  .table tr{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:6px 14px;background:var(--bg-2)}
  .table tr:hover td{background:transparent}
  .table td{display:flex;justify-content:space-between;align-items:center;gap:12px;
    border:none;border-bottom:1px solid var(--line);padding:9px 0;white-space:normal;text-align:end}
  .table tr td:last-child{border-bottom:none}
  .table td::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:700;text-align:start;flex-shrink:0}
  .table td.row-actions{justify-content:flex-end;gap:4px;padding-top:6px}
  .table td.row-actions::before{content:''}
  .table td .m-sec{text-align:end}
}

/* ----- شاشات صغيرة جداً ----- */
@media (max-width:380px){
  .lang-btn,.cur-btn{font-size:12px}
  .side-brand{font-size:18px}
  .topbar h2{font-size:15px}
  .panel{width:100%}
  .topbar-right{gap:2px}
  .icon-btn{width:32px;height:32px;font-size:16px}
}

/* ---------- وضع الخصوصية: إخفاء/تمويه المبالغ ---------- */
.money{transition:filter .2s}
body.private .money{filter:blur(8px);-webkit-user-select:none;user-select:none;cursor:default}
/* تمويه أرقام الرسم البياني أيضاً */
body.private .donut-total{filter:blur(6px)}
body.private .legend .lg-val{filter:blur(6px)}

/* ---------- صفوف الحقول داخل اللوحات (خارج النماذج) ---------- */
.field-row{align-items:flex-start;gap:16px}
.field-row label{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
.field-row select{width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  padding:11px 12px;border-radius:11px;font-size:14px;font-family:inherit;cursor:pointer;transition:.15s}
.field-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.18)}

/* ---------- منتقي لون التطبيق ---------- */
.swatches{display:flex;flex-wrap:wrap;gap:12px}
.swatch{width:38px;height:38px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:.15s;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.swatch:hover{transform:scale(1.12)}
.swatch.active{border-color:var(--text);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--primary)}

/* ---------- زر الخروج بالقائمة الجانبية ---------- */
.side-logout{display:flex;align-items:center;gap:10px;width:100%;margin-top:10px;
  background:transparent;border:1px solid var(--line);color:var(--neg);
  padding:12px 14px;border-radius:12px;font-weight:700;font-size:14px;transition:.15s}
.side-logout:hover{background:rgba(220,38,38,.1);border-color:var(--neg)}

/* ---------- المحافظ ---------- */
.wallet-card{position:relative}
.wallet-card .row-actions{position:absolute;top:8px;inset-inline-end:8px;opacity:0;transition:.15s}
.wallet-card:hover .row-actions{opacity:1}
.wallet-chips{display:flex;flex-wrap:wrap;gap:10px}
.wallet-chip{display:flex;flex-direction:column;gap:4px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px 16px;min-width:130px}
.wallet-chip span{font-size:13px;color:var(--muted);font-weight:600}
.wallet-chip strong{font-size:16px}

/* ---------- شاشة القفل (PIN) ---------- */
.lock-overlay{position:fixed;inset:0;z-index:80;background:var(--bg);display:grid;place-items:center;padding:24px}
.lock-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:32px;width:100%;max-width:340px;text-align:center;box-shadow:var(--shadow)}
.lock-card h2{font-size:18px;margin:10px 0 18px}
.lock-card input{width:100%;background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  padding:14px;border-radius:12px;font-size:24px;text-align:center;letter-spacing:8px;font-family:inherit;margin-bottom:8px}
.lock-card input:focus{outline:none;border-color:var(--primary)}

/* ---------- قائمة الفئات ---------- */
.cat-list{list-style:none;display:flex;flex-direction:column}
.cat-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.cat-list li:last-child{border-bottom:none}
.cat-name{font-weight:600}

/* ============================================================
   الطباعة / تصدير PDF
   ============================================================ */
.print-only{display:none}
@media print{
  .sidebar,.sidebar-backdrop,.topbar,.toolbar,.btn,.icon-btn,.chips,
  .search-input,.month-input,.switch,.row-actions,.alert-bar{display:none !important}
  .print-only{display:block !important}
  html,body{background:#fff !important;overflow:visible !important}
  body{color:#000 !important}
  .app,.content,.view{display:block !important;overflow:visible !important;max-width:100% !important;width:100% !important;min-height:0 !important}
  .view{padding:0 !important}
  .table-wrap{overflow:visible !important}
  .panel,.stat-card{box-shadow:none !important;border:1px solid #ccc !important;break-inside:avoid;background:#fff !important;color:#000 !important;transform:none !important}
  .grid-2,.cards,.cards-3{display:grid !important}
  .stat-title,.stat-sub,small,.legend .lg-val,.budget-meta,.note{color:#444 !important}
  .stat-value,.panel-head h3,.banner-value,.table td,.table th{color:#000 !important}
  .pos{color:#0a7d33 !important}
  .neg{color:#c0271c !important}
  .banner{background:#eef2ff !important;color:#000 !important;border:1px solid #c7d2fe}
  .donut-total{fill:#000 !important}.donut-sub{fill:#555 !important}
  .print-header{display:flex !important;flex-direction:column;gap:4px;padding-bottom:12px;margin-bottom:16px;border-bottom:3px solid #4f46e5}
  .print-header strong{font-size:20px;color:#1f2533}
  .print-header span{font-size:12px;color:#555}
  @page{margin:14mm}
}

/* ============================================================
   ✨ لمسات احترافية (تحريك + تفاعل + وصول)
   ============================================================ */

/* انتقال ناعم بين الصفحات */
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.view-enter{animation:viewIn .28s cubic-bezier(.22,.61,.36,1)}

/* دخول متدرّج للبطاقات */
@keyframes cardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.cards .stat-card{animation:cardIn .35s ease backwards}
.cards .stat-card:nth-child(2){animation-delay:.05s}
.cards .stat-card:nth-child(3){animation-delay:.1s}
.cards .stat-card:nth-child(4){animation-delay:.15s}
.grid-2>.panel{animation:cardIn .4s ease backwards}
.grid-2>.panel:nth-child(2){animation-delay:.08s}

/* تفاعلات دقيقة */
.btn,.icon-btn,.nav-link,.swatch,.stat-card,.chip,.tab,.wallet-chip{will-change:transform}
.btn:active,.icon-btn:active,.swatch:active{transform:scale(.94)}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25),transparent 70%);transform:translateX(-120%);transition:transform .6s}
.btn-primary:hover::after{transform:translateX(120%)}

/* مؤشّر العنصر النشط بالقائمة */
.nav-link{position:relative}
.nav-link.active::before{content:"";position:absolute;inset-inline-start:0;top:50%;transform:translateY(-50%);width:4px;height:55%;border-radius:0 4px 4px 0;background:#fff;opacity:.9}
[dir="rtl"] .nav-link.active::before{border-radius:4px 0 0 4px}

/* شريط علوي ملوّن خفيف على بطاقة الإحصائية */
.stat-card{position:relative}
.stat-card::after{content:"";position:absolute;inset-inline-start:0;top:0;height:100%;width:3px;background:var(--grad);opacity:0;transition:.2s}
.stat-card:hover::after{opacity:.7}

/* لوحات أنعم */
.panel{transition:border-color .2s,box-shadow .2s}
.panel:hover{box-shadow:0 4px 16px rgba(0,0,0,.06)}
[data-theme="dark"] .panel:hover{box-shadow:0 6px 22px rgba(0,0,0,.3)}

/* تركيز واضح لذوي الوصول (لوحة المفاتيح) */
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}
*:focus:not(:focus-visible){outline:none}

/* شريط تمرير مخصّص */
*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:var(--line);border-radius:20px;border:2px solid var(--bg)}
*::-webkit-scrollbar-thumb:hover{background:var(--muted)}
*::-webkit-scrollbar-track{background:transparent}

/* تحديد النص */
::selection{background:var(--primary);color:#fff}

/* خلفية مموّهة للنافذة المنبثقة */
.modal-overlay{backdrop-filter:blur(4px)}

/* احترام تفضيل تقليل الحركة */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}

/* ============================================================
   المميزات الذكية (Quick Add · Safe-to-spend · Insights · Receipts)
   ============================================================ */

/* --- الإضافة السريعة --- */
.quick-add{margin-bottom:16px;border:1px solid var(--line);background:linear-gradient(180deg,var(--card),var(--card-2))}
.qa-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:14px}
.qa-ico{font-size:18px}
.qa-form{display:flex;gap:8px;flex-wrap:wrap}
.qa-input{flex:1;min-width:200px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  padding:12px 14px;border-radius:12px;font-family:inherit;font-size:15px}
.qa-input:focus{outline:none;border-color:var(--primary)}
.qa-preview{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;min-height:22px}
.qa-chip{background:var(--card-2);border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:12px;font-weight:600}
.qa-chip.pos{border-color:var(--pos)}
.qa-chip.neg{border-color:var(--neg)}
.qa-hint{color:var(--muted);font-size:12px}
.qa-hint.warn{color:var(--warn)}
.qa-full{background:none;border:none;color:var(--primary);font-weight:700;font-size:12px;cursor:pointer;padding:4px 6px}
.qa-full:hover{text-decoration:underline}

/* --- شريط المبلغ الآمن للصرف اليوم --- */
.safe-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--grad);color:#fff;border-radius:var(--radius);padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow)}
.safe-strip.neg{background:linear-gradient(135deg,#b91c1c,#ef4444)}
.safe-main{display:flex;align-items:center;gap:12px}
.safe-ico{font-size:26px}
.safe-title{display:block;font-size:13px;opacity:.92;font-weight:600}
.safe-val{font-size:24px;font-weight:800}
.safe-sub{opacity:.9;font-size:12px;font-weight:600}
body.private .safe-val{filter:blur(8px)}

/* --- كشف الاشتراكات --- */
.sub-list{list-style:none;display:flex;flex-direction:column}
.sub-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.sub-list li:last-child{border-bottom:none}
.sub-info strong{display:block}
.sub-info small{color:var(--muted)}

/* --- محاكاة شو لو --- */
.whatif input[type="range"]{width:100%;accent-color:var(--primary);margin-top:6px}
#wiPct{color:var(--primary)}

/* --- ملخّص الشهر --- */
.wrap-up .mini-list small{color:var(--muted)}

/* --- الإيصال (صورة) --- */
.receipt-field{display:flex;flex-direction:column;gap:8px}
.receipt-cap{font-size:13px;color:var(--muted);font-weight:600}
.receipt-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.receipt-thumb{width:54px;height:54px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
.receipt-full{max-width:100%;max-height:70vh;border-radius:12px;display:block;margin:0 auto}

/* ============================================================
   منتقي التاريخ/الشهر المخصّص (Date / Month Picker)
   ============================================================ */
.dp-native{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}

.dp-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--line);color:var(--text);
  border-radius:11px;padding:11px 14px;font-family:inherit;font-size:14px;font-weight:600;transition:.15s}
.dp-trigger:hover{border-color:var(--primary)}
.dp-trigger:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}
.dp-trigger.dp-empty .dp-label{color:var(--muted);font-weight:500}
.dp-ico{font-size:16px;opacity:.85;flex-shrink:0}
.dp-trigger.dp-as-month{width:auto;min-width:172px;padding:8px 14px;border-radius:11px}

/* الورقة المنبثقة */
.dp-backdrop{position:fixed;inset:0;z-index:80;background:transparent}
.dp-pop{position:fixed;z-index:81;width:300px;max-width:calc(100vw - 16px);
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:14px;animation:pop .16s ease}
.dp-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.dp-nav{width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);background:var(--bg-2);
  color:var(--text);border-radius:10px;font-size:18px;font-weight:800;cursor:pointer;line-height:1}
.dp-nav:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
.dp-title{flex:1;background:transparent;border:none;color:var(--text);font-weight:800;font-size:15px;
  cursor:pointer;border-radius:9px;padding:7px 4px}
.dp-title:hover{background:var(--bg-2)}
.dp-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.dp-week span{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:4px 0}
.dp-grid{display:grid;gap:4px}
.dp-days{grid-template-columns:repeat(7,1fr)}
.dp-mos,.dp-yrs{grid-template-columns:repeat(3,1fr)}
.dp-cell{border:none;background:transparent;color:var(--text);cursor:pointer;border-radius:10px;
  font-family:inherit;font-weight:600;transition:.12s}
.dp-day{aspect-ratio:1;display:grid;place-items:center;font-size:14px}
.dp-mo,.dp-yr{padding:14px 4px;font-size:14px}
.dp-cell:hover{background:var(--bg-2)}
.dp-blank{background:transparent;cursor:default}
.dp-cell.today{box-shadow:inset 0 0 0 1.5px var(--primary)}
.dp-cell.sel{background:var(--grad);color:#fff;box-shadow:none}
.dp-foot{display:flex;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.dp-soft{flex:1;border:1px solid var(--line);background:var(--bg-2);color:var(--text);
  border-radius:10px;padding:9px;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer}
.dp-soft:hover{background:var(--card-2)}

/* الموبايل: ورقة سفلية */
.dp-pop.dp-sheet{left:0;right:0;bottom:0;top:auto!important;width:100%;max-width:100%;
  border-radius:20px 20px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));animation:slideUp .22s ease}
@media (max-width:560px){
  .dp-backdrop{background:rgba(0,0,0,.5)}
  .dp-day{font-size:16px}
  .dp-mo,.dp-yr{padding:16px 4px}
}
@media (max-width:780px){
  .dp-trigger.dp-as-month{flex:1;width:auto;min-width:0}
}

/* ============================================================
   تحسينات تجاوب إضافية للمكوّنات الجديدة
   ============================================================ */
@media (max-width:560px){
  .panel{width:100%}                         /* لا عرض ثابت — يملأ الشاشة */
  .qa-input{min-width:0}
  .qa-form .btn{width:100%;justify-content:center}
  .safe-val{font-size:21px}
  .sub-list li{flex-direction:column;align-items:stretch;gap:8px}
  .sub-list li .btn{width:100%;justify-content:center}
  .wrap-up .cards{grid-template-columns:1fr}
}
@media (max-width:380px){
  .dp-pop{padding:12px}
  .dp-nav{width:32px;height:32px}
}

/* ملخّص الشهر — تخطيط مدمج يتجنّب تكسّر الأرقام في النافذة الضيّقة */
.wrap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:10px}
.ws{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:center;min-width:0}
.ws span{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-bottom:6px}
.ws strong{font-size:16px;display:block;line-height:1.3}
.ws .m-sec{font-size:.6em;font-weight:600;white-space:normal}
.ws small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}

/* ============================================================
   المساعد الذكي (AI Assistant)
   ============================================================ */
.ai-hero{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.ai-score{position:relative;flex:0 0 auto;width:140px;height:140px;display:grid;place-items:center}
.ai-ring{transform:rotate(-90deg)}
.ai-ring-bg{fill:none;stroke:var(--line);stroke-width:10}
.ai-ring-fg{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}
.ai-ring.good .ai-ring-fg{stroke:var(--pos)}
.ai-ring.mid  .ai-ring-fg{stroke:var(--warn)}
.ai-ring.low  .ai-ring-fg{stroke:var(--neg)}
.ai-score-num{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1}
.ai-score-num b{font-size:34px;font-weight:800}
.ai-score-num span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.ai-hero-txt{flex:1;min-width:220px}
.ai-hero-txt h3{margin-bottom:6px}
.ai-hero-txt p{color:var(--muted)}
.ai-badges{margin-top:10px}
.ai-badge{display:inline-block;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--muted)}
.ai-badge.on{background:rgba(22,163,74,.12);border-color:var(--pos);color:var(--pos)}

.ai-parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.ai-part-top{display:flex;justify-content:space-between;font-weight:700;font-size:14px;margin-bottom:6px}
.ai-part small{color:var(--muted);font-size:12px;display:block;margin-top:5px}
.ai-bar{height:9px;border-radius:999px;background:var(--bg-2);overflow:hidden}
.ai-bar-fill{display:block;height:100%;border-radius:999px;transition:width .7s ease}
.ai-bar-fill.good{background:var(--pos)}
.ai-bar-fill.mid{background:var(--warn)}
.ai-bar-fill.low{background:var(--neg)}

.ai-tips{display:grid;gap:12px}
.ai-tip{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--radius);background:var(--bg-2);border:1px solid var(--line);border-inline-start-width:4px}
.ai-tip.good{border-inline-start-color:var(--pos)}
.ai-tip.tip {border-inline-start-color:var(--primary)}
.ai-tip.warn{border-inline-start-color:var(--warn)}
.ai-tip.bad {border-inline-start-color:var(--neg)}
.ai-tip-ico{font-size:22px;line-height:1.2;flex:0 0 auto}
.ai-tip-body strong{display:block;margin-bottom:3px}
.ai-tip-body p{color:var(--muted);font-size:13px;margin:0}

.ai-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.ai-chip{font-size:13px;padding:7px 13px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);transition:.15s}
.ai-chip:hover{border-color:var(--primary);color:var(--primary)}
.ai-log{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto;padding:6px 2px;margin-bottom:12px}
.ai-log:empty{display:none}
.ai-msg{max-width:82%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.55;word-break:break-word}
.ai-msg.user{margin-inline-start:auto;background:var(--grad);color:#fff;border-bottom-right-radius:5px}
.ai-msg.ai{margin-inline-end:auto;background:var(--bg-2);border:1px solid var(--line);border-bottom-left-radius:5px}
.ai-msg-stat{display:flex;justify-content:space-between;gap:12px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-weight:700}
.ai-msg-stat.pos b{color:var(--pos)} .ai-msg-stat.neg b{color:var(--neg)}
.ai-src{display:block;margin-top:6px;font-size:10px;opacity:.6}
.ai-dots{display:inline-flex;gap:4px}
.ai-dots i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:aiblink 1s infinite}
.ai-dots i:nth-child(2){animation-delay:.2s}
.ai-dots i:nth-child(3){animation-delay:.4s}
@keyframes aiblink{0%,60%,100%{opacity:.3}30%{opacity:1}}
.ai-input{display:flex;gap:8px}
.ai-input input{flex:1;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card-2);color:var(--text);font-family:inherit;font-size:14px}
.ai-input input:focus{outline:none;border-color:var(--primary)}

.ai-cfg{display:flex;flex-direction:column;gap:12px}
.ai-switch{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}
.ai-switch input{width:18px;height:18px;accent-color:var(--primary)}

/* توصيات الميزانية بالذكاء الاصطناعي */
.ai-recs{display:flex;flex-direction:column;gap:8px}
.ai-rec{display:grid;grid-template-columns:1.3fr 1fr 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line)}
.ai-rec-cat{font-weight:700}
.ai-rec-avg,.ai-rec-cur{font-size:12px;color:var(--muted)}
.ai-rec-sug{color:var(--primary);font-size:15px;text-align:end}
.ai-rec .btn{padding:6px 12px;font-size:13px}
@media(max-width:640px){
  .ai-rec{grid-template-columns:1fr 1fr auto}
  .ai-rec-avg{display:none}
}

/* مايك الإدخال الصوتي */
.ai-mic{flex:0 0 auto;font-size:18px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;width:44px}
.ai-mic.listening{background:rgba(220,38,38,.15);border-color:var(--neg);animation:aipulse 1s infinite}
@keyframes aipulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

/* بطاقة المساعد المصغّرة على لوحة التحكم */
.ai-widget{display:flex;align-items:center;gap:16px;cursor:pointer;transition:.15s;border-inline-start:4px solid var(--primary)}
.ai-widget:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ai-widget-score{flex:0 0 auto;width:66px;height:66px;border-radius:50%;display:grid;place-content:center;text-align:center;line-height:1;color:#fff}
.ai-widget-score.good{background:var(--pos)}
.ai-widget-score.mid{background:var(--warn)}
.ai-widget-score.low{background:var(--neg)}
.ai-widget-score b{font-size:24px;font-weight:800}
.ai-widget-score small{display:block;font-size:9px;opacity:.85;margin-top:2px}
.ai-widget-body{flex:1;min-width:0}
.ai-widget-body strong{display:block;margin-bottom:2px}
.ai-widget-body p{color:var(--muted);font-size:13px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-widget .btn{flex:0 0 auto}
@media(max-width:560px){.ai-widget .btn{display:none}}

/* مخطط التدفّق النقدي */
.cf-chart{display:block;width:100%;height:auto;margin-top:6px}
.cf-area{fill:var(--primary);opacity:.10}
.cf-line{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.cf-line.proj{stroke-dasharray:5 5;opacity:.75}
.cf-dot{fill:var(--primary)}
.cf-dot.proj{fill:var(--card);stroke:var(--primary);stroke-width:2}
.cf-zero{stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}
.cf-lbl{fill:var(--muted);font-size:10px;text-anchor:middle;font-family:inherit}
.cf-legend{display:flex;gap:18px;justify-content:center;margin-top:8px;font-size:12px;color:var(--muted)}
.cf-legend i{display:inline-block;width:16px;height:3px;border-radius:2px;vertical-align:middle;margin-inline-end:5px;background:var(--primary)}
.cf-legend i.p{background:repeating-linear-gradient(90deg,var(--primary) 0 4px,transparent 4px 7px)}

/* الشخصية المالية */
.ai-pers{display:flex;align-items:center;gap:16px}
.ai-pers-emoji{font-size:44px;flex:0 0 auto;line-height:1}
.ai-pers strong{display:block;font-size:18px;margin-bottom:3px}
.ai-pers p{color:var(--muted);font-size:13px;margin:0}

/* الإنجازات */
.ai-ach{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.ai-badge2{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:12px 8px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);opacity:.45;filter:grayscale(1);transition:.2s}
.ai-badge2 span{font-size:26px;line-height:1}
.ai-badge2 small{font-size:11px;color:var(--muted);line-height:1.3}
.ai-badge2.earned{opacity:1;filter:none;border-color:var(--primary);background:linear-gradient(180deg,var(--card-2),var(--bg-2))}
.ai-badge2.earned small{color:var(--text);font-weight:600}

/* خطة التوفير */
.ai-plan-row{align-items:flex-end}
.ai-plan-row .btn{white-space:nowrap}
.ai-plan-row input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card-2);color:var(--text);font-family:inherit}
.ai-report-verdict{font-size:15px;font-weight:700;text-align:center;margin-bottom:14px}

/* ============================================================
   إعادة تصميم: الشات + لوحة الاتصال + نافذة الأسئلة
   ============================================================ */
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}
.btn.ghost:hover{border-color:var(--primary);color:var(--primary)}

/* --- رأس الشات --- */
.ai-chat-panel .panel-head h3{display:flex;align-items:center;gap:8px}
.ai-ava{display:inline-grid;place-content:center;width:32px;height:32px;border-radius:50%;background:var(--grad);font-size:17px;box-shadow:var(--shadow)}
.ai-head-btns{display:flex;gap:8px;flex-wrap:wrap}

/* --- شرائح الاقتراحات --- */
.ai-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
.ai-chip{font-size:13px;padding:8px 14px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);transition:.15s}
.ai-chip:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}

/* --- سجلّ المحادثة --- */
.ai-chat-panel .ai-log{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;padding:14px;max-height:380px}
.ai-log:empty{display:none}
.ai-msg{max-width:80%;padding:11px 15px;border-radius:18px;font-size:14px;line-height:1.6;box-shadow:0 1px 3px rgba(20,30,60,.06)}
.ai-msg.user{margin-inline-start:auto;background:var(--grad);color:#fff;border-bottom-right-radius:6px}
.ai-msg.ai{margin-inline-end:auto;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px}
[dir="ltr"] .ai-msg.user{border-bottom-right-radius:18px;border-bottom-left-radius:6px}

/* --- صندوق الإدخال --- */
.ai-input{display:flex;gap:6px;align-items:center;background:var(--card-2);border:1px solid var(--line);border-radius:16px;padding:6px}
.ai-input:focus-within{border-color:var(--primary)}
.ai-input input{flex:1;border:none;background:transparent;padding:10px 12px;color:var(--text);font-family:inherit;font-size:14px}
.ai-input input:focus{outline:none}
.ai-input .btn-primary{border-radius:12px;padding:10px 18px}
.ai-mic{flex:0 0 auto;font-size:18px;background:transparent;border:none;border-radius:12px;width:42px;height:42px}
.ai-mic.listening{background:rgba(220,38,38,.15);color:var(--neg)}

/* --- نافذة كل الأسئلة --- */
.ai-qgroup{margin-bottom:16px}
.ai-qgroup:last-child{margin-bottom:0}
.ai-qgroup h4{font-size:13px;color:var(--muted);margin-bottom:9px;font-weight:800}
.ai-qlist{display:flex;flex-wrap:wrap;gap:8px}
.ai-qchip{text-align:start;font-size:13px;padding:10px 15px;border-radius:12px;background:var(--bg-2);border:1px solid var(--line);color:var(--text);transition:.15s}
.ai-qchip:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}

/* --- لوحة الاتصال --- */
.ai-conn-status{font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.ai-conn-status.on{background:rgba(22,163,74,.12);border-color:var(--pos);color:var(--pos)}
.ai-cfg{display:flex;flex-direction:column;gap:16px}
.ai-cfg label:not(.ai-toggle){display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px;color:var(--muted)}
.ai-cfg input,.ai-cfg select{padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:var(--card-2);color:var(--text);font-family:inherit;font-size:14px;font-weight:400}
.ai-cfg input:focus,.ai-cfg select:focus{outline:none;border-color:var(--primary)}
.ai-cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.ai-cfg-grid{grid-template-columns:1fr}}
.ai-cfg-actions{display:flex;gap:10px;margin-top:2px}
.ai-cfg-actions .btn{flex:1}

/* مفتاح الـ API مع زر الإظهار */
.ai-key-wrap{position:relative;display:flex;align-items:center}
.ai-key-wrap input{flex:1;width:100%;padding-inline-end:46px}
.ai-eye{position:absolute;inset-inline-end:8px;background:none;border:none;font-size:17px;padding:4px;line-height:1;opacity:.7}
.ai-eye:hover{opacity:1}

/* مفتاح التبديل (Toggle) */
.ai-toggle{display:flex;align-items:center;gap:12px;cursor:pointer;font-weight:700;user-select:none}
.ai-toggle input{position:absolute;opacity:0;width:0;height:0}
.ai-toggle-ui{position:relative;width:48px;height:27px;border-radius:999px;background:var(--line);transition:.2s;flex:0 0 auto}
.ai-toggle-ui::after{content:'';position:absolute;top:3px;inset-inline-start:3px;width:21px;height:21px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 4px rgba(0,0,0,.35)}
.ai-toggle input:checked + .ai-toggle-ui{background:var(--pos)}
.ai-toggle input:checked + .ai-toggle-ui::after{transform:translateX(21px)}
[dir="rtl"] .ai-toggle input:checked + .ai-toggle-ui::after{transform:translateX(-21px)}
.ai-toggle input:focus-visible + .ai-toggle-ui{box-shadow:0 0 0 3px rgba(99,102,241,.35)}

/* ============================================================
   تحسينات التجاوب الشاملة (v2) — كل الموقع
   ============================================================ */
/* أمان ضد التمرير الأفقي + توسيط المحتوى على الشاشات العريضة */
img,svg,video,canvas{max-width:100%}
.view{margin-inline:auto}

/* --- تابلت (781–1024): ٣ بطاقات بدل ٢ لاستغلال العرض --- */
@media (min-width:781px) and (max-width:1024px){
  .cards{grid-template-columns:repeat(3,1fr)}
}

/* --- شاشات متوسطة/صغيرة (≤700): تحسينات عامة --- */
@media (max-width:700px){
  .ai-parts{grid-template-columns:1fr}
  .toolbar-left{gap:8px}
}

/* --- الموبايل (≤560): قسم المساعد + مكوّنات عامة --- */
@media (max-width:560px){
  /* هيرو المساعد: توسيط عمودي */
  .ai-hero{flex-direction:column;text-align:center;gap:14px}
  .ai-hero-txt{min-width:0}
  .ai-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
  /* رأس الشات + الأزرار تملأ العرض */
  .ai-head-btns{width:100%}
  .ai-head-btns .btn{flex:1;justify-content:center}
  .ai-msg{max-width:88%}
  .ai-tip{padding:12px}
  /* خطة التوفير: زر كامل العرض */
  .ai-plan-row .btn{width:100%}
  .ai-cfg-actions{flex-direction:column}
  /* مخطط التدفّق: تسميات أصغر */
  .cf-lbl{font-size:9px}
  .cf-legend{gap:12px}
  /* زر الخروج بالشريط العلوي زائد على الموبايل (موجود بالقائمة الجانبية) */
  #logoutBtn{display:none}
}

/* توصيات الميزانية على الشاشات الضيّقة — شبكة مرتّبة (تتجاوز قاعدة 640 القديمة) */
@media (max-width:640px){
  .ai-rec{grid-template-columns:1fr auto;column-gap:12px;row-gap:3px;align-items:center}
  .ai-rec-avg{display:none}
  .ai-rec-cat{grid-column:1;grid-row:1}
  .ai-rec-cur{grid-column:1;grid-row:2;font-size:11px}
  .ai-rec-sug{grid-column:2;grid-row:1}
  .ai-rec .btn{grid-column:2;grid-row:2}
}

/* --- شاشات صغيرة جداً (≤380) --- */
@media (max-width:380px){
  .stat-card{padding:14px;gap:10px}
  .stat-ico{width:40px;height:40px;font-size:18px;border-radius:12px}
  .stat-value{font-size:19px}
  .ai-ach{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
  .ai-badge2 span{font-size:22px}
  .ai-widget{gap:12px}
  .ai-widget-score{width:56px;height:56px}
  .ai-widget-score b{font-size:20px}
  .ai-score{width:120px;height:120px}
  .ai-ring{width:120px;height:120px}
  .ai-score-num b{font-size:28px}
  .ai-pers-emoji{font-size:36px}
  .ai-chip,.ai-qchip{font-size:12px;padding:7px 11px}
  .ai-input .btn-primary{padding:10px 12px}
  .panel{padding:16px}
}

/* --- شاشات كبيرة جداً (≥1500): حدّ أوسع للمحتوى --- */
@media (min-width:1500px){
  .view{max-width:1360px}
}

/* ============================================================
   📷 ماسح الفواتير
   ============================================================ */
.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.scan-box{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.scan-preview{max-width:100%;max-height:46vh;border-radius:14px;border:1px solid var(--line);box-shadow:var(--shadow);object-fit:contain}
.scan-status{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600;font-size:14px}
.scan-status b{color:var(--primary)}
@media (max-width:560px){
  .toolbar-actions{width:100%}
  .toolbar-actions .btn{flex:1;justify-content:center}
}

/* زر المسح داخل حقل المبلغ */
.amount-wrap{display:flex;gap:6px;align-items:stretch}
.amount-wrap input{flex:1;min-width:0}
.amount-scan{flex:0 0 auto;width:42px;background:var(--bg-2);border:1px solid var(--line);border-radius:11px;font-size:18px}
.amount-scan:hover{border-color:var(--primary)}

/* مراجعة مسح عدّة فواتير */
.batch-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.batch-row{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.batch-thumb{width:52px;height:52px;object-fit:cover;border-radius:9px;border:1px solid var(--line);flex:0 0 auto}
.batch-fields{flex:1;min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.batch-fields input,.batch-fields select{width:100%;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:var(--card-2);color:var(--text);font-family:inherit;font-size:13px}
.batch-fields input:focus,.batch-fields select:focus{outline:none;border-color:var(--primary)}
.batch-rm{flex:0 0 auto}
@media (max-width:480px){
  .batch-fields{grid-template-columns:1fr 1fr}
  .batch-thumb{width:44px;height:44px}
}

/* ☁️ لوحة المزامنة السحابية */
.hint.pos{color:var(--pos)}
.hint.neg{color:var(--neg)}
.cloud-help{margin-top:14px}
.cloud-help summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--primary);padding:6px 0}
.cloud-sql{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:8px;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;overflow-x:auto;white-space:pre;direction:ltr;text-align:left;color:var(--text)}

/* 👑 لوحة الأدمن — خلية كلمة المرور */
.pw-cell{display:inline-flex;align-items:center;gap:6px}
.pw-dots{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;min-width:60px;direction:ltr;display:inline-block}
.pw-eye{width:30px;height:30px;font-size:14px}
#adminSearch{max-width:260px}
@media (max-width:560px){ #adminSearch{max-width:100%;width:100%} }

/* ============================================================
   ✨ مميزات جديدة
   ============================================================ */
/* تراجع عن الحذف داخل التنبيه */
.toast{display:flex;align-items:center;gap:12px}
.toast-undo{background:transparent;border:1px solid var(--primary);color:var(--primary);
  border-radius:20px;padding:4px 12px;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.toast-undo:hover{background:var(--primary);color:#fff}

/* تنبيه الاقتراب من الميزانية (برتقالي) */
.prog-fill.near{background:var(--warn)}
.banner.near{background:var(--warn)}
.alert-bar.near{background:rgba(217,119,6,.12);border-color:var(--warn);color:var(--warn)}
.near-tag{background:rgba(217,119,6,.15);color:var(--warn);border:1px solid var(--warn);font-size:11px}

/* أهداف الادخار المتعددة */
.goals-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.goal-card .panel-head h3{font-size:16px}

/* تكرار الدفعة */
.tag{display:inline-block;padding:2px 8px;border-radius:8px;background:var(--bg-2);font-size:12px;font-weight:600}

/* التقارير + الاستثمارات */
.mini-chart{width:100%;overflow-x:auto}
.line-chart,.heatmap-svg{width:100%;height:auto;display:block}
.line-dot{fill:var(--primary)}
.line-path{fill:none;stroke:var(--primary);stroke-width:2.5}
.line-area{fill:var(--primary);opacity:.12}
.line-lbl,.hm-lbl{font-size:10px;fill:var(--muted)}
.hm-cell{rx:2}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.invest-gain.pos{color:var(--pos)} .invest-gain.neg{color:var(--neg)}

/* شارة الحساب المعروض (مشاركة) */
.share-badge{display:inline-flex;align-items:center;gap:6px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}
.share-badge:hover{border-color:var(--primary);color:var(--primary)}

/* تقسيم المعاملة */
.split-toggle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;cursor:pointer;flex-direction:row!important}
.split-toggle input{width:auto}
.split-box{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:6px}
.split-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.split-row .split-cat{flex:2} .split-row .split-amt{flex:1;min-width:0}
.split-total-line{font-size:13px;color:var(--muted);margin-top:6px}
.range-custom{display:inline-flex;gap:6px}
.range-custom input{width:auto}

/* مبدّل الحساب (مشاركة عائلية) */
.acct-switch{margin-top:8px;width:100%;font-size:12px;padding:6px 8px;border-radius:8px;
  border:1px solid var(--line);background:var(--bg-2);color:var(--text)}

/* تخصيص القائمة الجانبية */
.nav-cust{display:flex;flex-direction:column;gap:16px}
.nav-cust-group{display:flex;flex-direction:column;gap:2px}
.nav-cust-title{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.nav-cust-row{display:flex;align-items:center;justify-content:space-between;padding:7px 6px;border-bottom:1px solid var(--line)}
.nav-cust-row:last-child{border-bottom:none}
.nav-cust-row.locked{opacity:.55}
