'use client';

import { useState, useEffect, useCallback } from 'react';
import Link from 'next/link';
import { Skeleton } from 'primereact/skeleton';
import DashboardShell from '../../components/DashboardShell';
import { useApi } from '@/hooks/useApi';
import { useAuthStore } from '@/store/authStore';

import 'primereact/resources/themes/lara-light-blue/theme.css';
import 'primereact/resources/primereact.min.css';

// ─── Types ────────────────────────────────────────────────────────────────────

interface ApiTripBusType  { id: number; name: string }
interface ApiTripBusBrand { id: number; name: string }
interface ApiTripBusModel { id: number; name: string }

interface ApiTripBus {
  id: number;
  display_code: string;
  plate: string;
  plate_letters: string;
  plate_numbers: number;
  capacity: number;
  occupancy_percent: number;
  boarded_count: number;
  type: ApiTripBusType;
  brand?: ApiTripBusBrand;
  model?: ApiTripBusModel;
}

interface ApiTripCaptain {
  id: number;
  display_code: string;
  name: string;
  phone: string;
  image?: string;
  country_code: string;
}

interface ApiTripPath {
  id: number;
  description: string;
}

interface ApiTripStation {
  id: number;
  path_station_id: number;
  order_index: number;
  name: string;
  address: string;
  planned_arrival: string;
  actual_arrival: string | null;
  closed_at: string | null;
  status: 'pending' | 'open' | 'closed';
  boarded_count: number;
}

interface ApiTripBoardingSummary {
  expected_subscribers: number;
  boarded_total: number;
  absent_total: number;
  pending_total: number;
  occupancy_percent: number;
}

interface ApiTripDetail {
  id: number;
  display_code: string;
  path_id: number;
  path: ApiTripPath;
  trip_date: string;
  status: string;
  trip_leg: 'go' | 'return';
  shift_label: string;
  planned_start: string;
  planned_end: string;
  actual_start: string | null;
  actual_end: string | null;
  bus: ApiTripBus | null;
  captain: ApiTripCaptain | null;
  boarding_summary: ApiTripBoardingSummary | null;
  stations: ApiTripStation[];
}

interface ApiTripDetailResponse {
  key: string;
  msg: string;
  data: ApiTripDetail;
}

// ─── Status config ────────────────────────────────────────────────────────────

const STATUS_CONFIG: Record<string, { label: string; color: string; bg: string }> = {
  in_progress: { label: 'جارية',   color: '#7C3AED', bg: '#EDE9FE' },
  completed:   { label: 'مكتملة',  color: '#059669', bg: '#DCFCE7' },
  scheduled:   { label: 'مجدولة',  color: '#0891B2', bg: '#ECFEFF' },
  cancelled:   { label: 'ملغاة',   color: '#EF4444', bg: '#FEE2E2' },
  late:        { label: 'متأخرة',  color: '#D97706', bg: '#FEF3C7' },
  ongoing:     { label: 'جارية',   color: '#7C3AED', bg: '#EDE9FE' },
};

const STATION_STATUS: Record<string, { label: string; color: string; bg: string }> = {
  closed:  { label: 'مغلقة', color: '#059669', bg: '#DCFCE7' },
  open:    { label: 'مفتوحة', color: '#7C3AED', bg: '#EDE9FE' },
  pending: { label: 'قادمة',  color: '#94a3b8', bg: '#F1F5F9' },
};

// ─── Helpers ──────────────────────────────────────────────────────────────────

function formatTime(iso: string | null): string {
  if (!iso) return '—';
  try {
    return new Date(iso).toLocaleTimeString('ar-SA', { hour: '2-digit', minute: '2-digit', hour12: true });
  } catch { return iso; }
}

function formatDate(dateStr: string): string {
  try {
    return new Date(dateStr).toLocaleDateString('ar-SA', { weekday: 'long', day: 'numeric', month: 'long' });
  } catch { return dateStr; }
}

function getStatus(status: string) {
  return STATUS_CONFIG[status] ?? { label: status, color: '#64748B', bg: '#F1F5F9' };
}

// ─── Skeleton ─────────────────────────────────────────────────────────────────

