// ============================================================
// BusManager — Icons (lucide-like, hand-rolled SVG)
// ============================================================
const Ic = ({ children, size = 18, className = "ic", strokeWidth = 1.75, fill = "none" }) =>
  React.createElement("svg", {
    width: size, height: size, viewBox: "0 0 24 24",
    fill, stroke: "currentColor", strokeWidth, strokeLinecap: "round", strokeLinejoin: "round",
    className
  }, children);

const I = {
  Home: (p) => <Ic {...p}><path d="M3 11l9-8 9 8" /><path d="M5 10v10h14V10" /></Ic>,
  Calendar: (p) => <Ic {...p}><rect x="3" y="4" width="18" height="17" rx="2" /><path d="M3 9h18" /><path d="M8 2v4M16 2v4" /></Ic>,
  Bus: (p) => <Ic {...p}><rect x="3" y="5" width="18" height="13" rx="2" /><path d="M3 11h18" /><circle cx="7" cy="18" r="1.5" /><circle cx="17" cy="18" r="1.5" /><path d="M6 8h3M15 8h3" /></Ic>,
  CashRegister: (p) => <Ic {...p}><path d="M3 7h18l-1 13H4L3 7Z" /><path d="M7 7V4h10v3" /><circle cx="12" cy="14" r="2" /></Ic>,
  Wallet: (p) => <Ic {...p}><path d="M3 7h16a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z" /><path d="M3 7V5a2 2 0 0 1 2-2h11" /><circle cx="17" cy="14" r="1.2" fill="currentColor" /></Ic>,
  Database: (p) => <Ic {...p}><ellipse cx="12" cy="5" rx="8" ry="3" /><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5" /><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6" /></Ic>,
  Chart: (p) => <Ic {...p}><path d="M3 3v18h18" /><path d="M7 14l3-4 4 3 5-7" /></Ic>,
  Settings: (p) => <Ic {...p}><circle cx="12" cy="12" r="3" /><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 0 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 0 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 0 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z" /></Ic>,
  Search: (p) => <Ic {...p}><circle cx="11" cy="11" r="7" /><path d="M21 21l-4.3-4.3" /></Ic>,
  Bell: (p) => <Ic {...p}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" /><path d="M10 21a2 2 0 0 0 4 0" /></Ic>,
  Plus: (p) => <Ic {...p}><path d="M12 5v14M5 12h14" /></Ic>,
  Edit: (p) => <Ic {...p}><path d="M12 20h9" /><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5Z" /></Ic>,
  Trash: (p) => <Ic {...p}><path d="M3 6h18" /><path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /><path d="M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14" /></Ic>,
  Eye: (p) => <Ic {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z" /><circle cx="12" cy="12" r="3" /></Ic>,
  X: (p) => <Ic {...p}><path d="M18 6 6 18M6 6l12 12" /></Ic>,
  Check: (p) => <Ic {...p}><path d="M20 6 9 17l-5-5" /></Ic>,
  ChevronLeft: (p) => <Ic {...p}><path d="M15 18 9 12l6-6" /></Ic>,
  ChevronRight: (p) => <Ic {...p}><path d="M9 6l6 6-6 6" /></Ic>,
  ChevronDown: (p) => <Ic {...p}><path d="M6 9l6 6 6-6" /></Ic>,
  ChevronUp: (p) => <Ic {...p}><path d="M18 15l-6-6-6 6" /></Ic>,
  Filter: (p) => <Ic {...p}><path d="M3 4h18l-7 9v7l-4-2v-5L3 4Z" /></Ic>,
  Download: (p) => <Ic {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /><path d="M7 10l5 5 5-5" /><path d="M12 15V3" /></Ic>,
  Upload: (p) => <Ic {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /><path d="M7 8l5-5 5 5" /><path d="M12 3v12" /></Ic>,
  Print: (p) => <Ic {...p}><path d="M6 9V3h12v6" /><rect x="3" y="9" width="18" height="9" rx="2" /><path d="M6 18h12v4H6z" /></Ic>,
  Alert: (p) => <Ic {...p}><path d="M12 2 1 21h22L12 2Z" /><path d="M12 9v5" /><circle cx="12" cy="18" r="0.5" fill="currentColor" stroke="none" /></Ic>,
  Info: (p) => <Ic {...p}><circle cx="12" cy="12" r="10" /><path d="M12 16v-5M12 8v.01" /></Ic>,
  User: (p) => <Ic {...p}><circle cx="12" cy="8" r="4" /><path d="M4 21c0-4 4-7 8-7s8 3 8 7" /></Ic>,
  Users: (p) => <Ic {...p}><circle cx="9" cy="8" r="3.5" /><path d="M2 20c0-3.5 3-6 7-6s7 2.5 7 6" /><circle cx="17" cy="9" r="2.5" /><path d="M22 19c0-2.5-2-4.5-4.5-4.5" /></Ic>,
  Phone: (p) => <Ic {...p}><path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .3 1.8.6 2.7a2 2 0 0 1-.5 2.1L8 9.7a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.5c.9.3 1.8.5 2.7.6a2 2 0 0 1 1.7 2Z" /></Ic>,
  Pin: (p) => <Ic {...p}><path d="M21 10c0 7-9 13-9 13S3 17 3 10a9 9 0 0 1 18 0Z" /><circle cx="12" cy="10" r="3" /></Ic>,
  Clock: (p) => <Ic {...p}><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></Ic>,
  Tag: (p) => <Ic {...p}><path d="M2 12V3h9l11 11-9 9-11-11Z" /><circle cx="7" cy="7" r="1.2" fill="currentColor" stroke="none" /></Ic>,
  ArrowUp: (p) => <Ic {...p}><path d="M12 19V5M5 12l7-7 7 7" /></Ic>,
  ArrowDown: (p) => <Ic {...p}><path d="M12 5v14M5 12l7 7 7-7" /></Ic>,
  ArrowRight: (p) => <Ic {...p}><path d="M5 12h14M12 5l7 7-7 7" /></Ic>,
  Lock: (p) => <Ic {...p}><rect x="4" y="11" width="16" height="10" rx="2" /><path d="M8 11V8a4 4 0 0 1 8 0v3" /></Ic>,
  Logout: (p) => <Ic {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" /><path d="M16 17l5-5-5-5" /><path d="M21 12H9" /></Ic>,
  Building: (p) => <Ic {...p}><rect x="4" y="3" width="16" height="18" rx="1" /><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2" /></Ic>,
  PiggyBank: (p) => <Ic {...p}><path d="M19 12a7 7 0 0 0-7-7H9a5 5 0 0 0-5 5c0 1.5.5 2.5 2 3.5V18h3v-2h5v2h3v-3a6.6 6.6 0 0 0 2-3Z" /><circle cx="15" cy="10" r="0.6" fill="currentColor" stroke="none" /></Ic>,
  TrendUp: (p) => <Ic {...p}><path d="M22 7l-9 9-4-4-7 7" /><path d="M16 7h6v6" /></Ic>,
  TrendDown: (p) => <Ic {...p}><path d="M22 17l-9-9-4 4-7-7" /><path d="M16 17h6v-6" /></Ic>,
  Receipt: (p) => <Ic {...p}><path d="M4 3h16v18l-3-2-3 2-3-2-3 2-2-2-2 2V3Z" /><path d="M8 7h8M8 11h8M8 15h5" /></Ic>,
  More: (p) => <Ic {...p}><circle cx="5" cy="12" r="1.5" fill="currentColor" stroke="none" /><circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none" /><circle cx="19" cy="12" r="1.5" fill="currentColor" stroke="none" /></Ic>,
  Star: (p) => <Ic {...p}><path d="m12 2 3 7h7l-5.5 4.5L18 21l-6-4-6 4 1.5-7.5L2 9h7l3-7Z" /></Ic>,
  Save: (p) => <Ic {...p}><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2Z" /><polyline points="17 21 17 13 7 13 7 21" /><polyline points="7 3 7 8 15 8" /></Ic>,
  Refresh: (p) => <Ic {...p}><path d="M21 12a9 9 0 1 1-3-6.7L21 8" /><path d="M21 3v5h-5" /></Ic>,
  Camera: (p) => <Ic {...p}><path d="M5 7h3l2-2h4l2 2h3a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2Z" /><circle cx="12" cy="13" r="3.5" /></Ic>,
  Map: (p) => <Ic {...p}><path d="m3 6 6-3 6 3 6-3v15l-6 3-6-3-6 3V6Z" /><path d="M9 3v15M15 6v15" /></Ic>,
  Sparkle: (p) => <Ic {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8" /></Ic>,
  Menu: (p) => <Ic {...p}><path d="M4 6h16M4 12h16M4 18h16" /></Ic>,
};
window.I = I;
