(() => {
const { SidebarNav, Topbar, Breadcrumbs, Logo, Icon } = window.AmlakPlusDesignSystem_b3aa85;

// Proposed IA: "المالية" split into owners' money vs. office accounting. Every existing section keeps a home.
const NAV = [
  { title: 'العمل اليومي', items: [{ id: 'today', label: 'متابعات اليوم', icon: 'CalendarDays', count: 7 }, { id: 'collection', label: 'التحصيل والسندات', icon: 'ReceiptText' }, { id: 'requests', label: 'طلبات البوابة', icon: 'Inbox', count: 4 }, { id: 'maintenance', label: 'طلبات الصيانة', icon: 'Wrench', count: 1 }] },
  { title: 'الأملاك والإيجارات', items: [{ id: 'properties', label: 'العقارات', icon: 'Building2' }, { id: 'units', label: 'الوحدات', icon: 'DoorOpen' }, { id: 'owners', label: 'الملاك', icon: 'Landmark' }, { id: 'tenants', label: 'المستأجرون', icon: 'Users' }, { id: 'leases', label: 'العقود', icon: 'FileText' }, { id: 'listings', label: 'النشر والاستفسارات', icon: 'Megaphone', count: 2 }] },
  { title: 'المراجعة الدورية', items: [{ id: 'ejar', label: 'مطابقة إيجار', icon: 'FileCheck' }] },
  { title: 'أموال الملاك', items: [{ id: 'expenses', label: 'المصروفات', icon: 'Wallet' }, { id: 'settlements', label: 'حسابات وتصفيات الملاك', icon: 'HandCoins' }, { id: 'management', label: 'اتفاقات وأتعاب الإدارة', icon: 'Handshake' }] },
  { title: 'المحاسبة', items: [{ id: 'custody', label: 'العهد والمطابقة', icon: 'ArrowLeftRight' }, { id: 'books', label: 'الدفاتر والقيود', icon: 'BookOpen' }, { id: 'rules', label: 'قواعد ترحيل التحصيل', icon: 'Settings2' }, { id: 'reports', label: 'التقارير', icon: 'ChartNoAxesCombined' }] },
  { title: 'إعداد المنشأة', items: [{ id: 'accounts', label: 'حسابات الاستلام', icon: 'Wallet' }, { id: 'team', label: 'الفريق والفروع', icon: 'Settings2' }, { id: 'data', label: 'استيراد ونسخ البيانات', icon: 'Database' }, { id: 'subscription', label: 'الاشتراك', icon: 'BadgeCheck' }, { id: 'help', label: 'المساعدة والدعم', icon: 'LifeBuoy', count: 1 }] }
];
const SECTION_OF = { opreport: 'reports', followlog: 'today', lease: 'leases', property: 'properties', owner: 'owners', tenant: 'tenants', unit: 'units' };
const BOTTOM = [{ id: 'today', label: 'اليوم', icon: 'CalendarDays' }, { id: 'collection', label: 'التحصيل', icon: 'ReceiptText' }, { id: 'properties', label: 'العقارات', icon: 'Building2' }];

function AppShell({ route, go, crumbs, children, devToggle, openers, onLogout }) {
  const D = window.AP_DATA;
  const [open, setOpen] = React.useState(false);
  const [org, setOrg] = React.useState(D.org);
  const [orgNote, setOrgNote] = React.useState('');
  const current = SECTION_OF[route] || route;
  const nav = (id) => { setOpen(false); go(id); };
  return (
    <div className="kit-shell">
      <a href="#main" className="kit-skip">تخطَّ إلى المحتوى</a>
      <aside className={'kit-sidebar' + (open ? ' is-open' : '')} aria-label="القائمة الرئيسية">
        <div style={{ padding: '4px 10px 18px' }}><Logo base="../../" width={140} tagline /></div>
        <SidebarNav groups={NAV.map((g) => ({ ...g, items: g.items.map((i) => i.id === 'requests' && window.apRequestCount ? { ...i, count: window.apRequestCount() || undefined } : i) }))} current={current} onNavigate={nav} />
        <AccountMenu onLogout={onLogout} />
      </aside>
      {open && <div className="kit-scrim" onClick={() => setOpen(false)} />}
      <div className="kit-work">
        <Topbar org={org} orgs={D.orgs} onOrgChange={(o) => { setOrg(o); setOrgNote(o); setTimeout(() => setOrgNote(''), 3500); }} actions={<><CommandSearch go={nav} {...openers} /><Notifications go={nav} /></>} crumbs={<div className="kit-crumbs">{crumbs && <Breadcrumbs items={crumbs} onNavigate={(it) => it.go && it.go()} />}</div>} onMenu={() => setOpen(!open)} style={{ position: 'sticky', top: 0, zIndex: 20 }} />
        {window.SubBanner && route !== 'subscription' && <window.SubBanner go={nav} />}
        <main id="main" className="kit-content" tabIndex={-1}>{orgNote && <div className="kit-org-note" role="status"><Icon name="Building" size={15} /> انتقلت إلى «{orgNote}» — كل الأرقام والقوائم تخص هذه المنشأة فقط.</div>}{children}{devToggle}</main>
      </div>
      <nav className="kit-bottom" aria-label="تنقل سريع">
        {BOTTOM.map((b) => <button key={b.id} type="button" aria-current={current === b.id ? 'page' : undefined} onClick={() => nav(b.id)}><Icon name={b.icon} size={20} /><span>{b.label}</span></button>)}
        <button type="button" onClick={() => setOpen(true)}><Icon name="Menu" size={20} /><span>المزيد</span></button>
      </nav>
    </div>
  );
}

function NotInScope({ title }) {
  const { StateView, PageHeader } = window.AmlakPlusDesignSystem_b3aa85;
  return <><PageHeader title={title} /><StateView boxed kind="empty" icon="Info" title="هذا القسم موجود في التطبيق ولم يُعَد تصميمه في هذه الجولة" text="الأولوية الحالية: متابعات اليوم، العقد، التحصيل والسند، العقارات، ملف العقار والمالك، كشف العمارة." /></>;
}

Object.assign(window, { AppShell, NotInScope, NAV });

})();