function DetailSkeleton() {
  return (
    <>
      {/* Header Card */}
      <div className="bg-white rounded-2xl p-6 mb-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
        <div className="flex items-start justify-between flex-wrap gap-4">
          <div className="flex items-center gap-4">
            <Skeleton width="56px" height="56px" borderRadius="16px" />
            <div>
              <div className="flex items-center gap-3 mb-2">
                <Skeleton width="220px" height="24px" borderRadius="8px" />
                <Skeleton width="60px" height="22px" borderRadius="999px" />
              </div>
              <div className="flex items-center gap-4">
                <Skeleton width="60px" height="14px" borderRadius="6px" />
                <Skeleton width="70px" height="14px" borderRadius="6px" />
                <Skeleton width="80px" height="14px" borderRadius="6px" />
              </div>
            </div>
          </div>
          <div className="flex gap-2">
            <Skeleton width="80px" height="36px" borderRadius="12px" />
            <Skeleton width="80px" height="36px" borderRadius="12px" />
          </div>
        </div>
      </div>

      {/* Stats Row */}
      <div className="grid grid-cols-4 gap-4 mb-5">
        {[1,2,3,4].map(i => (
          <div key={i} className="bg-white rounded-2xl p-4 flex items-center gap-3" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
            <Skeleton width="40px" height="40px" borderRadius="12px" />
            <div>
              <Skeleton width="60px" height="24px" borderRadius="8px" className="mb-1" />
              <Skeleton width="80px" height="12px" borderRadius="6px" />
            </div>
          </div>
        ))}
      </div>

      {/* Body */}
      <div className="grid grid-cols-3 gap-5">
        <div className="space-y-4">
          <div className="bg-white rounded-2xl p-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
            <Skeleton width="60px" height="14px" borderRadius="6px" className="mb-4" />
            <div className="flex items-center gap-3 mb-4">
              <Skeleton width="48px" height="48px" borderRadius="16px" />
              <div>
                <Skeleton width="100px" height="14px" borderRadius="6px" className="mb-1" />
                <Skeleton width="80px" height="12px" borderRadius="6px" />
              </div>
            </div>
            <Skeleton width="100%" height="36px" borderRadius="12px" />
          </div>
          <div className="bg-white rounded-2xl p-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
            <Skeleton width="50px" height="14px" borderRadius="6px" className="mb-4" />
            {[1,2,3].map(i => (
              <div key={i} className="flex justify-between mb-3">
                <Skeleton width="60px" height="12px" borderRadius="6px" />
                <Skeleton width="80px" height="12px" borderRadius="6px" />
              </div>
            ))}
            <Skeleton width="100%" height="8px" borderRadius="999px" className="mt-3" />
          </div>
        </div>
        <div className="col-span-2 bg-white rounded-2xl overflow-hidden" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
          <div className="flex border-b p-4 gap-4" style={{ borderColor: '#F1F5F9' }}>
            <Skeleton width="80px" height="20px" borderRadius="6px" />
            <Skeleton width="80px" height="20px" borderRadius="6px" />
          </div>
          <div className="p-5 space-y-4">
            {[1,2,3].map(i => (
              <div key={i} className="flex gap-4">
                <Skeleton width="32px" height="32px" borderRadius="999px" />
                <div className="flex-1">
                  <Skeleton width="100%" height="90px" borderRadius="12px" />
                </div>
              </div>
            ))}
          </div>
        </div>
      </div>
    </>
  );
}

// ─── Main Component ───────────────────────────────────────────────────────────

