/* Octomatica — brand logos (inline SVG). BrandLogo({name,size}) returns a square mark. */
const BRAND_NAMES = {
  telegram:"Telegram", github:"GitHub", google:"Google", vercel:"Vercel", docker:"Docker",
  gumroad:"Gumroad", notion:"Notion", slack:"Slack", whatsapp:"WhatsApp", max:"MAX",
  discord:"Discord", gdrive:"Google Drive", gdocs:"Google Docs", gsheets:"Google Sheets",
  blender:"Blender", ozon:"Ozon", wildberries:"Wildberries", playwright:"Playwright", web:"Веб",
};

function BrandLogo({ name, size = 26 }) {
  const sv = (children, vb = "0 0 24 24") => (
    <svg width={size} height={size} viewBox={vb} fill="none" aria-hidden="true" style={{ display:"block" }}>{children}</svg>
  );
  const tileText = (bg, txt, fg = "#fff", fs = 11) => sv(<>
    <rect width="24" height="24" rx="6" fill={bg} />
    <text x="12" y="12" dominantBaseline="central" textAnchor="middle" fontFamily="Geologica, system-ui, sans-serif" fontWeight="800" fontSize={fs} fill={fg}>{txt}</text>
  </>);

  switch (name) {
    case "telegram": return sv(<>
      <circle cx="12" cy="12" r="12" fill="#229ED9" />
      <path fill="#fff" d="M5.6 11.8 16.4 7.1c.5-.2 1 .1.84.86l-1.85 8.62c-.13.6-.5.74-.99.46l-2.7-2-1.3 1.25c-.15.14-.27.26-.55.26l.2-2.78 5.05-4.56c.22-.19-.05-.3-.34-.11l-6.24 3.92-2.69-.84c-.58-.18-.6-.58.13-.86z" />
    </>);
    case "github": return sv(<path fill="var(--ink)" d="M12 .3a12 12 0 0 0-3.8 23.4c.6.1.82-.26.82-.58v-2c-3.34.72-4.04-1.6-4.04-1.6-.55-1.4-1.34-1.77-1.34-1.77-1.08-.74.09-.73.09-.73 1.2.08 1.83 1.23 1.83 1.23 1.07 1.83 2.8 1.3 3.49 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.11-3.18 0 0 1.01-.32 3.3 1.23a11.5 11.5 0 0 1 6.01 0c2.29-1.55 3.3-1.23 3.3-1.23.66 1.66.25 2.88.12 3.18.78.84 1.24 1.91 1.24 3.22 0 4.61-2.8 5.63-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.21.69.82.57A12 12 0 0 0 12 .3" />);
    case "google": return sv(<>
      <path fill="#4285F4" d="M23.5 12.27c0-.82-.07-1.6-.2-2.36H12v4.47h6.46a5.5 5.5 0 0 1-2.4 3.62v3h3.88c2.27-2.1 3.56-5.18 3.56-8.73z" />
      <path fill="#34A853" d="M12 24c3.24 0 5.96-1.08 7.94-2.9l-3.88-3c-1.08.72-2.45 1.16-4.06 1.16-3.12 0-5.77-2.11-6.71-4.94H1.28v3.09A12 12 0 0 0 12 24z" />
      <path fill="#FBBC05" d="M5.29 14.32a7.2 7.2 0 0 1 0-4.61V6.62H1.28a12 12 0 0 0 0 10.78z" />
      <path fill="#EA4335" d="M12 4.75c1.77 0 3.35.6 4.6 1.8l3.43-3.43A11.98 11.98 0 0 0 1.28 6.62l4.01 3.1C6.23 6.86 8.88 4.74 12 4.74z" />
    </>);
    case "vercel": return sv(<path fill="var(--ink)" d="M12 3 22.5 21H1.5z" />);
    case "docker": return sv(<path fill="#2496ED" d="M23.4 9.6c-.6-.42-2.05-.57-3.16-.36-.14-1-.7-1.88-1.7-2.66l-.57-.42-.38.6c-.5.74-.7 1.78-.6 2.66.04.32.18.9.5 1.4-.32.18-.92.42-1.7.42H.6c-.32 1.94.22 4.45 1.68 6.06C3.7 18.4 5.86 19.2 8.7 19.2c6.14 0 10.7-2.82 12.83-7.96 0 0 .04 0 .04 0 .84.02 2.62-.02 3.5-1.8l.32-.6zM3.6 8.04h2.1v2.1H3.6zm0-2.7h2.1v2.1H3.6zm2.84 2.7h2.1v2.1h-2.1zm0-2.7h2.1v2.1h-2.1zm2.84 2.7h2.1v2.1h-2.1zm0-2.7h2.1v2.1h-2.1zm2.84 2.7h2.1v2.1h-2.1zm0-2.7h2.1v2.1h-2.1zm2.84 2.7h2.1v2.1h-2.1z" />);
    case "notion": return sv(<>
      <rect width="24" height="24" rx="5" fill="var(--ink)" />
      <path fill="var(--surface)" d="M8 7.2v9.6h1.5V10l4.7 6.8H16V7.2h-1.5v6.6L9.9 7.2z" />
    </>);
    case "gumroad": return tileText("#FF90E8", "g", "#000", 14);
    case "slack": return sv(<>
      <path fill="#36C5F0" d="M5.1 15.2a2.1 2.1 0 1 1-2.1-2.1h2.1zM6.2 15.2a2.1 2.1 0 0 1 4.2 0v5.2a2.1 2.1 0 0 1-4.2 0z" />
      <path fill="#2EB67D" d="M8.8 5.1a2.1 2.1 0 1 1 2.1-2.1v2.1zM8.8 6.2a2.1 2.1 0 0 1 0 4.2H3.6a2.1 2.1 0 0 1 0-4.2z" />
      <path fill="#ECB22E" d="M18.9 8.8a2.1 2.1 0 1 1 2.1 2.1h-2.1zM17.8 8.8a2.1 2.1 0 0 1-4.2 0V3.6a2.1 2.1 0 0 1 4.2 0z" />
      <path fill="#E01E5A" d="M15.2 18.9a2.1 2.1 0 1 1-2.1 2.1v-2.1zM15.2 17.8a2.1 2.1 0 0 1 0-4.2h5.2a2.1 2.1 0 0 1 0 4.2z" />
    </>);
    case "whatsapp": return sv(<>
      <circle cx="12" cy="12" r="12" fill="#25D366" />
      <path fill="#fff" d="M12 5.4a6.5 6.5 0 0 0-5.6 9.8L5.4 18.6l3.5-1a6.5 6.5 0 1 0 3.1-12.2zm0 1.7a4.8 4.8 0 1 1-2.5 8.9l-.3-.2-2 .6.6-2-.2-.3A4.8 4.8 0 0 1 12 7zm-1.9 2.3c-.1 0-.3 0-.4.2-.2.2-.6.6-.6 1.4s.6 1.6.7 1.7c0 .1 1.1 1.8 2.8 2.4 1.4.5 1.7.4 2 .4.4 0 1-.4 1.2-.9.1-.4.1-.8.1-.9l-.5-.2-1.1-.6c-.2 0-.3 0-.4.1l-.5.7c-.1.1-.2.1-.4 0a3.9 3.9 0 0 1-1.9-1.7c-.1-.2 0-.3.1-.4l.3-.4.2-.4v-.3l-.6-1.3c-.1-.4-.3-.3-.4-.3z" />
    </>);
    case "max": return sv(<>
      <defs><linearGradient id="lg-max" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stopColor="#3D8BFF" /><stop offset="1" stopColor="#7A4DFF" /></linearGradient></defs>
      <rect width="24" height="24" rx="6" fill="url(#lg-max)" />
      <text x="12" y="12" dominantBaseline="central" textAnchor="middle" fontFamily="Geologica, system-ui, sans-serif" fontWeight="800" fontSize="9" fill="#fff">MAX</text>
    </>);
    case "discord": return sv(<>
      <rect width="24" height="24" rx="6" fill="#5865F2" />
      <path fill="#fff" d="M17.5 7.1a12 12 0 0 0-3-1l-.2.4a11 11 0 0 1 2.6.9 9.6 9.6 0 0 0-8 0 11 11 0 0 1 2.7-.9l-.2-.4a12 12 0 0 0-3 1A13 13 0 0 0 4.7 16a12 12 0 0 0 3.7 1.9l.4-.7c-.5-.2-1-.4-1.4-.7l.3-.2a8.6 8.6 0 0 0 7.3 0l.3.2c-.5.3-1 .5-1.4.7l.4.7a12 12 0 0 0 3.7-1.9 13 13 0 0 0-2.2-8.9zM9.6 14.2c-.7 0-1.3-.7-1.3-1.5s.6-1.5 1.3-1.5 1.3.7 1.3 1.5-.6 1.5-1.3 1.5zm4.8 0c-.7 0-1.3-.7-1.3-1.5s.6-1.5 1.3-1.5 1.3.7 1.3 1.5-.6 1.5-1.3 1.5z" />
    </>);
    case "gdocs": return sv(<>
      <path fill="#4285F4" d="M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z" />
      <path fill="#A8C7FA" d="M14 2l5 5h-5z" />
      <g fill="#fff"><rect x="7.5" y="11" width="9" height="1.3" rx=".65" /><rect x="7.5" y="13.8" width="9" height="1.3" rx=".65" /><rect x="7.5" y="16.6" width="6" height="1.3" rx=".65" /></g>
    </>);
    case "gsheets": return sv(<>
      <path fill="#0F9D58" d="M6 2h8l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z" />
      <path fill="#87CEAC" d="M14 2l5 5h-5z" />
      <g fill="#fff"><rect x="7.5" y="11" width="9" height="6.5" rx="1" /></g>
      <g stroke="#0F9D58" strokeWidth="1"><path d="M7.5 13.2h9M7.5 15.4h9M10.5 11v6.5M13.5 11v6.5" /></g>
    </>);
    case "gdrive": return sv(<>
      <path fill="#FFCF63" d="M9 3h6l7 12.1h-6z" />
      <path fill="#11A861" d="M9 3 2 15.1l3 5.2 7-12.1z" />
      <path fill="#5695F6" d="M5 20.3 8.5 14.2H22l-3.5 6.1z" />
    </>);
    case "blender": return sv(<>
      <circle cx="12" cy="12" r="10" fill="#EA7600" />
      <circle cx="14" cy="11.5" r="4.3" fill="#fff" />
      <circle cx="14.4" cy="11.7" r="2.1" fill="#265787" />
      <path fill="#265787" d="M5.5 15.5c1-2 4-3 6.5-2.3-1.5 1.4-4.2 2-6.5 2.3z" />
    </>);
    case "ozon": return tileText("#005BFF", "OZ", "#fff", 9);
    case "wildberries": return sv(<>
      <defs><linearGradient id="lg-wb" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stopColor="#CB11AB" /><stop offset="1" stopColor="#481173" /></linearGradient></defs>
      <rect width="24" height="24" rx="6" fill="url(#lg-wb)" />
      <text x="12" y="12" dominantBaseline="central" textAnchor="middle" fontFamily="Geologica, system-ui, sans-serif" fontWeight="800" fontSize="9" fill="#fff">WB</text>
    </>);
    case "playwright": return sv(<>
      <rect width="24" height="24" rx="6" fill="#2D3C46" />
      <circle cx="9" cy="10" r="1.8" fill="#FF4081" />
      <circle cx="15" cy="10" r="1.8" fill="#45BA4B" />
      <path d="M7.8 15c1.6 1.6 6.8 1.6 8.4 0" stroke="#E2574C" strokeWidth="1.5" strokeLinecap="round" fill="none" />
    </>);
    case "web": return sv(<>
      <circle cx="12" cy="12" r="9.2" stroke="var(--accent)" strokeWidth="1.6" />
      <path stroke="var(--accent)" strokeWidth="1.6" d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18" />
    </>);
    default: return sv(<rect width="24" height="24" rx="6" fill="var(--line-2)" />);
  }
}

Object.assign(window, { BrandLogo, BRAND_NAMES });
