<!doctype html>
<html lang="ar" dir="rtl" data-theme="dim">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>فواتير المصروفات</title>

  <style>
    /* =========================
       Theme Variables (Default = DIM)
       ========================= */
    :root{ /* default = dim */
      --bg:#121826;
      --surface:#101827;
      --card:#151e30;
      --card2:#0f1a33;

      --text:#e5e7eb;
      --muted:#9ca3af;

      --border:rgba(255,255,255,.10);
      --border2:rgba(255,255,255,.14);
      --shadow:0 18px 40px rgba(0,0,0,.22);

      --primary:#6366f1;
      --primary2:#4f46e5;
      --success:#22c55e;
      --warning:#f59e0b;
      --danger:#ef4444;

      --input:#0b1327;
      --inputBorder:rgba(255,255,255,.12);
      --inputFocus:rgba(99,102,241,.35);

      --tableHead:rgba(255,255,255,.05);
      --rowHover:rgba(99,102,241,.08);
    }

    /* ✅ Dark (أغمق) */
    html[data-theme="dark"]{
      --bg:#070b14;
      --surface:#0b1220;
      --card:#0f172a;
      --card2:#0b1327;
    }

    /* ✅ Light (أبيض صافي مثل التصميم القديم) */
    html[data-theme="light"]{
      --bg:#ffffff;
      --surface:#ffffff;
      --card:#ffffff;
      --card2:#ffffff;

      --text:#111827;
      --muted:#6b7280;

      --border:rgba(17,24,39,.10);
      --border2:rgba(17,24,39,.14);
      --shadow:0 12px 28px rgba(0,0,0,.10);

      --primary:#111827;
      --primary2:#111827;

      --success:#16a34a;
      --warning:#d97706;
      --danger:#dc2626;

      --input:#ffffff;
      --inputBorder:rgba(17,24,39,.14);
      --inputFocus:rgba(17,24,39,.12);

      --tableHead:rgba(17,24,39,.03);
      --rowHover:rgba(17,24,39,.03);
    }

    *{box-sizing:border-box}

    body{
      font-family:Arial, sans-serif;
      margin:0;
      background:var(--bg);
      color:var(--text);
      padding:22px;
    }

    html[data-theme="dim"] body,
    html[data-theme="dark"] body{
      background:linear-gradient(180deg, var(--bg), var(--bg));
    }

    .container{max-width:1200px;margin:0 auto}

    /* Page header */
    .pageHeader{
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      border:1px solid var(--border);
      border-radius:18px;
      box-shadow:var(--shadow);
      padding:16px 16px 12px;
      margin-bottom:14px;
    }
    html[data-theme="light"] .pageHeader{
      background:#ffffff;
      border-color:rgba(17,24,39,.10);
      box-shadow:0 12px 28px rgba(0,0,0,.08);
    }

    .headerTop{
      display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap
    }
    .title{font-weight:900;font-size:18px;letter-spacing:.2px}
    .subtitle{color:var(--muted);font-size:13px;margin-top:6px;line-height:1.6}

    .navRow{
      display:flex;gap:8px;flex-wrap:nowrap;overflow:auto;max-width:100%;
      padding-top:10px;padding-bottom:6px;-webkit-overflow-scrolling:touch;align-items:center
    }
    .navRow > *{flex:0 0 auto; white-space:nowrap;}

    /* Buttons */
    .btn{
      padding:10px 12px;border-radius:12px;border:1px solid transparent;
      cursor:pointer;font-weight:900;font-size:13px;line-height:1;
      display:inline-flex;align-items:center;gap:8px;text-decoration:none;
      transition:transform .05s ease, opacity .15s ease, border-color .15s ease;
      user-select:none;
    }
    .btn:active{transform:translateY(1px)}

    .btnPrimary{
      background:linear-gradient(180deg, var(--primary), var(--primary2));
      color:#fff;border-color:rgba(255,255,255,.10)
    }
    html[data-theme="light"] .btnPrimary{
      background:#111827; color:#fff; border-color:rgba(17,24,39,.12);
    }

    .btnGhost{
      background:rgba(255,255,255,.03);
      color:var(--text);
      border-color:var(--border2)
    }
    html[data-theme="light"] .btnGhost{
      background:#ffffff;
      border-color:rgba(17,24,39,.12);
    }
    .btnGhost:hover{border-color:rgba(255,255,255,.18)}
    html[data-theme="light"] .btnGhost:hover{border-color:rgba(17,24,39,.20)}

    .btnDanger{
      background:rgba(239,68,68,.14);
      color:#fff;border-color:rgba(239,68,68,.35)
    }
    html[data-theme="light"] .btnDanger{
      background:#ffffff;
      color:#dc2626;
      border-color:rgba(220,38,38,.25);
    }
    .btnDanger:hover{opacity:.95}

    .activeTab{
      background:rgba(99,102,241,.20);
      border-color:rgba(99,102,241,.55);
      color:#fff;
    }
    html[data-theme="light"] .activeTab{
      background:rgba(17,24,39,.05);
      border-color:rgba(17,24,39,.18);
      color:#111827;
    }

    /* Cards */
    .card{
      background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
      border:1px solid var(--border);
      border-radius:18px;
      box-shadow:var(--shadow);
      padding:16px;
      margin-bottom:14px;
    }
    html[data-theme="light"] .card{
      background:#ffffff;
      border-color:rgba(17,24,39,.10);
      box-shadow:0 12px 28px rgba(0,0,0,.08);
    }

    /* Alerts */
    .alert{padding:12px;border-radius:14px;border:1px solid;font-weight:900;margin-bottom:14px}
    .alert.err{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.35);color:#fff}
    .alert.ok{background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.35);color:#fff}
    html[data-theme="light"] .alert.err{color:#991b1b;background:#fef2f2;border-color:#fecaca}
    html[data-theme="light"] .alert.ok{color:#166534;background:#ecfdf3;border-color:#bbf7d0}

    /* Forms */
    label{display:block;font-size:12px;color:var(--muted);font-weight:900;margin-bottom:6px}
    input, select{
      width:100%;
      padding:11px 12px;
      border:1px solid var(--inputBorder);
      border-radius:12px;
      outline:none;
      font-size:14px;
      background:var(--input);
      color:var(--text);
    }
    input:focus, select:focus{
      border-color:rgba(99,102,241,.55);
      box-shadow:0 0 0 3px var(--inputFocus);
    }
    html[data-theme="light"] input:focus,
    html[data-theme="light"] select:focus{
      border-color:rgba(17,24,39,.22);
      box-shadow:0 0 0 3px rgba(17,24,39,.08);
    }

    .grid{display:grid;grid-template-columns: 1fr 1fr 1fr 1fr 1fr auto;gap:12px;align-items:end}
    @media (max-width: 980px){
      body{padding:16px}
      .grid{grid-template-columns: 1fr 1fr;}
    }
    @media (max-width: 560px){
      .grid{grid-template-columns: 1fr;}
    }

    /* Table */
    .tableWrap{
      overflow:auto;
      border-radius:14px;
      border:1px solid var(--border);
      background:rgba(0,0,0,.10);
    }
    html[data-theme="light"] .tableWrap{
      background:#ffffff;
      border-color:rgba(17,24,39,.10);
    }

    table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      min-width:1200px;
    }
    thead th{
      position:sticky;top:0;z-index:2;
      background:var(--tableHead);
      border-bottom:1px solid var(--border);
      padding:12px 12px;
      font-weight:900;
      font-size:13px;
      white-space:nowrap;
      text-align:right;
    }
    tbody td{
      padding:12px 12px;
      border-bottom:1px solid rgba(255,255,255,.06);
      font-size:13px;
      vertical-align:middle;
    }
    html[data-theme="light"] tbody td{
      border-bottom:1px solid rgba(17,24,39,.08);
    }
    tbody tr:hover td{background:var(--rowHover)}

    .num{font-weight:900}
    .empty{padding:16px;text-align:center;color:var(--muted);font-weight:900}

    .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
    @media (max-width: 980px){ .kpis{grid-template-columns:repeat(2,1fr);} }
    @media (max-width: 560px){ .kpis{grid-template-columns:1fr;} }

    .kpi{
      border:1px solid var(--border);
      border-radius:14px;
      padding:12px;
      background:rgba(255,255,255,.03);
    }
    html[data-theme="light"] .kpi{
      background:#ffffff;
      border-color:rgba(17,24,39,.10);
    }
    .kpi .t{color:var(--muted);font-size:12px;font-weight:900}
    .kpi .v{margin-top:8px;font-size:16px;font-weight:900}

    .chk{width:18px;height:18px;cursor:pointer}

    .selCount{
      font-weight:900;
      color:var(--muted);
      padding:8px 10px;
      border:1px dashed var(--border2);
      border-radius:12px;
      background:rgba(255,255,255,.03);
    }
    html[data-theme="light"] .selCount{
      background:#ffffff;
      border-color:rgba(17,24,39,.14);
    }

    .btnDanger:disabled{
      opacity:.45;
      cursor:not-allowed;
      filter:grayscale(.2);
    }
  </style>

  <!-- ✅ Apply saved theme ASAP (avoid flash) -->
  <script>
    (function(){
      const themes = ["light","dim","dark"];
      const key = "ui_theme";
      const saved = localStorage.getItem(key);
      const t = (saved && themes.includes(saved)) ? saved : "dim";
      document.documentElement.setAttribute("data-theme", t);
    })();
  </script>
</head>

<body>
<div class="container">

  @php
    $role = auth()->check() ? (auth()->user()->role ?? 'user') : 'guest';
    $canDelete = in_array($role, ['admin','super'], true);
  @endphp

  <!-- ✅ الهيدر الرئيسي (بنفس قالب الإعدادات) -->
  <div class="pageHeader">
    <div class="headerTop">
      <div>
        <div class="title">فواتير المصروفات</div>
        <div class="subtitle">فلترة + ملخص + تصدير</div>
      </div>

      <div class="navRow">
        <a class="btn btnPrimary" href="{{ Route::has('dashboard.sales') ? route('dashboard.sales') : '#' }}">الرئيسية</a>

        <a class="btn btnGhost {{ Route::currentRouteNamed('dashboard.sales') ? 'activeTab' : '' }}"
           href="{{ Route::has('dashboard.sales') ? route('dashboard.sales') : '#' }}">المبيعات</a>

        <a class="btn btnGhost {{ Route::currentRouteNamed('purchases.*') ? 'activeTab' : '' }}"
           href="{{ Route::has('purchases.index') ? route('purchases.index') : '#' }}">المشتريات</a>

        <a class="btn btnGhost {{ Route::currentRouteNamed('expenses.*') ? 'activeTab' : '' }}"
           href="{{ Route::has('expenses.index') ? route('expenses.index') : '#' }}">المصروفات</a>

        <a class="btn btnGhost {{ Route::currentRouteNamed('dashboard.reports*') ? 'activeTab' : '' }}"
           href="{{ Route::has('dashboard.reports') ? route('dashboard.reports') : '#' }}">التقارير</a>

        <a class="btn btnGhost {{ Route::currentRouteNamed('settings.*') ? 'activeTab' : '' }}"
           href="{{ Route::has('settings.index') ? route('settings.index') : '#' }}">الإعدادات</a>

        @if(auth()->check() && (auth()->user()->role ?? 'user') === 'admin')
          <a class="btn btnGhost" href="{{ Route::has('branches.index') ? route('branches.index') : '#' }}">إدارة الفروع</a>
          <a class="btn btnGhost" href="{{ Route::has('users.index') ? route('users.index') : '#' }}">إدارة المستخدمين</a>
        @endif

        <button class="btn btnGhost" type="button" id="themeBtn">🎨 المظهر</button>

        <form method="POST" action="{{ Route::has('logout') ? route('logout') : '#' }}" style="display:inline">
          @csrf
          <button class="btn btnDanger" type="submit">خروج</button>
        </form>
      </div>
    </div>
  </div>

  <!-- ✅ الشريط الفرعي للمصروفات -->
  <div class="card">
    <div class="navRow" style="padding-top:0">
      <a class="btn btnGhost" href="{{ Route::has('expenses.index') ? route('expenses.index') : '#' }}">إضافة مصروف</a>

      <a class="btn btnGhost activeTab" href="{{ Route::has('expenses.invoices') ? route('expenses.invoices') : '#' }}">فواتير المصروفات</a>

      <a class="btn btnGhost" href="{{ Route::has('expenses.settings') ? route('expenses.settings') : '#' }}">إعدادات المصروفات</a>

      <a class="btn btnGhost"
         href="{{ Route::has('expenses.invoices.export') ? route('expenses.invoices.export', ['branch_id'=>$branchId,'expense_subcategory_id'=>$subId,'from'=>$from,'to'=>$to,'q'=>$q]) : '#' }}">
        تصدير CSV
      </a>

      @if($canDelete)
        <button id="deleteBtn" class="btn btnDanger" type="button" onclick="submitDeleteSelected()" disabled>حذف المحدد</button>
        <span id="selCount" class="selCount">المحدد: 0</span>
      @endif
    </div>
  </div>

  @if(session('error')) <div class="alert err">{{ session('error') }}</div> @endif
  @if(session('ok'))    <div class="alert ok">{{ session('ok') }}</div> @endif

  <div class="card">
    <form method="GET" action="{{ route('expenses.invoices') }}">
      <div class="grid">
        <div>
          <label>الفرع</label>
          <select name="branch_id">
            <option value="0">كل الفروع</option>
            @foreach($branches as $b)
              <option value="{{ $b->id }}" @selected((int)$branchId === (int)$b->id)>
                {{ $b->branch_no }} - {{ $b->name }}
              </option>
            @endforeach
          </select>
        </div>

        <div>
          <label>المصروف (فرعي)</label>
          <select name="expense_subcategory_id">
            <option value="0">الكل</option>
            @foreach($subcats as $sc)
              <option value="{{ $sc->id }}" @selected((int)$subId === (int)$sc->id)>
                {{ $sc->name }}
              </option>
            @endforeach
          </select>
        </div>

        <div>
          <label>من تاريخ</label>
          <input type="date" name="from" value="{{ $from }}">
        </div>

        <div>
          <label>إلى تاريخ</label>
          <input type="date" name="to" value="{{ $to }}">
        </div>

        <div>
          <label>بحث (رقم فاتورة)</label>
          <input type="text" name="q" value="{{ $q }}" placeholder="مثال: EXP-">
        </div>

        <div style="display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end">
          <button class="btn btnPrimary" type="submit">تطبيق</button>

          {{-- ✅ مسح يحافظ على الفرع --}}
          <a class="btn btnGhost" href="{{ route('expenses.invoices', ['branch_id' => request('branch_id', 0)]) }}">مسح</a>

          <a class="btn btnGhost"
             href="{{ route('expenses.invoices.export', ['branch_id'=>$branchId,'expense_subcategory_id'=>$subId,'from'=>$from,'to'=>$to,'q'=>$q]) }}">
            CSV
          </a>
        </div>
      </div>

      <div class="kpis">
        <div class="kpi">
          <div class="t">الإجمالي قبل الضريبة</div>
          <div class="v">{{ number_format($totals->subtotal ?? 0, 2) }}</div>
        </div>
        <div class="kpi">
          <div class="t">قيمة الضريبة</div>
          <div class="v">{{ number_format($totals->vat_amount ?? 0, 2) }}</div>
        </div>
        <div class="kpi">
          <div class="t">الإجمالي شامل</div>
          <div class="v">{{ number_format($totals->total ?? 0, 2) }}</div>
        </div>
      </div>
    </form>
  </div>

  {{-- ✅ نموذج الحذف --}}
  @if($canDelete)
    <form id="deleteForm" method="POST" action="{{ route('expenses.invoices.delete') }}">
      @csrf
    </form>
  @endif

  <div class="card">
    <div class="tableWrap">
      <table>
        <thead>
          <tr>
            @if($canDelete)
              <th style="width:40px">
                <input class="chk" type="checkbox" id="chkAll" onclick="toggleAll(this)">
              </th>
            @endif

            <th>ID</th>
            <th>الفرع</th>
            <th>رقم داخل الفرع</th>
            <th>رقم الفاتورة</th>
            <th>التاريخ</th>
            <th>المصروف</th>
            <th>قبل الضريبة</th>
            <th>الضريبة</th>
            <th>الإجمالي</th>
            <th>ملاحظات</th>
          </tr>
        </thead>
        <tbody>
          @foreach($rows as $r)
            <tr>
              @if($canDelete)
                <td>
                  <input class="chk rowChk" type="checkbox" value="{{ $r->id }}">
                </td>
              @endif

              <td class="num">{{ $r->id }}</td>
              <td>{{ $r->branch_no }} - {{ $r->branch_name }}</td>
              <td class="num">{{ $r->inv_no_branch }}</td>
              <td class="num">{{ $r->bill_no }}</td>
              <td>{{ $r->bill_date ?: '-' }}</td>
              <td style="font-weight:900">{{ $r->subcategory_name ?: '-' }}</td>
              <td class="num">{{ number_format($r->subtotal, 2) }}</td>
              <td class="num">{{ number_format($r->vat_amount, 2) }}</td>
              <td class="num">{{ number_format($r->total, 2) }}</td>
              <td>{{ $r->notes ?: '' }}</td>
            </tr>
          @endforeach

          @if(count($rows) === 0)
            <tr>
              <td colspan="{{ $canDelete ? 11 : 10 }}" class="empty">لا توجد بيانات</td>
            </tr>
          @endif
        </tbody>
      </table>
    </div>
  </div>

</div>

<script>
(function(){
  // Theme toggle
  const themes = ["light","dim","dark"];
  const key = "ui_theme";
  const html = document.documentElement;
  const btn = document.getElementById("themeBtn");

  function label(t){
    if(t === "light") return "☀️ فاتح";
    if(t === "dark") return "🌙 داكن";
    return "🌗 مريح";
  }

  function apply(t){
    html.setAttribute("data-theme", t);
    localStorage.setItem(key, t);
    if(btn) btn.textContent = "🎨 " + label(t);
  }

  const saved = localStorage.getItem(key);
  const t = (saved && themes.includes(saved)) ? saved : (html.getAttribute("data-theme") || "dim");
  apply(t);

  if(btn){
    btn.addEventListener("click", function(){
      const cur = html.getAttribute("data-theme") || "dim";
      const idx = themes.indexOf(cur);
      const next = themes[(idx + 1) % themes.length];
      apply(next);
    });
  }
})();
</script>

<script>
  function updateDeleteBtn(){
    const btn = document.getElementById('deleteBtn');
    const counter = document.getElementById('selCount');

    const allItems = document.querySelectorAll('.rowChk');
    const checkedItems = Array.from(allItems).filter(c => c.checked);
    const checkedCount = checkedItems.length;

    if(btn){ btn.disabled = (checkedCount === 0); }
    if(counter){ counter.textContent = 'المحدد: ' + checkedCount; }

    const chkAll = document.getElementById('chkAll');
    if(chkAll){
      const all = allItems.length;
      chkAll.checked = (all > 0 && checkedCount === all);
      chkAll.indeterminate = (checkedCount > 0 && checkedCount < all);
    }
  }

  function toggleAll(el){
    const items = document.querySelectorAll('.rowChk');
    items.forEach(chk => chk.checked = el.checked);
    updateDeleteBtn();
  }

  document.addEventListener('change', function(e){
    if(e.target && e.target.classList.contains('rowChk')) updateDeleteBtn();
  });

  document.addEventListener('DOMContentLoaded', updateDeleteBtn);

  function submitDeleteSelected(){
    const form = document.getElementById('deleteForm');
    if(!form) return;

    form.querySelectorAll('input[name="ids[]"]').forEach(n => n.remove());

    const checked = Array.from(document.querySelectorAll('.rowChk')).filter(c => c.checked);
    if(checked.length === 0){
      alert('اختر مصروف واحد على الأقل');
      return;
    }

    if(!confirm('تأكيد: سيتم حذف المصروفات المحددة نهائياً. هل أنت متأكد؟')) return;

    checked.forEach(c => {
      const inp = document.createElement('input');
      inp.type = 'hidden';
      inp.name = 'ids[]';
      inp.value = c.value;
      form.appendChild(inp);
    });

    form.submit();
  }
</script>

</body>
</html>