export default function TripDetailsClient({ tripId }: { tripId: string }) {
  const [activeTab, setActiveTab] = useState<'stops' | 'passengers'>('stops');
  const [trip, setTrip] = useState<ApiTripDetail | null>(null);
  const [loading, setLoading] = useState(true);
  const [error, setError] = useState<string | null>(null);

  const hasHydrated = useAuthStore((s) => s._hasHydrated);
  const token = useAuthStore((s) => s.token);

  const { request } = useApi<ApiTripDetailResponse>();

  const fetchTrip = useCallback(async () => {
    setLoading(true);
    setError(null);
    const res = await request(`trips/${tripId}`);
    if (res?.data) {
      setTrip(res.data);
    } else {
      setError('تعذّر تحميل بيانات الرحلة');
    }
    setLoading(false);
  }, [request, tripId]);

  useEffect(() => {
    if (!hasHydrated || !token) return;
    void fetchTrip();
  }, [hasHydrated, token, fetchTrip]);

  const sc = trip ? getStatus(trip.status) : { label: '', color: '#64748B', bg: '#F1F5F9' };
  const summary = trip?.boarding_summary;
  const stations = trip?.stations ?? [];

  return (
    <DashboardShell title="تفاصيل الرحلة" subtitle={trip?.display_code ?? tripId}>

      {/* Back */}
      <div className="mb-5">
        <Link href="/dashboard/trips">
          <button className="flex items-center gap-2 text-sm font-bold cursor-pointer px-4 py-2 rounded-xl hover:bg-slate-100 transition-colors -mr-2" style={{ color: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
            <div className="w-4 h-4 flex items-center justify-center">
              <i className="ri-arrow-right-line text-sm"></i>
            </div>
            العودة للرحلات
          </button>
        </Link>
      </div>

      {/* Loading */}
      {loading && <DetailSkeleton />}

      {/* Error */}
      {!loading && error && (
        <div className="flex flex-col items-center justify-center py-24 gap-4">
          <div className="w-16 h-16 rounded-2xl flex items-center justify-center" style={{ background: '#FEE2E2' }}>
            <i className="ri-error-warning-line text-3xl" style={{ color: '#EF4444' }}></i>
          </div>
          <p className="text-sm text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{error}</p>
          <button
            onClick={fetchTrip}
            className="px-5 py-2 rounded-xl text-sm font-bold text-white cursor-pointer"
            style={{ background: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}
          >
            إعادة المحاولة
          </button>
        </div>
      )}

      {/* Content */}
      {!loading && trip && (
        <>
          {/* Header Card */}
          <div className="bg-white rounded-2xl p-6 mb-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
            <div className="flex items-start justify-between flex-wrap gap-4">
              <div className="flex items-center gap-4">
                <div className="w-14 h-14 rounded-2xl flex items-center justify-center flex-shrink-0" style={{ background: '#EEF2FF' }}>
                  <i className="ri-bus-2-fill text-2xl" style={{ color: '#1E3A8A' }}></i>
                </div>
                <div>
                  <div className="flex items-center gap-3 mb-1">
                    <h1 className="text-xl font-black text-slate-900" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      {trip.path?.description ?? '—'}
                    </h1>
                    <span className="px-3 py-1 rounded-full text-xs font-bold whitespace-nowrap" style={{ background: sc.bg, color: sc.color, fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      {sc.label}
                    </span>
                  </div>
                  <div className="flex items-center gap-4 flex-wrap">
                    <span className="flex items-center gap-1.5 text-sm text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      <i className="ri-hashtag text-xs"></i>{trip.display_code}
                    </span>
                    <span className="flex items-center gap-1.5 text-sm text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      <i className="ri-calendar-line text-xs"></i>{formatDate(trip.trip_date)}
                    </span>
                    <span className="flex items-center gap-1.5 text-sm text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      <i className="ri-sun-line text-xs"></i>{trip.shift_label}
                    </span>
                    <span className="flex items-center gap-1.5 text-sm text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      {trip.trip_leg === 'go'
                        ? <><i className="ri-arrow-up-line text-xs"></i>ذهاب</>
                        : <><i className="ri-arrow-down-line text-xs"></i>عودة</>}
                    </span>
                  </div>
                </div>
              </div>
              <div className="flex items-center gap-2">
                <button className="flex items-center gap-2 px-4 py-2 rounded-xl text-sm font-bold cursor-pointer whitespace-nowrap hover:bg-slate-50 transition-colors" style={{ border: '1px solid #E2E8F0', color: '#374151', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                  <i className="ri-printer-line text-sm"></i>طباعة
                </button>
                <button className="flex items-center gap-2 px-4 py-2 rounded-xl text-sm font-bold cursor-pointer whitespace-nowrap hover:bg-slate-50 transition-colors" style={{ border: '1px solid #E2E8F0', color: '#374151', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                  <i className="ri-download-line text-sm"></i>تصدير
                </button>
              </div>
            </div>
          </div>

          {/* Stats Row */}
          <div className="grid grid-cols-4 gap-4 mb-5">
            {[
              { label: 'وقت الانطلاق المخطط', value: formatTime(trip.planned_start),    icon: 'ri-arrow-right-up-line',   color: '#1E3A8A', bg: '#EEF2FF' },
              { label: 'وقت الانطلاق الفعلي', value: formatTime(trip.actual_start),     icon: 'ri-map-pin-time-line',      color: '#7C3AED', bg: '#EDE9FE' },
              { label: 'الراكبات الحاضرات',   value: `${summary?.boarded_total ?? 0} / ${summary?.expected_subscribers ?? 0}`, icon: 'ri-user-follow-fill', color: '#059669', bg: '#DCFCE7' },
              { label: 'الغائبات',             value: summary?.absent_total ?? 0,        icon: 'ri-user-unfollow-fill',     color: '#EF4444', bg: '#FEE2E2' },
            ].map((s, i) => (
              <div key={i} className="bg-white rounded-2xl p-4 flex items-center gap-3" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
                <div className="w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0" style={{ background: s.bg }}>
                  <i className={`${s.icon} text-xl`} style={{ color: s.color }}></i>
                </div>
                <div>
                  <p className="text-xl font-black text-slate-900" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{s.value}</p>
                  <p className="text-xs text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{s.label}</p>
                </div>
              </div>
            ))}
          </div>

          <div className="grid grid-cols-3 gap-5">
            {/* Left col: Driver + Bus */}
            <div className="space-y-4">

              {/* Driver Card */}
              <div className="bg-white rounded-2xl p-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
                <p className="text-sm font-black text-slate-700 mb-4" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                  <i className="ri-steering-2-fill ml-1.5" style={{ color: '#1E3A8A' }}></i>السائق
                </p>
                {trip.captain ? (
                  <>
                    <div className="flex items-center gap-3 mb-4">
                      {trip.captain.image ? (
                        <img src={trip.captain.image} alt={trip.captain.name} className="w-12 h-12 rounded-2xl object-cover flex-shrink-0" />
                      ) : (
                        <div className="w-12 h-12 rounded-2xl flex items-center justify-center font-black text-white text-sm flex-shrink-0" style={{ background: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                          {trip.captain.name.charAt(0)}
                        </div>
                      )}
                      <div>
                        <p className="font-black text-slate-900 text-sm" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{trip.captain.name}</p>
                        <p className="text-xs text-slate-500 mt-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                          {trip.captain.country_code} {trip.captain.phone}
                        </p>
                        <p className="text-[10px] text-slate-400 mt-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{trip.captain.display_code}</p>
                      </div>
                    </div>
                    <a href={`tel:+${trip.captain.country_code}${trip.captain.phone}`}>
                      <button className="w-full h-9 rounded-xl text-xs font-bold cursor-pointer flex items-center justify-center gap-2 whitespace-nowrap" style={{ background: '#EEF2FF', color: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                        <i className="ri-phone-line text-xs"></i>اتصال بالسائق
                      </button>
                    </a>
                  </>
                ) : (
                  <p className="text-xs text-slate-400 text-center py-4" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>لم يُحدد سائق</p>
                )}
              </div>

              {/* Bus Card */}
              <div className="bg-white rounded-2xl p-5" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
                <p className="text-sm font-black text-slate-700 mb-4" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                  <i className="ri-bus-2-fill ml-1.5" style={{ color: '#1E3A8A' }}></i>الحافلة
                </p>
                {trip.bus ? (
                  <div className="space-y-3">
                    {[
                      { label: 'رقم الحافلة',  value: trip.bus.display_code },
                      { label: 'رقم اللوحة',  value: trip.bus.plate },
                      { label: 'النوع',        value: trip.bus.type?.name ?? '—' },
                      { label: 'الماركة',      value: trip.bus.brand?.name ?? '—' },
                      { label: 'الموديل',      value: trip.bus.model?.name ?? '—' },
                      { label: 'السعة',        value: `${trip.bus.capacity} راكبة` },
                    ].map((item, i) => (
                      <div key={i} className="flex items-center justify-between">
                        <span className="text-xs text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{item.label}</span>
                        <span className="text-xs font-bold text-slate-800" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{item.value}</span>
                      </div>
                    ))}
                    <div className="pt-2">
                      <div className="flex items-center justify-between mb-1">
                        <span className="text-xs text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>نسبة الامتلاء</span>
                        <span className="text-xs font-bold" style={{ color: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                          {Math.round(trip.bus.occupancy_percent ?? 0)}%
                        </span>
                      </div>
                      <div className="h-2 bg-slate-100 rounded-full overflow-hidden">
                        <div
                          className="h-full rounded-full transition-all"
                          style={{
                            width: `${trip.bus.occupancy_percent ?? 0}%`,
                            background: (trip.bus.occupancy_percent ?? 0) >= 90 ? '#059669' : '#1E3A8A',
                          }}
                        />
                      </div>
                    </div>
                  </div>
                ) : (
                  <p className="text-xs text-slate-400 text-center py-4" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>لم تُحدد حافلة</p>
                )}
              </div>
            </div>

            {/* Right: Tabs */}
            <div className="col-span-2 bg-white rounded-2xl overflow-hidden" style={{ border: '1px solid #F1F5F9', boxShadow: '0 1px 4px rgba(0,0,0,0.04)' }}>
              {/* Tab Header */}
              <div className="flex border-b" style={{ borderColor: '#F1F5F9' }}>
                {[
                  { key: 'stops',      label: 'المحطات',  icon: 'ri-map-pin-2-line' },
                  { key: 'passengers', label: 'الراكبات', icon: 'ri-group-line' },
                ].map(tab => (
                  <button
                    key={tab.key}
                    onClick={() => setActiveTab(tab.key as 'stops' | 'passengers')}
                    className="flex items-center gap-2 px-6 py-4 text-sm font-bold cursor-pointer transition-all whitespace-nowrap"
                    style={{
                      color: activeTab === tab.key ? '#1E3A8A' : '#94a3b8',
                      borderBottom: activeTab === tab.key ? '2px solid #1E3A8A' : '2px solid transparent',
                      fontFamily: '"IBM Plex Sans Arabic", sans-serif',
                    }}
                  >
                    <i className={`${tab.icon} text-sm`}></i>
                    {tab.label}
                  </button>
                ))}
              </div>

              {/* Stops Tab */}
              {activeTab === 'stops' && (
                <div className="p-5">
                  {stations.length === 0 ? (
                    <p className="text-xs text-slate-400 text-center py-8" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>لا توجد محطات</p>
                  ) : (
                    <div className="space-y-0">
                      {stations.map((station, i) => {
                        const ssc = STATION_STATUS[station.status] ?? { label: station.status, color: '#64748B', bg: '#F1F5F9' };
                        const isFirst = i === 0;
                        const isLast  = i === stations.length - 1;
                        return (
                          <div key={station.id} className="flex gap-4">
                            {/* Timeline */}
                            <div className="flex flex-col items-center flex-shrink-0">
                              <div
                                className="w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 z-10"
                                style={{
                                  background: isFirst ? '#059669' : isLast ? '#EF4444' : '#F59E0B',
                                  border: '3px solid white',
                                  boxShadow: `0 0 0 2px ${isFirst ? '#059669' : isLast ? '#EF4444' : '#F59E0B'}`,
                                }}
                              >
                                <i className={`${isFirst ? 'ri-map-pin-2-fill' : isLast ? 'ri-flag-fill' : 'ri-map-pin-line'} text-white text-xs`}></i>
                              </div>
                              {!isLast && (
                                <div className="w-0.5 flex-1 my-1" style={{ background: '#E2E8F0', minHeight: '32px' }}></div>
                              )}
                            </div>

                            {/* Content */}
                            <div className={`flex-1 ${isLast ? 'pb-0' : 'pb-5'}`}>
                              <div className="bg-slate-50 rounded-xl p-4" style={{ border: '1px solid #E2E8F0' }}>
                                <div className="flex items-start justify-between mb-3">
                                  <div>
                                    <p className="font-black text-slate-900 text-sm" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{station.name}</p>
                                    <p className="text-xs text-slate-400 mt-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{station.address}</p>
                                    <p className="text-[10px] text-slate-300 mt-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                      {isFirst ? 'نقطة الانطلاق' : isLast ? 'نقطة الوصول' : `محطة ${i}`}
                                    </p>
                                  </div>
                                  <div className="flex items-center gap-2">
                                    <span className="px-2 py-0.5 rounded-full text-[11px] font-bold whitespace-nowrap" style={{ background: ssc.bg, color: ssc.color, fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                      {ssc.label}
                                    </span>
                                    <div className="flex items-center gap-1 bg-white px-2.5 py-1 rounded-lg" style={{ border: '1px solid #E2E8F0' }}>
                                      <i className="ri-group-line text-xs" style={{ color: '#1E3A8A' }}></i>
                                      <span className="text-xs font-bold" style={{ color: '#1E3A8A', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                        {station.boarded_count} راكبة
                                      </span>
                                    </div>
                                  </div>
                                </div>
                                <div className="grid grid-cols-2 gap-3">
                                  <div className="bg-white rounded-lg px-3 py-2" style={{ border: '1px solid #E2E8F0' }}>
                                    <p className="text-[10px] text-slate-400 mb-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>الوقت المخطط</p>
                                    <div className="flex items-center gap-1.5">
                                      <i className="ri-time-line text-xs" style={{ color: '#94a3b8' }}></i>
                                      <span className="text-sm font-black text-slate-800" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                        {formatTime(station.planned_arrival)}
                                      </span>
                                    </div>
                                  </div>
                                  <div className="bg-white rounded-lg px-3 py-2" style={{ border: '1px solid #E2E8F0' }}>
                                    <p className="text-[10px] text-slate-400 mb-0.5" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>الوصول الفعلي</p>
                                    <div className="flex items-center gap-1.5">
                                      <i className="ri-map-pin-time-line text-xs" style={{ color: station.actual_arrival ? '#059669' : '#94a3b8' }}></i>
                                      <span className="text-sm font-black text-slate-800" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                        {formatTime(station.actual_arrival)}
                                      </span>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </div>
                          </div>
                        );
                      })}
                    </div>
                  )}
                </div>
              )}

              {/* Passengers Tab — boarding summary */}
              {activeTab === 'passengers' && (
                <div>
                  <div className="flex items-center justify-between px-5 py-3 border-b" style={{ borderColor: '#F8FAFC' }}>
                    <p className="text-xs text-slate-500" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                      إجمالي: <span className="font-black text-slate-800">{summary?.expected_subscribers ?? 0}</span> راكبة
                    </p>
                    <div className="flex items-center gap-3">
                      <span className="flex items-center gap-1.5 text-xs" style={{ color: '#059669', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                        <div className="w-2 h-2 rounded-full" style={{ background: '#059669' }}></div>
                        حاضرة ({summary?.boarded_total ?? 0})
                      </span>
                      <span className="flex items-center gap-1.5 text-xs" style={{ color: '#EF4444', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                        <div className="w-2 h-2 rounded-full" style={{ background: '#EF4444' }}></div>
                        غائبة ({summary?.absent_total ?? 0})
                      </span>
                      {(summary?.pending_total ?? 0) > 0 && (
                        <span className="flex items-center gap-1.5 text-xs" style={{ color: '#94a3b8', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                          <div className="w-2 h-2 rounded-full" style={{ background: '#94a3b8' }}></div>
                          قيد الانتظار ({summary?.pending_total})
                        </span>
                      )}
                    </div>
                  </div>

                  {/* Summary cards per station */}
                  <div className="p-5 space-y-3 overflow-y-auto" style={{ maxHeight: '380px' }}>
                    {stations.map((station) => {
                      const ssc = STATION_STATUS[station.status] ?? { label: station.status, color: '#64748B', bg: '#F1F5F9' };
                      return (
                        <div key={station.id} className="rounded-xl p-4" style={{ border: '1px solid #E2E8F0', background: '#F8FAFC' }}>
                          <div className="flex items-center justify-between mb-2">
                            <div className="flex items-center gap-2">
                              <i className="ri-map-pin-2-line text-sm" style={{ color: '#1E3A8A' }}></i>
                              <span className="text-sm font-black text-slate-800" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{station.name}</span>
                            </div>
                            <span className="px-2 py-0.5 rounded-full text-[11px] font-bold" style={{ background: ssc.bg, color: ssc.color, fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                              {ssc.label}
                            </span>
                          </div>
                          <p className="text-xs text-slate-400 mb-3" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{station.address}</p>
                          <div className="flex items-center gap-3">
                            <div className="flex-1 bg-white rounded-lg px-3 py-2 text-center" style={{ border: '1px solid #E2E8F0' }}>
                              <p className="text-lg font-black" style={{ color: '#059669', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>{station.boarded_count}</p>
                              <p className="text-[10px] text-slate-400" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>ركبوا</p>
                            </div>
                            <div className="flex-1 bg-white rounded-lg px-3 py-2 text-center" style={{ border: '1px solid #E2E8F0' }}>
                              <p className="text-lg font-black text-slate-700" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                {formatTime(station.planned_arrival)}
                              </p>
                              <p className="text-[10px] text-slate-400" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>مخطط</p>
                            </div>
                            <div className="flex-1 bg-white rounded-lg px-3 py-2 text-center" style={{ border: '1px solid #E2E8F0' }}>
                              <p className="text-lg font-black" style={{ color: station.actual_arrival ? '#1E3A8A' : '#94a3b8', fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>
                                {formatTime(station.actual_arrival)}
                              </p>
                              <p className="text-[10px] text-slate-400" style={{ fontFamily: '"IBM Plex Sans Arabic", sans-serif' }}>فعلي</p>
                            </div>
                          </div>
                        </div>
                      );
                    })}
                  </div>
                </div>
              )}
            </div>
          </div>
        </>
      )}
    </DashboardShell>
  );
}