/* アイコン定義 */
const Icons = {
  construction: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <path d="M8 40h32M12 40V20l12-8 12 8v20M20 40V28h8v12M16 16l16-8" />
    </svg>
  ),
  link: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <path d="M20 28L28 20M14 30c-3-3-3-8 0-11l4-4c3-3 8-3 11 0M34 18c3 3 3 8 0 11l-4 4c-3 3-8 3-11 0" strokeLinecap="round"/>
    </svg>
  ),
  shield: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <path d="M24 6l14 6v12c0 9-6 16-14 18-8-2-14-9-14-18V12l14-6zM18 24l4 4 8-8" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  scale: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <path d="M24 8v32M10 12h28M14 14l-6 14h12l-6-14zM34 14l-6 14h12l-6-14zM16 40h16M2 28a6 6 0 0012 0M30 28a6 6 0 0012 0" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  online: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <rect x="6" y="10" width="36" height="24" rx="2"/>
      <path d="M16 40h16M20 34v6M28 34v6" strokeLinecap="round"/>
      <circle cx="24" cy="22" r="4"/>
    </svg>
  ),
  handshake: () => (
    <svg viewBox="0 0 48 48" fill="none" stroke="currentColor" strokeWidth="1.2">
      <path d="M4 24l8-8 6 4 6-4 6 4 8-8M4 32l10 8 6-4 6 4 6-4 12-12" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  logo: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5">
      <path d="M12 3v18M6 9l6-6 6 6M4 21h16" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  arrow: () => (
    <svg className="arrow" viewBox="0 0 16 12" fill="none" stroke="currentColor" strokeWidth="1.2" width="16" height="12">
      <path d="M1 6h13M9 1l5 5-5 5" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
  proAdmin: () => (
    <svg viewBox="0 0 40 40" fill="none" stroke="currentColor" strokeWidth="1.3">
      <rect x="8" y="6" width="24" height="30" rx="1"/>
      <path d="M14 14h12M14 20h12M14 26h8" strokeLinecap="round"/>
    </svg>
  ),
  proLegal: () => (
    <svg viewBox="0 0 40 40" fill="none" stroke="currentColor" strokeWidth="1.3">
      <path d="M20 6v4M12 14h16l-2 18H14L12 14zM8 14h24"/>
      <circle cx="20" cy="22" r="3"/>
    </svg>
  ),
  phone: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5">
      <path d="M5 4h4l2 5-3 2c1 3 3 5 6 6l2-3 5 2v4c0 1-1 2-2 2-9 0-16-7-16-16 0-1 1-2 2-2z" strokeLinejoin="round"/>
    </svg>
  ),
  mail: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5">
      <rect x="3" y="5" width="18" height="14" rx="1"/>
      <path d="M3 7l9 6 9-6"/>
    </svg>
  ),
  line: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5">
      <path d="M12 3c5.5 0 10 3.6 10 8 0 4.4-4.5 8-10 8-1 0-2-.1-2.9-.3L4 21l1.5-4.3C3.3 15.2 2 12.7 2 11c0-4.4 4.5-8 10-8z"/>
      <path d="M7 10v4M9 10l3 4v-4M14 14h2M14 12h2M14 10h2M18 10v4" strokeLinecap="round"/>
    </svg>
  ),
  check: () => (
    <svg viewBox="0 0 24 24" fill="none" stroke="white" strokeWidth="2">
      <path d="M5 12l5 5 9-10" strokeLinecap="round" strokeLinejoin="round"/>
    </svg>
  ),
};

window.Icons = Icons;
