Response:
```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "businessType": "drainage_specialist",
    "theme": "modern_trade"
  },
  "colors": {
    "primary": {
      "name": "Deep Ocean",
      "hex": "#0D4F6C",
      "usage": "Header background, primary buttons, icon fills"
    },
    "secondary": {
      "name": "Storm Grey",
      "hex": "#2D3748",
      "usage": "Body text, borders, secondary elements"
    },
    "accent": {
      "name": "Safety Orange",
      "hex": "#F6993F",
      "usage": "CTA buttons, notifications, highlights"
    },
    "surface": {
      "name": "Pure White",
      "hex": "#FFFFFF",
      "usage": "Widget background, card surfaces"
    },
    "surfaceAlt": {
      "name": "Light Mist",
      "hex": "#F7FAFC",
      "usage": "Message bubbles (received), input backgrounds"
    },
    "success": {
      "name": "Job Done Green",
      "hex": "#38A169",
      "usage": "Success states, booking confirmations"
    },
    "error": {
      "name": "Alert Red",
      "hex": "#E53E3E",
      "usage": "Error states, urgent notifications"
    },
    "muted": {
      "name": "Slate",
      "hex": "#718096",
      "usage": "Timestamps, secondary labels, placeholders"
    }
  },
  "position": {
    "desktop": {
      "position": "bottom-right",
      "bottom": "24px",
      "right": "24px",
      "reasoning": "Standard position for call-to-action widgets; bottom-right follows natural eye movement patterns for right-to-left readers, and keeps the widget away from main content while remaining easily discoverable"
    },
    "mobile": {
      "position": "bottom-right",
      "bottom": "16px",
      "right": "16px",
      "reasoning": "Mobile thumb zone optimization; larger touch targets are easier to reach with one hand"
    },
    "zIndex": "9999",
    "respectsStickyHeaders": true,
    "respectsStickyFooters": true
  },
  "dimensions": {
    "desktop": {
      "collapsed": {
        "width": "64px",
        "height": "64px"
      },
      "expanded": {
        "width": "380px",
        "height": "520px",
        "maxHeight": "calc(100vh - 48px)"
      }
    },
    "mobile": {
      "collapsed": {
        "width": "56px",
        "height": "56px"
      },
      "expanded": {
        "width": "100vw",
        "height": "calc(100vh - 80px)",
        "bottom": "0",
        "right": "0",
        "left": "0",
        "position": "fixed",
        "borderRadius": "16px 16px 0 0"
      }
    },
    "borderRadius": {
      "collapsed": "50%",
      "expanded": "16px",
      "messageBubble": "16px",
      "input": "8px"
    }
  },
  "avatar": {
    "type": "icon",
    "iconName": "headset-microphone",
    "style": "outlined",
    "size": {
      "collapsed": "28px",
      "header": "36px"
    },
    "color": "#FFFFFF",
    "backgroundColor": "transparent",
    "description": "Single-line headset with microphone icon representing a professional call handler. Clean line work suggests modern technology without appearing robotic. The headset implies 'someone's there' rather than a chatbot feel."
  },
  "welcomeMessage": {
    "text": "G'day! 👋 This is your drainage AI assistant. I can book a job, check your availability, or pass you through to the team. What do you need?",
    "voiceGreeting": "G'day, this is your drainage assistant. I can book a job, check availability, or connect you to the team. What do you need?",
    "language": "en-AU",
    "showImmediately": false,
    "delayMs": 2000,
    "triggerOnScroll": true,
    "scrollDepth": 40
  },
  "animations": {
    "entry": {
      "type": "scale-bounce",
      "duration": "400ms",
      "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
      "description": "Widget icon pops in with a subtle bounce, suggesting approachability and energy"
    },
    "idle": {
      "type": "gentle-float",
      "duration": "3s",
      "easing": "ease-in-out",
      "translateY": "4px",
      "loop": true,
      "pauseOnHover": true,
      "description": "When collapsed, the icon gently floats up and down to draw attention without being distracting"
    },
    "notification": {
      "type": "pulse-ring",
      "duration": "2s",
      "easing": "ease-out",
      "iterationCount": 3,
      "ringColor": "#F6993F",
      "ringOpacity": "0.6",
      "description": "Orange ring expands outward from the icon, creating a subtle 'something's happening' cue"
    },
    "messageAppear": {
      "type": "slide-up-fade",
      "duration": "300ms",
      "easing": "ease-out",
      "staggerMs": 80,
      "description": "Messages slide up with a slight fade-in, creating a smooth conversation flow"
    },
    "buttonHover": {
      "type": "lift",
      "duration": "200ms",
      "easing": "ease-out",
      "translateY": "-2px",
      "shadowIncrease": "0 4px 12px rgba(0,0,0,0.15)",
      "description": "Buttons lift slightly on hover with increased shadow, tactile feedback"
    }
  },
  "typography": {
    "fontFamily": {
      "primary": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
      "monospace": "'JetBrains Mono', 'Fira Code', monospace"
    },
    "sizes": {
      "headerTitle": {
        "desktop": "18px",
        "mobile": "17px",
        "weight": "600",
        "lineHeight": "1.3"
      },
      "headerSubtitle": {
        "desktop": "13px",
        "mobile": "12px",
        "weight": "400",
        "lineHeight": "1.4"
      },
      "messageBody": {
        "desktop": "15px",
        "mobile": "14px",
        "weight": "400",
        "lineHeight": "1.5"
      },
      "buttonText": {
        "desktop": "14px",
        "mobile": "14px",
        "weight": "600",
        "lineHeight": "1"
      },
      "caption": {
        "desktop": "11px",
        "mobile": "11px",
        "weight": "500",
        "lineHeight": "1.4"
      },
      "input": {
        "desktop": "15px",
        "mobile": "16px",
        "weight": "400",
        "lineHeight": "1.5"
      }
    },
    "letterSpacing": {
      "header": "0",
      "body": "0",
      "button": "0.3px",
      "caption": "0.5px"
    }
  },
  "buttons": {
    "primary": {
      "background": "#F6993F",
      "backgroundHover": "#ED8936",
      "backgroundActive": "#DD6B20",
      "text": "#FFFFFF",
      "border": "none",
      "borderRadius": "8px",
      "padding": {
        "desktop": "12px 20px",
        "mobile": "14px 24px"
      },
      "shadow": "0 2px 8px rgba(246, 153, 63, 0.3)",
      "shadowHover": "0 4px 12px rgba(246, 153, 63, 0.4)",
      "transition": "all 200ms ease"
    },
    "secondary": {
      "background": "#0D4F6C",
      "backgroundHover": "#0A3D55",
      "backgroundActive": "#082F40",
      "text": "#FFFFFF",
      "border": "none",
      "borderRadius": "8px",
      "padding": {
        "desktop": "12px 20px",
        "mobile": "14px 24px"
      },
      "shadow": "none",
      "shadowHover": "0 2px 8px rgba(13, 79, 108, 0.2)",
      "transition": "all 200ms ease"
    },
    "ghost": {
      "background": "transparent",
      "backgroundHover": "#F7FAFC",
      "text": "#0D4F6C",
      "border": "1px solid #E2E8F0",
      "borderRadius": "8px",
      "padding": {
        "desktop": "10px 16px",
        "mobile": "12px 20px"
      },
      "transition": "all 200ms ease"
    },
    "quickReply": {
      "background": "#F7FAFC",
      "backgroundHover": "#EDF2F7",
      "text": "#2D3748",
      "border": "1px solid #E2E8F0",
      "borderRadius": "20px",
      "padding": {
        "desktop": "8px 16px",
        "mobile": "10px 18px"
      },
      "fontSize": "13px",
      "transition": "all 200ms ease"
    }
  },
  "darkMode": {
    "enabled": true,
    "autoDetect": true,
    "manualToggle": true,
    "colors": {
      "surface": "#1A202C",
      "surfaceAlt": "#2D3748",
      "primary": "#81E6D9",
      "secondary": "#E2E8F0",
      "accent": "#F6AD55",
      "muted": "#A0AEC0",
      "border": "#4A5568"
    },
    "typography": {
      "headerTitle": "#F7FAFC",
      "headerSubtitle": "#A0AEC0",
      "messageBody": "#E2E8F0",
      "caption": "#718096"
    },
    "shadows": {
      "container": "0 4px 24px rgba(0, 0, 0, 0.4)",
      "button": "0 2px 8px rgba(0, 0, 0, 0.3)"
    },
    "messageBubbles": {
      "sent": "#0D4F6C",
      "received": "#2D3748"
    }
  },
  "industrySpecific": {
    "drainageSpecialist": {
      "quickReplyOptions": [
        "🚿 Blocked drain",
        "🚽 Blocked toilet",
        "📋 Get a quote",
        "📅 Book a service"
      ],
      "serviceCategories": [
        "Blocked drains",
        "CCTV drain camera",
        "Pipe relining",
        "Stormwater",
        "Septic systems",
        "Emergency drainage"
      ],
      "businessHours": {
        "defaultMessage": "We're currently closed. Need emergency drainage? Say 'emergency' or leave your number.",
        "emergencyKeyword": "emergency",
        "afterHoursRouting": "voicemail"
      },
      "locationContext": {
        "suburbPrompt": "What suburb are you in?",
        "commonAreas": [
          "Northern suburbs",
          "Eastern suburbs",
          "Western suburbs",
          "Southern suburbs",
          "City & inner metro"
        ]
      },
      "bookingFlow": {
        "requiredFields": ["name", "phone", "suburb", "serviceType"],
        "optionalFields": ["address", "preferredDate", "description"],
        "confirmationMessage": "Sorted! We've booked you in. You'll get a text confirmation shortly. The team will call you if they need more details."
      },
      "iconography": {
        "collapsedIcon": "drain-pipe",
        "expandedHeader": "water-drop",
        "serviceIcons": {
          "blocked_drain": "pipe-blocked",
          "cctv": "camera",
          "relining": "pipe-repair",
          "emergency": "warning"
        }
      },
      "localisedPhrases": [
        "no worries",
        "sorted",
        "chuck us a",
        "have a look",
        "get sorted"
      ],
      "truckImagery": {
        "showInHeader": false,
        "description": "Drainage specialist branding typically avoids vehicle imagery in chat widgets to maintain a clean, professional interface. The headset icon is preferred for clarity."
      }
    }
  },
  "cssCustomProperties": {
    "--sunaiva-primary": "#0D4F6C",
    "--sunaiva-secondary": "#2D3748",
    "--sunaiva-accent": "#F6993F",
    "--sunaiva-surface": "#FFFFFF",
    "--sunaiva-surface-alt": "#F7FAFC",
    "--sunaiva-success": "#38A169",
    "--sunaiva-error": "#E53E3E",
    "--sunaiva-muted": "#718096",
    "--sunaiva-border": "#E2E8F0",
    "--sunaiva-shadow": "0 4px 16px rgba(0, 0, 0, 0.08)",
    "--sunaiva-shadow-hover": "0 8px 24px rgba(0, 0, 0, 0.12)",
    "--sunaiva-font-primary": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
    "--sunaiva-font-mono": "'JetBrains Mono', 'Fira Code', monospace",
    "--sunaiva-radius-sm": "8px",
    "--sunaiva-radius-md": "12px",
    "--sunaiva-radius-lg": "16px",
    "--sunaiva-radius-full": "9999px",
    "--sunaiva-transition-fast": "150ms ease",
    "--sunaiva-transition-normal": "250ms ease",
    "--sunaiva-transition-slow": "400ms ease",
    "--sunaiva-z-index": "9999",
    "--sunaiva-spacing-xs": "4px",
    "--sunaiva-spacing-sm": "8px",
    "--sunaiva-spacing-md": "16px",
    "--sunaiva-spacing-lg": "24px",
    "--sunaiva-spacing-xl": "32px"
  },
  "accessibility": {
    "ariaLabel": "Chat with your drainage assistant",
    "ariaExpanded": "false",
    "role": "button",
    "tabIndex": 0,
    "keyboardNavigation": {
      "openWidget": ["Enter", "Space"],
      "closeWidget": ["Escape"],
      "navigateMessages": ["ArrowUp", "ArrowDown"],
      "submitMessage": ["Enter"]
    },
    "focusVisible": {
      "outline": "2px solid #F6993F",
      "outlineOffset": "2px"
    },
    "screenReaderAnnouncements": true,
    "reducedMotion": {
      "enabled": true,
      "preference": "respect"
    }
  },
  "responsiveBreakpoints": {
    "mobile": "480px",
    "tablet": "768px",
    "desktop": "1024px"
  },
  "behavior": {
    "autoOpenOnExitIntent": false,
    "autoOpenOnPageLoad": false,
    "autoOpenDelay": 0,
    "showTypingIndicator": true,
    "typingIndicatorDelay": 400,
    "messageHistoryVisible": 10,
    "persistConversation": true,
    "clearConversationOnPageUnload": false,
    "soundEnabled": false,
    "notificationBadge": {
      "show": true,
      "count": 0,
      "maxDisplay": 9,
      "overflowText": "9+"
    }
  },
  "integration": {
    "widgetId": "drainage-specialist-[business-id]",
    "analytics": {
      "trackEvents": true,
      "trackConversions": true,
      "trackSource": true
    },
    "conversationalFlow": "drainage_standard",
    "fallbackBehavior": {
      "action": "transfer_to_phone",
      "phoneNumber": "[BUSINESS_PHONE]",
      "voicemailPrompt": "Leave a message and we'll call you back"
    }
  }
}
```

This configuration includes everything needed to render a production-ready Sunaiva widget for a drainage specialist. The colour palette uses deep ocean blue as the professional base with safety orange accents — matching typical drainage/ plumbing trade branding. The quick replies are pre-configured for common drainage jobs (blocked drains, toilets, quotes, bookings), and the welcome message uses natural Australian phrasing. Dark mode automatically detects system preferences and inverts the palette accordingly.


Response:
```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "businessType": "flooring_installer",
    "locale": "en-AU"
  },
  "colorScheme": {
    "primary": {
      "name": "Timber Brown",
      "hex": "#8B5A2B",
      "rgb": "rgb(139, 90, 43)",
      "usage": "Headers, primary buttons, avatar background"
    },
    "secondary": {
      "name": "Warm Cream",
      "hex": "#F5F0E6",
      "rgb": "rgb(245, 240, 230)",
      "usage": "Widget background, card surfaces"
    },
    "accent": {
      "name": "Tool Orange",
      "hex": "#E85D04",
      "rgb": "rgb(232, 93, 4)",
      "usage": "CTAs, notification badges, highlights"
    },
    "text": {
      "primary": "#2D2416",
      "secondary": "#5C4D3C",
      "muted": "#8B7355"
    },
    "success": "#2D6A4F",
    "error": "#D62828"
  },
  "position": {
    "placement": "bottom-right",
    "offset": {
      "desktop": { "x": 24, "y": 24 },
      "mobile": { "x": 16, "y": 16 }
    },
    "reasoning": "Bottom-right placement follows established UX patterns for chat widgets. Australian users expect this position. Allows visibility without obstructing main content. On mobile, sits above the fold with safe area padding."
  },
  "dimensions": {
    "expanded": {
      "desktop": {
        "width": 380,
        "height": 520,
        "maxHeight": "calc(100vh - 120px)"
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "height": "calc(100vh - 100px)",
        "maxHeight": 600
      }
    },
    "collapsed": {
      "size": 64,
      "borderRadius": 32
    }
  },
  "avatar": {
    "style": "friendly_professional",
    "description": "A smiling Australian tradie with a relaxed but professional appearance. Mid-30s, wearing a branded polo shirt in the business colours. Short neat hair, friendly eyes. The avatar should look approachable - like someone you'd trust in your home.",
    "iconFallback": {
      "type": "custom_icon",
      "iconName": "flooring_measure",
      "description": "Stylized floorboard plank with measuring tape element, or a tape measure icon with timber grain texture"
    },
    "size": {
      "collapsed": 64,
      "expanded": 56
    },
    "showBadge": true,
    "badgeColor": "#E85D04",
    "badgeText": "AI"
  },
  "welcomeMessage": {
    "voice": "text_to_speech",
    "greeting": "G'day! I'm your flooring assistant. I can help you book a quote, answer questions about timber, laminate, or vinyl, or get you straight through to the team.",
    "quickReplies": [
      "Get a free quote",
      "What do you install?",
      "Speak to a tradie",
      "View our portfolio"
    ],
    "localised": true,
    "timezone": "Australia/Brisbane"
  },
  "animations": {
    "entry": {
      "type": "slide_fade",
      "direction": "up",
      "duration": 400,
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "delay": 800
    },
    "idle": {
      "type": "subtle_bounce",
      "interval": 5000,
      "scaleRange": [1, 1.03],
      "duration": 2000
    },
    "notification": {
      "type": "pulse_ring",
      "color": "#E85D04",
      "duration": 1500,
      "repeat": 3,
      "scale": 1.2
    },
    "microInteractions": {
      "buttonHover": "scale(1.02)",
      "buttonPress": "scale(0.98)",
      "cardHover": "translateY(-2px)"
    }
  },
  "typography": {
    "fontFamily": "'Nunito', 'Segoe UI', system-ui, sans-serif",
    "fallback": "system-ui, -apple-system, sans-serif",
    "sizes": {
      "header": {
        "fontSize": "1.25rem",
        "fontWeight": 700,
        "lineHeight": 1.3
      },
      "body": {
        "fontSize": "0.9375rem",
        "fontWeight": 400,
        "lineHeight": 1.5
      },
      "caption": {
        "fontSize": "0.8125rem",
        "fontWeight": 400,
        "lineHeight": 1.4
      },
      "button": {
        "fontSize": "0.9375rem",
        "fontWeight": 600,
        "lineHeight": 1
      }
    },
    "letterSpacing": {
      "normal": "0",
      "tight": "-0.01em"
    }
  },
  "buttons": {
    "primary": {
      "background": "#E85D04",
      "backgroundHover": "#D04D00",
      "color": "#FFFFFF",
      "border": "none",
      "borderRadius": 12,
      "padding": "14px 24px",
      "shadow": "0 4px 12px rgba(232, 93, 4, 0.3)",
      "shadowHover": "0 6px 16px rgba(232, 93, 4, 0.4)"
    },
    "secondary": {
      "background": "#F5F0E6",
      "backgroundHover": "#EBE4D6",
      "color": "#2D2416",
      "border": "2px solid #8B5A2B",
      "borderRadius": 12,
      "padding": "12px 22px"
    },
    "quickReply": {
      "background": "#FFFFFF",
      "backgroundHover": "#F5F0E6",
      "color": "#2D2416",
      "border": "1px solid #DDD5C7",
      "borderRadius": 20,
      "padding": "10px 16px",
      "fontSize": "0.875rem"
    },
    "iconButton": {
      "background": "#FFFFFF",
      "color": "#8B5A2B",
      "border": "none",
      "borderRadius": 8,
      "size": 40
    }
  },
  "darkMode": {
    "enabled": true,
    "colors": {
      "background": "#1A1612",
      "surface": "#2D2416",
      "text": {
        "primary": "#F5F0E6",
        "secondary": "#C4B8A8",
        "muted": "#8B7355"
      },
      "accent": "#FF7B00",
      "border": "#3D3228"
    },
    "overrideAuto": false,
    "respectSystemPreference": true
  },
  "industrySpecific": {
    "flooringInstaller": {
      "heroPattern": {
        "type": "floorboard_subtle",
        "color": "#8B5A2B",
        "opacity": 0.06,
        "description": "Faint horizontal lines mimicking timber floorboard gaps"
      },
      "brandingElements": {
        "icons": ["floorboard", "tape_measure", "hammer", "saw"],
        "accentShapes": ["plank_outline", "diamond_hazard"]
      },
      "specialistPrompts": [
        "Timber flooring quotes",
        "Laminate vs vinyl",
        "Floor sanding & polishing",
        "Measure & quote",
        "Same-day emergency repair"
      ],
      "serviceAreas": {
        "display": true,
        "format": "suburb_tags",
        "example": ["Brisbane", "Gold Coast", "Ipswich", "Moreton Bay"]
      },
      "trustSignals": {
        "showLicence": true,
        "licenceLabel": "QBCC Licensed",
        "showWarranty": true,
        "warrantyText": "5-Year Installation Warranty",
        "showInsurance": true
      },
      "visualEasterEgg": {
        "trigger": "show_floors",
        "effect": "floorboard_pattern_animation",
        "description": "Hidden command reveals animated floorboard installation graphic"
      }
    }
  },
  "cssCustomProperties": {
    "--sunaiva-primary": "#8B5A2B",
    "--sunaiva-primary-light": "#A67B5B",
    "--sunaiva-primary-dark": "#6B4423",
    "--sunaiva-secondary": "#F5F0E6",
    "--sunaiva-secondary-dark": "#EBE4D6",
    "--sunaiva-accent": "#E85D04",
    "--sunaiva-accent-hover": "#D04D00",
    "--sunaiva-text-primary": "#2D2416",
    "--sunaiva-text-secondary": "#5C4D3C",
    "--sunaiva-text-muted": "#8B7355",
    "--sunaiva-success": "#2D6A4F",
    "--sunaiva-error": "#D62828",
    "--sunaiva-border": "#DDD5C7",
    "--sunaiva-shadow": "rgba(45, 36, 22, 0.12)",
    "--sunaiva-shadow-strong": "rgba(45, 36, 22, 0.2)",
    "--sunaiva-radius-sm": "8px",
    "--sunaiva-radius-md": "12px",
    "--sunaiva-radius-lg": "16px",
    "--sunaiva-radius-full": "9999px",
    "--sunaiva-font": "'Nunito', system-ui, sans-serif",
    "--sunaiva-transition-fast": "150ms ease",
    "--sunaiva-transition-normal": "250ms ease",
    "--sunaiva-transition-slow": "400ms cubic-bezier(0.34, 1.56, 0.64, 1)",
    "--sunaiva-z-index": "9999",
    "--sunaiva-spacing-xs": "4px",
    "--sunaiva-spacing-sm": "8px",
    "--sunaiva-spacing-md": "16px",
    "--sunaiva-spacing-lg": "24px",
    "--sunaiva-spacing-xl": "32px"
  },
  "darkModeCssProperties": {
    "--sunaiva-primary": "#A67B5B",
    "--sunaiva-primary-light": "#C49A7A",
    "--sunaiva-primary-dark": "#8B5A2B",
    "--sunaiva-secondary": "#2D2416",
    "--sunaiva-secondary-dark": "#3D3228",
    "--sunaiva-accent": "#FF7B00",
    "--sunaiva-accent-hover": "#FF8F33",
    "--sunaiva-text-primary": "#F5F0E6",
    "--sunaiva-text-secondary": "#C4B8A8",
    "--sunaiva-text-muted": "#8B7355",
    "--sunaiva-border": "#3D3228",
    "--sunaiva-shadow": "rgba(0, 0, 0, 0.3)",
    "--sunaiva-shadow-strong": "rgba(0, 0, 0, 0.5)"
  }
}
```

---

## Usage Notes

**CSS Implementation:**
```css
/* Base widget styles */
.sunaiva-widget {
  --primary: var(--sunaiva-primary);
  --secondary: var(--sunaiva-secondary);
  --accent: var(--sunaiva-accent);
  font-family: var(--sunaiva-font);
  border-radius: var(--sunaiva-radius-lg);
  /* ... rest of base styles */
}

/* Auto dark mode support */
@media (prefers-color-scheme: dark) {
  .sunaiva-widget {
    --primary: var(--sunaiva-dark-mode-primary);
    /* ... dark mode overrides */
  }
}
```

**Key Design Decisions Explained:**

1. **Timber Brown (#8B5A2B)** — Matches actual timber floor tones; feels authentic to the flooring industry
2. **Tool Orange (#E85D04)** — Draws from Makita/DeWalt tradie tool colours; creates urgency without being aggressive
3. **Nunito Font** — Friendly, rounded sans-serif that feels approachable but professional; works well for "matey" Australian tone
4. **Quick Reply Buttons** — Pre-set with flooring-specific options that save users typing
5. **QBCC & Warranty Display** — Critical trust signals for Australian tradies; builds credibility
6. **Floorboard Subtle Pattern** — Industry texture that reinforces the business type without being distracting


Response:
```json
{
  "widget": {
    "id": "garage-door-installer-v1",
    "version": "1.0.0",
    "industry": "garage_door_installation",
    "businessType": "trade_services"
  },

  "colorScheme": {
    "primary": {
      "name": "Midnight Steel",
      "hex": "#1a2744",
      "rgb": "26, 39, 68",
      "usage": "Widget header background, primary buttons"
    },
    "secondary": {
      "name": "Galvanised Grey",
      "hex": "#64748b",
      "rgb": "100, 116, 139",
      "usage": "Body text, secondary elements, borders"
    },
    "accent": {
      "name": "Safety Orange",
      "hex": "#f97316",
      "rgb": "249, 115, 22",
      "usage": "CTA buttons, notification badges, highlights"
    },
    "background": {
      "light": "#f8fafc",
      "dark": "#0f172a"
    },
    "surface": {
      "light": "#ffffff",
      "dark": "#1e293b"
    },
    "text": {
      "light": "#1e293b",
      "dark": "#f1f5f9"
    },
    "success": "#22c55e",
    "error": "#ef4444"
  },

  "position": {
    "primary": {
      "corner": "bottom-right",
      "offset": {
        "x": 24,
        "y": 24
      },
      "reasoning": "Bottom-right follows natural eye-scanning patterns (F-pattern) where call-to-action elements are expected. Keeps widget away from navigation but visible without obstructing key content. Matches conversion optimization best practices for Australian trade businesses."
    },
    "mobile": {
      "corner": "bottom-center",
      "offset": {
        "x": 0,
        "y": 16
      },
      "reasoning": "Mobile users thumb-zone optimized. Full-width button at bottom ensures easy tap access while maintaining visibility above fold."
    },
    "responsiveBreakpoint": 768
  },

  "dimensions": {
    "launcher": {
      "width": 64,
      "height": 64,
      "borderRadius": 16
    },
    "launcherMobile": {
      "width": 56,
      "height": 56,
      "borderRadius": 14
    },
    "window": {
      "width": 400,
      "height": 600,
      "maxHeight": "calc(100vh - 120px)",
      "borderRadius": 16,
      "borderWidth": 1
    },
    "windowMobile": {
      "width": "calc(100vw - 32px)",
      "height": "calc(100vh - 100px)",
      "maxHeight": 700,
      "borderRadius": 20,
      "borderWidth": 1
    },
    "header": {
      "height": 72,
      "avatarSize": 48
    },
    "inputArea": {
      "height": 80,
      "padding": 16
    },
    "messageBubble": {
      "maxWidth": "85%",
      "padding": "12px 16px",
      "borderRadius": 16,
      "borderRadiusBot": 4
    }
  },

  "avatar": {
    "type": "icon",
    "iconName": "garage-door",
    "style": "outlined",
    "description": "Stylised sectional garage door icon with horizontal panels, depicted in flat design with subtle gradient indicating metallic finish. The icon features a characteristic 'windows' or 'panels' pattern that instantly communicates garage door to Australian homeowners.",
    "visualDetails": {
      "primaryColor": "var(--color-primary)",
      "accentColor": "var(--color-accent)",
      "background": "transparent",
      "strokeWidth": 2,
      "cornerRadius": 4
    },
    "fallbackType": "initials",
    "initials": "GD",
    "initialsBackground": "var(--color-primary)",
    "initialsColor": "#ffffff"
  },

  "welcomeMessage": {
    "primary": "G'day! 👋 Got a dodgy garage door? I can help you book a repair or get a quote for a new door.",
    "quickReplies": [
      "Book a repair",
      "Get a quote",
      "Service & maintenance",
      "Remote replacements"
    ],
    "voiceGreeting": "G'day mate! I'm here to help with your garage door. Need a repair booked, or want a quote for a new door?",
    "localisation": {
      "language": "en-AU",
      "spelling": "australian",
      "phraseology": "casual_trade"
    },
    "triggers": {
      "timeToDisplay": 3000,
      "scrollDepth": 25,
      "exitIntent": true
    }
  },

  "animations": {
    "entry": {
      "launcher": {
        "type": "scale-bounce",
        "duration": 400,
        "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
        "delay": 500
      },
      "window": {
        "type": "slide-fade-up",
        "duration": 300,
        "easing": "cubic-bezier(0.16, 1, 0.3, 1)",
        "distance": 20
      }
    },
    "idle": {
      "launcher": {
        "type": "subtle-pulse",
        "duration": 2000,
        "scale": 1.05,
        "opacityRange": [0.9, 1]
      },
      "attention": {
        "type": "gentle-bounce",
        "interval": 8000,
        "translateY": -4
      }
    },
    "notification": {
      "badge": {
        "type": "pulse-ring",
        "color": "var(--color-accent)",
        "scale": 1.5,
        "duration": 1500,
        "repeat": 3
      },
      "unread": {
        "type": "dot-indicator",
        "size": 12,
        "color": "var(--color-accent)",
        "position": "top-right"
      }
    },
    "messages": {
      "incoming": {
        "type": "slide-up-fade",
        "duration": 250,
        "stagger": 80
      },
      "outgoing": {
        "type": "fade",
        "duration": 150
      },
      "typing": {
        "type": "bounce-dots",
        "dotCount": 3,
        "dotSize": 8,
        "color": "var(--color-secondary)",
        "interval": 150
      }
    },
    "microInteractions": {
      "buttonHover": {
        "type": "lift",
        "translateY": -2,
        "shadowIncrease": 4,
        "duration": 150
      },
      "inputFocus": {
        "type": "border-glow",
        "color": "var(--color-accent)",
        "duration": 200
      }
    }
  },

  "typography": {
    "fontFamily": {
      "primary": "'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
      "monospace": "'JetBrains Mono', 'Fira Code', monospace"
    },
    "sizes": {
      "header": {
        "title": {
          "size": 18,
          "weight": 600,
          "lineHeight": 1.3
        },
        "subtitle": {
          "size": 13,
          "weight": 400,
          "lineHeight": 1.4
        }
      },
      "body": {
        "primary": {
          "size": 15,
          "weight": 400,
          "lineHeight": 1.5
        },
        "secondary": {
          "size": 14,
          "weight": 400,
          "lineHeight": 1.5
        }
      },
      "caption": {
        "size": 12,
        "weight": 500,
        "lineHeight": 1.4
      },
      "button": {
        "size": 15,
        "weight": 600,
        "lineHeight": 1
      },
      "input": {
        "size": 15,
        "weight": 400,
        "lineHeight": 1.5
      }
    },
    "weights": {
      "regular": 400,
      "medium": 500,
      "semibold": 600,
      "bold": 700
    },
    "letterSpacing": {
      "tight": "-0.02em",
      "normal": "0",
      "wide": "0.02em"
    }
  },

  "buttons": {
    "cta": {
      "primary": {
        "background": "var(--color-accent)",
        "color": "#ffffff",
        "border": "none",
        "borderRadius": 12,
        "padding": "14px 24px",
        "fontWeight": 600,
        "fontSize": 15,
        "shadow": "0 4px 12px rgba(249, 115, 22, 0.3)",
        "hover": {
          "background": "#ea580c",
          "shadow": "0 6px 20px rgba(249, 115, 22, 0.4)",
          "transform": "translateY(-2px)"
        },
        "active": {
          "background": "#c2410c",
          "transform": "translateY(0)"
        }
      },
      "secondary": {
        "background": "transparent",
        "color": "var(--color-primary)",
        "border": "2px solid var(--color-primary)",
        "borderRadius": 12,
        "padding": "12px 22px",
        "fontWeight": 600,
        "hover": {
          "background": "var(--color-primary)",
          "color": "#ffffff"
        }
      },
      "ghost": {
        "background": "rgba(26, 39, 44, 0.08)",
        "color": "var(--color-primary)",
        "border": "none",
        "borderRadius": 10,
        "padding": "10px 16px",
        "fontWeight": 500,
        "hover": {
          "background": "rgba(26, 39, 44, 0.12)"
        }
      }
    },
    "quickReply": {
      "background": "var(--color-surface)",
      "color": "var(--color-text)",
      "border": "1px solid rgba(100, 116, 139, 0.2)",
      "borderRadius": 20,
      "padding": "10px 16px",
      "fontSize": 14,
      "fontWeight": 500,
      "hover": {
        "background": "var(--color-primary)",
        "color": "#ffffff",
        "borderColor": "var(--color-primary)"
      },
      "selected": {
        "background": "var(--color-primary)",
        "color": "#ffffff",
        "borderColor": "var(--color-primary)"
      }
    },
    "icon": {
      "size": 24,
      "borderRadius": 8,
      "hoverBackground": "rgba(0, 0, 0, 0.05)",
      "activeBackground": "rgba(0, 0, 0, 0.1)"
    }
  },

  "darkMode": {
    "enabled": true,
    "autoDetect": true,
    "manualToggle": true,
    "preferences": {
      "colorScheme": "dark",
      "contrastLevel": "high"
    },
    "overrides": {
      "background": "#0f172a",
      "surface": "#1e293b",
      "text": "#f1f5f9",
      "textMuted": "#94a3b8",
      "border": "rgba(148, 163, 184, 0.15)",
      "headerGradient": "linear-gradient(135deg, #1e293b 0%, #0f172a 100%)"
    },
    "typography": {
      "bodyPrimary": "#f1f5f9",
      "bodySecondary": "#94a3b8",
      "caption": "#64748b"
    },
    "buttons": {
      "cta": {
        "primary": {
          "background": "var(--color-accent)",
          "color": "#ffffff",
          "shadow": "0 4px 20px rgba(249, 115, 22, 0.4)"
        }
      }
    },
    "icons": {
      "invert": true,
      "brightness": 1.1
    }
  },

  "industrySpecific": {
    "garageDoorInstaller": {
      "iconPack": "garage-doors",
      "specialisations": [
        "Sectional doors",
        "Roller doors",
        "Tilt doors",
        "Panel lift doors",
        "Commercial doors",
        "Automated openers"
      ],
      "services": [
        "New installations",
        "Repairs & servicing",
        "Remote & opener replacement",
        "Spring replacement",
        "Track realignment",
        "Door replacement"
      ],
      "commonQueries": [
        "How much for a new garage door?",
        "Can you fix my door today?",
        "Do you service my area?",
        "What brands do you sell?",
        "Need a remote reprogrammed"
      ],
      "bookingFlow": {
        "questions": [
          {
            "id": "service_type",
            "question": "What do you need help with?",
            "type": "quick_replies",
            "options": ["New door", "Repair", "Service", "Remote/opener"]
          },
          {
            "id": "door_type",
            "question": "What sort of door is it?",
            "type": "quick_replies",
            "options": ["Sectional", "Roller", "Tilt", "Not sure"]
          },
          {
            "id": "urgency",
            "question": "How urgent is it?",
            "type": "quick_replies",
            "options": ["ASAP", "This week", "Flexible"]
          },
          {
            "id": "address",
            "question": "What's your suburb?",
            "type": "text_input",
            "placeholder": "e.g. Moorabbin, VIC"
          },
          {
            "id": "name",
            "question": "Your name please?",
            "type": "text_input",
            "placeholder": "First name"
          },
          {
            "id": "phone",
            "question": "Best number to reach you?",
            "type": "phone_input",
            "placeholder": "04XX XXX XXX"
          }
        ],
        "confirmation": "Sorted! We'll text you shortly to confirm a time. Thanks for reaching out!"
      },
      "visualElements": {
        "headerPattern": "subtle-garage-panel-texture",
        "accentIcon": "garage-door-silhouette",
        "specialBadge": "licensed-insurer-verified"
      },
      "localisation": {
        "australianTerms": {
          "garage_door": "garage door",
          "roller_door": "roller door",
          "sectional_door": "sectional door",
          "opener": "garage remote",
          "repair": "fix",
          "quote": "quote",
          "service": "service"
        },
        "commonSuburbs": [
          "Eastern Suburbs",
          "Northern Suburbs",
          "Southern Suburbs",
          "Western Suburbs",
          "Brisbane North",
          "Gold Coast",
          "Perth Metro",
          "Adelaide Metro"
        ],
        "responsePhrases": {
          "booking_confirmed": "All sorted! We'll shoot you a text to lock in a time.",
          "quote_pending": "No worries, one of our team will give you a call with a quote.",
          "urgent_repair": "Got it — I'll flag this as urgent and we'll get someone out ASAP.",
          "after_hours": "Thanks for the message — we'll be back in


Response:
```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "businessType": "insulation_contractor",
    "country": "Australia"
  },
  "cssVariables": {
    "--sunaiva-primary": "#E67E22",
    "--sunaiva-primary-dark": "#D35400",
    "--sunaiva-primary-light": "#F39C12",
    "--sunaiva-secondary": "#2C3E50",
    "--sunaiva-secondary-light": "#34495E",
    "--sunaiva-accent": "#27AE60",
    "--sunaiva-accent-light": "#2ECC71",
    "--sunaiva-background": "#FFFFFF",
    "--sunaiva-background-secondary": "#F8F9FA",
    "--sunaiva-text": "#2C3E50",
    "--sunaiva-text-light": "#7F8C8D",
    "--sunaiva-text-on-primary": "#FFFFFF",
    "--sunaiva-border": "#E0E6ED",
    "--sunaiva-shadow": "rgba(44, 62, 80, 0.15)",
    "--sunaiva-font-family": "'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "--sunaiva-font-mono": "'JetBrains Mono', 'Fira Code', monospace",
    "--sunaiva-radius-sm": "8px",
    "--sunaiva-radius-md": "12px",
    "--sunaiva-radius-lg": "16px",
    "--sunaiva-radius-full": "9999px",
    "--sunaiva-transition-fast": "150ms ease",
    "--sunaiva-transition-normal": "250ms ease",
    "--sunaiva-transition-slow": "400ms cubic-bezier(0.68, -0.55, 0.265, 1.55)"
  },
  "colors": {
    "primary": "#E67E22",
    "primaryDark": "#D35400",
    "primaryLight": "#F39C12",
    "secondary": "#2C3E50",
    "secondaryLight": "#34495E",
    "accent": "#27AE60",
    "accentLight": "#2ECC71",
    "background": "#FFFFFF",
    "backgroundSecondary": "#F8F9FA",
    "text": "#2C3E50",
    "textLight": "#7F8C8D",
    "textOnPrimary": "#FFFFFF",
    "border": "#E0E6ED",
    "shadow": "rgba(44, 62, 80, 0.15)",
    "success": "#27AE60",
    "error": "#E74C3C",
    "warning": "#F39C12",
    "info": "#3498DB"
  },
  "widget": {
    "position": "bottom-right",
    "offset": "24px",
    "zIndex": 9999,
    "dimensions": {
      "desktop": {
        "width": "380px",
        "height": "520px",
        "minHeight": "400px"
      },
      "mobile": {
        "width": "calc(100% - 32px)",
        "maxWidth": "380px",
        "height": "min(520px, calc(100vh - 100px))",
        "bottom": "16px",
        "right": "16px",
        "left": "16px"
      },
      "triggerButton": {
        "width": "60px",
        "height": "60px",
        "mobileWidth": "56px",
        "mobileHeight": "56px"
      }
    },
    "borderRadius": "16px",
    "boxShadow": "0 8px 32px rgba(44, 62, 80, 0.2)",
    "backdropBlur": "none"
  },
  "avatar": {
    "type": "character",
    "character": {
      "name": "Sparky",
      "description": "Friendly male avatar, 30s-40s, warm smile, wearing a hi-vis vest with reflective strips and a hard hat - representing a professional insulation installer. Clean-shaven, friendly eyes, modern flat illustration style.",
      "gender": "male",
      "ageRange": "30-45",
      "clothing": ["hi-vis vest", "hard hat"],
      "expression": "welcoming"
    },
    "size": {
      "widget": "48px",
      "floating": "60px",
      "header": "40px"
    },
    "borderRadius": "50%",
    "border": "3px solid #FFFFFF",
    "shadow": "0 2px 8px rgba(0,0,0,0.15)",
    "fallbackIcon": "user-hardhat"
  },
  "messages": {
    "welcome": "G'day! I'm Sparky, your insulation specialist assistant. I can help you with ceiling insulation, wall batts, evaporative cooling, and energy efficiency advice. What would you like to know about?",
    "fallback": "Thanks for reaching out! One of our insulation specialists will get back to you within 24 hours. In the meantime, tell me more about your insulation needs and I'll pass it on.",
    "error": "Sorry mate, something went wrong there. Would you like to try again, or I can take a message and someone will call you back?",
    "afterHours": "Thanks for contacting us outside our hours. We're open Mon-Fri 7am-5pm and Sat 8am-12pm. Leave a message and we'll call you back first thing tomorrow!",
    "offline": "We're currently offline. Leave a message and we'll get back to you as soon as possible."
  },
  "animations": {
    "entry": {
      "type": "slide-up-fade",
      "duration": "400ms",
      "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
      "keyframe": "sunaivaEntry"
    },
    "exit": {
      "type": "fade-out-scale",
      "duration": "200ms",
      "easing": "ease-out"
    },
    "idle": {
      "type": "subtle-bounce",
      "target": "avatar",
      "duration": "2s",
      "repeat": true,
      "delay": "3s",
      "translateY": ["0px", "-3px", "0px"],
      "keyframe": "sunaivaIdle"
    },
    "notification": {
      "type": "pulse-ring",
      "target": "trigger-button",
      "duration": "2s",
      "repeat": true,
      "color": "#E67E22",
      "keyframe": "sunaivaNotification"
    },
    "typing": {
      "type": "bounce-dots",
      "duration": "1.2s",
      "repeat": true,
      "dotCount": 3,
      "dotSize": "8px",
      "dotColor": "#E67E22",
      "keyframe": "sunaivaTyping"
    },
    "message": {
      "type": "slide-in-right",
      "duration": "300ms",
      "easing": "ease-out",
      "stagger": "50ms"
    }
  },
  "typography": {
    "fontFamily": "'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "fontFamilyMono": "'JetBrains Mono', 'Fira Code', monospace",
    "sizes": {
      "header": "18px",
      "subheader": "14px",
      "body": "15px",
      "caption": "12px",
      "button": "15px",
      "input": "15px"
    },
    "weights": {
      "regular": 400,
      "medium": 600,
      "bold": 700
    },
    "lineHeights": {
      "tight": 1.2,
      "normal": 1.5,
      "relaxed": 1.75
    },
    "letterSpacing": {
      "normal": "0",
      "wide": "0.5px",
      "narrow": "-0.5px"
    }
  },
  "buttons": {
    "primary": {
      "background": "#E67E22",
      "backgroundHover": "#D35400",
      "backgroundActive": "#BA4A00",
      "text": "#FFFFFF",
      "border": "none",
      "borderRadius": "12px",
      "shadow": "0 4px 12px rgba(230, 126, 34, 0.3)",
      "shadowHover": "0 6px 16px rgba(230, 126, 34, 0.4)",
      "padding": "12px 24px",
      "fontWeight": 600,
      "transition": "all 250ms ease"
    },
    "secondary": {
      "background": "#F8F9FA",
      "backgroundHover": "#E9ECEF",
      "backgroundActive": "#DEE2E6",


Response:
```json
{
  "$schema": "https://sunaiva.com/schemas/widget-config/v1",
  "name": "Irrigation Specialist Widget",
  "version": "1.0.0",
  "theme": {
    "colors": {
      "primary": "#0D9488",
      "primaryDark": "#0F766E",
      "primaryLight": "#14B8A6",
      "secondary": "#1E3A5F",
      "secondaryLight": "#2D4A6F",
      "accent": "#F59E0B",
      "accentHover": "#D97706",
      "background": "#FFFFFF",
      "backgroundSecondary": "#F0FDFA",
      "surface": "#FFFFFF",
      "surfaceAlt": "#F1F5F9",
      "textPrimary": "#1E293B",
      "textSecondary": "#475569",
      "textMuted": "#94A3B8",
      "border": "#E2E8F0",
      "borderLight": "#F1F5F9",
      "success": "#10B981",
      "error": "#EF4444",
      "warning": "#F59E0B",
      "overlay": "rgba(15, 23, 42, 0.5)"
    },
    "darkMode": {
      "colors": {
        "primary": "#14B8A6",
        "primaryDark": "#0D9488",
        "primaryLight": "#2DD4BF",
        "secondary": "#CBD5E1",
        "secondaryLight": "#E2E8F0",
        "accent": "#FBBF24",
        "accentHover": "#F59E0B",
        "background": "#0F172A",
        "backgroundSecondary": "#1E293B",
        "surface": "#1E293B",
        "surfaceAlt": "#334155",
        "textPrimary": "#F1F5F9",
        "textSecondary": "#CBD5E1",
        "textMuted": "#64748B",
        "border": "#334155",
        "borderLight": "#475569"
      }
    }
  },
  "typography": {
    "fontFamily": "'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
    "fontFamilyMono": "'JetBrains Mono', 'Fira Code', monospace",
    "sizes": {
      "header": "18px",
      "subheader": "16px",
      "body": "14px",
      "caption": "12px",
      "button": "14px",
      "input": "14px"
    },
    "weights": {
      "regular": 400,
      "medium": 500,
      "semibold": 600,
      "bold": 700
    },
    "lineHeight": {
      "tight": 1.25,
      "normal": 1.5,
      "relaxed": 1.75
    }
  },
  "widget": {
    "position": {
      "desktop": {
        "position": "fixed",
        "bottom": "24px",
        "right": "24px",
        "zIndex": 9999
      },
      "mobile": {
        "position": "fixed",
        "bottom": "16px",
        "right": "16px",
        "zIndex": 9999
      }
    },
    "dimensions": {
      "desktop": {
        "width": "380px",
        "height": "auto",
        "maxHeight": "600px",
        "minHeight": "480px"
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "height": "calc(100vh - 120px)",
        "maxHeight": "560px"
      },
      "collapsed": {
        "width": "64px",
        "height": "64px"
      },
      "borderRadius": {
        "widget": "16px",
        "button": "12px",
        "input": "10px",
        "avatar": "50%"
      }
    },
    "shadow": {
      "default": "0 4px 24px rgba(13, 148, 136, 0.15), 0 2px 8px rgba(0, 0, 0, 0.08)",
      "hover": "0 8px 32px rgba(13, 148, 136, 0.2), 0 4px 12px rgba(0, 0, 0, 0.12)",
      "dark": "0 4px 24px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.3)"
    }
  },
  "avatar": {
    "type": "icon",
    "icon": "sprinkler_drop",
    "size": {
      "collapsed": "64px",
      "expanded": "48px"
    },
    "style": {
      "background": "linear-gradient(135deg, #0D9488 0%, #14B8A6 100%)",
      "border": "3px solid #FFFFFF",
      "shadow": "0 2px 8px rgba(13, 148, 136, 0.3)"
    },
    "fallback": {
      "type": "initials",
      "text": "IR",
      "background": "#0D9488",
      "color": "#FFFFFF"
    }
  },
  "messages": {
    "welcome": {
      "text": "G'day! I'm your irrigation assistant. Need a quote for a new system, or got a leaky sprinkler head we can sort?",
      "voiceGreeting": "G'day! Need a quote for irrigation, or help with a leaky pipe?"
    },
    "quickReplies": [
      "Get a quote for new irrigation",
      "Fix my sprinklers",
      "Service & maintenance",
      "Rainwater tank install"
    ],
    "voicePrompt": "Tap the mic to talk",
    "offlineMessage": "We're currently offline. Leave your number and we'll call you back within the hour.",
    "errorMessage": "Something went wrong there. Try again or give us a buzz on {phone}."
  },
  "animations": {
    "entry": {
      "type": "slideUp",
      "duration": "400ms",
      "easing": "cubic-bezier(0.16, 1, 0.3, 1)",
      "delay": "0ms"
    },
    "idle": {
      "type": "subtlePulse",
      "scale": [1, 1.02, 1],
      "duration": "2s",
      "interval": "4s",
      "easing": "ease-in-out"
    },
    "notification": {
      "type": "ringPulse",
      "ringColor": "#F59E0B",
      "rings": 3,
      "duration": "1.5s",
      "easing": "ease-out"
    },
    "microphone": {
      "recording": {
        "type": "waveform",
        "bars": 5,
        "color": "#0D9488",
        "duration": "continuous"
      }
    },
    "transitions": {
      "open": {
        "type": "spring",
        "stiffness": 300,
        "damping": 25,
        "duration": "300ms"
      },
      "close": {
        "type": "easeOut",
        "duration": "200ms"
      }
    }
  },
  "buttons": {
    "primary": {
      "background": "#0D9488",
      "backgroundHover": "#0F766E",
      "backgroundActive": "#115E59",
      "color": "#FFFFFF",
      "colorHover": "#FFFFFF",
      "border": "none",
      "borderRadius": "12px",
      "shadow": "0 2px 8px rgba(13, 148, 136, 0.25)",
      "shadowHover": "0 4px 12px rgba(13, 148, 136, 0.35)",
      "padding": "12px 20px",
      "fontSize": "14px",
      "fontWeight": 600,
      "transition": "all 0.2s ease"
    },
    "secondary": {
      "background": "#F0FDFA",
      "backgroundHover": "#CCFBF1",
      "backgroundActive": "#99F6E4",
      "color": "#0D9488",
      "colorHover": "#0F766E",
      "border": "1px solid #0D9488",
      "borderRadius": "12px",
      "padding": "12px 20px",
      "fontSize": "14px",
      "fontWeight": 500,
      "transition": "all 0.2s ease"
    },
    "icon": {
      "size": "48px",
      "borderRadius": "50%",
      "background": "#0D9488",
      "backgroundHover": "#0F766E",
      "color": "#FFFFFF",
      "shadow": "0 2px 12px rgba(13, 148, 136, 0.3)",
      "shadowHover": "0 4px 16px rgba(13, 148, 136, 0.4)"
    },
    "quickReply": {
      "background": "#F1F5F9",
      "backgroundHover": "#E2E8F0",
      "color": "#1E293B",
      "border": "1px solid #E2E8F0",
      "borderRadius": "20px",
      "padding": "8px 16px",
      "fontSize": "13px",
      "fontWeight": 500,
      "margin": "4px"
    }
  },
  "inputs": {
    "background": "#F8FAFC",
    "backgroundFocus": "#FFFFFF",
    "border": "1px solid #E2E8F0",
    "borderFocus": "#0D9488",
    "borderRadius": "10px",
    "color": "#1E293B",
    "placeholder": "#94A3B8",
    "padding": "12px 16px",
    "fontSize": "14px",
    "shadow": "inset 0 1px 3px rgba(0, 0, 0, 0.04)",
    "shadowFocus": "inset 0 1px 3px rgba(0, 0, 0, 0.04), 0 0 0 3px rgba(13, 148, 136, 0.1)"
  },
  "industryElements": {
    "category": "irrigation",
    "icons": {
      "sprinkler": {
        "name": "sprinkler_head",
        "path": "M12 2C12 2 8 6 8 10C8 14.4183 11.5817 18 16 18C16 18 16 14 12 14C7.41827 14 4 10 4 10C4 10 7 2 12 2Z"
      },
      "drip": {
        "name": "drip_system",
        "path": "M6 4V8C6 10.2091 7.79086 12 10 12H14C16.2091 12 18 10.2091 18 8V4"
      },
      "tank": {
        "name": "water_tank",
        "path": "M4 8V18C4 19.1046 4.89543 20 6 20H18C19.1046 20 20 19.1046 20 18V8"
      },
      "pump": {
        "name": "water_pump",
        "path": "M8 6H16M8 10H16M8 14H12M6 18H18"
      }
    },
    "accentGraphics": {
      "waterDrops": true,
      "wavePattern": false,
      "leafAccents": true
    },
    "serviceTags": [
      "Residential Irrigation",
      "Commercial Systems",
      "Drip Irrigation",
      "Sprinkler Repair",
      "Rainwater Harvesting",
      "Pool & Water Features",
      "Greywater Systems",
      "Smart Controllers"
    ],
    "commonQueries": [
      "How much does a new sprinkler system cost?",
      "Can you fix my leaking irrigation?",
      "Do you service my area?",
      "What brands do you use?",
      "Got a quote for my backyard?",
      "Need someone ASAP for a burst pipe"
    ],
    "bookingFields": [
      {
        "key": "serviceType",
        "label": "What do you need?",
        "type": "select",
        "required": true,
        "options": [
          "New Irrigation System",
          "Sprinkler Repair",
          "Drip Irrigation",
          "Rainwater Tank",
          "Service & Maintenance",
          "Quote & Measure"
        ]
      },
      {
        "key": "propertyType",
        "label": "Property type?",
        "type": "select",
        "options": ["Residential", "Commercial", "Rural / Acreage", "Body Corporate"]
      },
      {
        "key": "areaSize",
        "label": "Approx. area size (sqm)?",
        "type": "text",
        "placeholder": "e.g. 500sqm"
      },
      {
        "key": "timeline",
        "label": "When do you need it done?",
        "type": "select",
        "options": ["ASAP / Emergency", "Within a week", "Within a month", "Just pricing"]
      }
    ]
  },
  "trigger": {
    "type": "floating_button",
    "icon": "message",
    "position": "bottom-right",
    "offset": {
      "x": 0,
      "y": 0
    },
    "behavior": {
      "autoOpen": false,
      "autoOpenDelay": 5000,
      "autoOpenOnExitIntent": true,
      "showAfterScroll": true,
      "scrollDepth": 30,
      "persistent": false,
      "persistentStorageKey": "sunaiva_irrigation_widget_dismissed"
    },
    "customTriggers": [
      {
        "selector": ".irrigation-cta, .quote-button, [data-service='irrigation']",
        "event": "click",
        "action": "open"
      },
      {
        "selector": ".price-page, .services-page",
        "event": "scroll",
        "action": "showBadge"
      }
    ]
  },
  "cssCustomProperties": {
    "--sw-primary": "#0D9488",
    "--sw-primary-dark": "#0F766E",
    "--sw-primary-light": "#14B8A6",
    "--sw-secondary": "#1E3A5F",
    "--sw-accent": "#F59E0B",
    "--sw-background": "#FFFFFF",
    "--sw-background-secondary": "#F0FDFA",
    "--sw-surface": "#FFFFFF",
    "--sw-text-primary": "#1E293B",
    "--sw-text-secondary": "#475569",
    "--sw-text-muted": "#94A3B8",
    "--sw-border": "#E2E8F0",
    "--sw-success": "#10B981",
    "--sw-error": "#EF4444",
    "--sw-font-family": "'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
    "--sw-font-size-header": "18px",
    "--sw-font-size-body": "14px",
    "--sw-font-size-caption": "12px",
    "--sw-radius-widget": "16px",
    "--sw-radius-button": "12px",
    "--sw-radius-input": "10px",
    "--sw-shadow-default": "0 4px 24px rgba(13, 148, 136, 0.15), 0 2px 8px rgba(0, 0, 0, 0.08)",
    "--sw-shadow-hover": "0 8px 32px rgba(13, 148, 136, 0.2), 0 4px 12px rgba(0, 0, 0, 0.12)",
    "--sw-z-index": "9999",
    "--sw-widget-width": "380px",
    "--sw-widget-height": "auto",
    "--sw-transition-speed": "0.2s",
    "--sw-transition-easing": "cubic-bezier(0.16, 1, 0.3, 1)"
  },
  "darkModeOverrides": {
    "cssCustomProperties": {
      "--sw-primary": "#14B8A6",
      "--sw-primary-dark": "#0D9488",
      "--sw-primary-light": "#2DD4BF",
      "--sw-secondary": "#CBD5E1


Response:
```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "businessType": "kitchen_renovator",
    "generatedAt": "2025-01-15T10:30:00+10:00"
  },

  "colorScheme": {
    "primary": {
      "name": "Midnight Slate",
      "hex": "#2D3436",
      "usage": "Widget header background, primary text",
      "cssVar": "--kw-primary"
    },
    "secondary": {
      "name": "Stone Warmth",
      "hex": "#DFE6E9",
      "usage": "Widget body background, message bubbles (received)",
      "cssVar": "--kw-secondary"
    },
    "accent": {
      "name": "Brass Gold",
      "hex": "#C9A227",
      "usage": "CTA buttons, highlights, online indicator",
      "cssVar": "--kw-accent"
    },
    "surface": {
      "name": "Marble White",
      "hex": "#FAFAFA",
      "usage": "Widget background, input fields",
      "cssVar": "--kw-surface"
    },
    "textPrimary": {
      "name": "Charcoal",
      "hex": "#2D3436",
      "usage": "Main text color",
      "cssVar": "--kw-text-primary"
    },
    "textSecondary": {
      "name": "Slate Grey",
      "hex": "#636E72",
      "usage": "Secondary text, timestamps, captions",
      "cssVar": "--kw-text-secondary"
    },
    "success": {
      "name": "Forest Green",
      "hex": "#27AE60",
      "usage": "Confirmation messages, booking success",
      "cssVar": "--kw-success"
    },
    "error": {
      "name": "Terracotta",
      "hex": "#E74C3C",
      "usage": "Error states, required field indicators",
      "cssVar": "--kw-error"
    },
    "outgoingBubble": {
      "name": "Brass Light",
      "hex": "#F5E6C3",
      "usage": "User message bubbles",
      "cssVar": "--kw-bubble-outgoing"
    },
    "incomingBubble": {
      "name": "Pure White",
      "hex": "#FFFFFF",
      "usage": "AI message bubbles",
      "cssVar": "--kw-bubble-incoming"
    }
  },

  "widgetPosition": {
    "primary": {
      "position": "bottom-right",
      "offset": {
        "desktop": { "x": "24px", "y": "24px" },
        "mobile": { "x": "16px", "y": "16px" }
      },
      "reasoning": "Bottom-right is the industry standard for chat widgets. It sits in the user's peripheral vision without blocking content. For kitchen renovators (often homeowners browsing on mobile), this ensures the CTA is always accessible without interfering with image galleries of completed kitchens."
    },
    "alternative": {
      "position": "bottom-left",
      "offset": {
        "desktop": { "x": "24px", "y": "24px" },
        "mobile": { "x": "16px", "y": "16px" }
      },
      "useCase": "If the website has critical CTAs on the right side (like 'Get a Quote' buttons), bottom-left prevents visual competition."
    },
    "zIndex": 9999,
    "respectsViewport": true,
    "pushContentOnOpen": false
  },

  "widgetDimensions": {
    "collapsed": {
      "width": "60px",
      "height": "60px",
      "borderRadius": "50%",
      "iconOnly": true
    },
    "expanded": {
      "desktop": {
        "width": "380px",
        "height": "520px",
        "maxHeight": "85vh"
      },
      "mobile": {
        "width": "calc(100vw - 32px)",
        "height": "calc(100vh - 100px)",
        "maxHeight": "600px",
        "bottomOffset": "80px"
      },
      "borderRadius": {
        "desktop": "16px",
        "mobile": "16px 16px 0 0"
      }
    },
    "minWidth": "300px",
    "maxWidth": "420px"
  },

  "avatar": {
    "type": "persona",
    "name": "Sarah",
    "description": "Friendly professional female avatar in her 30s, warm smile, wearing a crisp white blouse. Represents the friendly office administrator/receptionist who answers the phone for kitchen renovation businesses.",
    "style": "illustration_flat",
    "characteristics": {
      "gender": "female",
      "age": "30s",
      "appearance": "Clean, professional, approachable",
      "attire": "White or light coloured blouse",
      "expression": "Warm, welcoming smile"
    },
    "fallbackIcon": {
      "type": "lucide",
      "name": "home",
      "size": 28,
      "strokeWidth": 1.5
    },
    "onlineIndicator": {
      "enabled": true,
      "color": "#27AE60",
      "size": "12px",
      "position": "bottom-right of avatar",
      "pulse": true
    }
  },

  "welcomeMessage": {
    "trigger": "on_widget_open",
    "voice": "conversational_australian",
    "tone": "warm_professional_friendly",
    "message": "Hey there! 👋 I'm Sarah, the friendly voice here at [Business Name]. I can help you with kitchen quotes, show you some of our recent makeovers, or book you in for a design consultation. What are you thinking for your new kitchen?",
    "quickReplies": [
      {
        "label": "Get a quote",
        "action": "start_quote_flow",
        "icon": "calculator"
      },
      {
        "label": "See our work",
        "action": "show_portfolio",
        "icon": "image"
      },
      {
        "label": "Book a consult",
        "action": "start_booking",
        "icon": "calendar"
      },
      {
        "label": "Just browsing",
        "action": "casual_chat",
        "icon": "message-circle"
      }
    ],
    "typingDelay": 800,
    "fadeInDuration": 400
  },

  "animations": {
    "entry": {
      "type": "slide_fade",
      "direction": "up",
      "duration": 350,
      "easing": "cubic-bezier(0.34, 1.56, 0.64, 1)",
      "staggerChildren": true,
      "childrenDelay": 50
    },
    "idle": {
      "enabled": true,
      "type": "subtle_bounce",
      "trigger": "after_5_seconds_inactive",
      "duration": 2000,
      "interval": 8000,
      "transform": "translateY(-3px)"
    },
    "notification": {
      "type": "pulse_ring",
      "color": "#C9A227",
      "scale": 1.0,
      "duration": 1500,
      "repeat": 3,
      "easing": "ease-in-out"
    },
    "buttonHover": {
      "duration": 200,
      "easing": "ease-out",
      "transform": "scale(1.02)"
    },
    "messageAppear": {
      "type": "slide_up_fade",
      "duration": 300,
      "delay": 100,
      "stagger": 50
    },
    "loading": {
      "type": "bouncing_dots",
      "color": "#C9A227",
      "dotCount": 3,
      "duration": 1200
    }
  },

  "typography": {
    "fontFamily": "'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
    "fontSource": "google_fonts",
    "weights": {
      "regular": 400,
      "medium": 500,
      "semibold": 600,
      "bold": 700
    },
    "sizes": {
      "header": {
        "fontSize": "18px",
        "lineHeight": 1.3,
        "fontWeight": 600,
        "letterSpacing": "-0.01em"
      },
      "subheader": {
        "fontSize": "14px",
        "lineHeight": 1.4,
        "fontWeight": 500
      },
      "body": {
        "fontSize": "15px",
        "lineHeight": 1.5,
        "fontWeight": 400
      },
      "caption": {
        "fontSize": "12px",
        "lineHeight": 1.4,
        "fontWeight": 400,
        "color": "#636E72"
      },
      "button": {
        "fontSize": "14px",
        "lineHeight": 1,
        "fontWeight": 600,
        "letterSpacing": "0.02em"
      },
      "input": {
        "fontSize": "15px",
        "lineHeight": 1.5
      }
    },
    "customProperties": {
      "--kw-font-family": "'Outfit', sans-serif",
      "--kw-font-header": "600 18px/1.3 'Outfit', sans-serif",
      "--kw-font-body": "400 15px/1.5 'Outfit', sans-serif",
      "--kw-font-caption": "400 12px/1.4 'Outfit', sans-serif"
    }
  },

  "buttonStyles": {
    "primary": {
      "background": "#C9A227",
      "color": "#FFFFFF",
      "border": "none",
      "borderRadius": "10px",
      "padding": "12px 20px",
      "fontWeight": 600,
      "fontSize": "14px",
      "boxShadow": "0 2px 8px rgba(201, 162, 39, 0.3)",
      "transition": "all 0.2s ease",
      "hover": {
        "background": "#B8922A",
        "boxShadow": "0 4px 12px rgba(201, 162, 39, 0.4)",
        "transform": "translateY(-1px)"
      },
      "active": {
        "background": "#A68226",
        "transform": "translateY(0)"
      }
    },
    "secondary": {
      "background": "#FFFFFF",
      "color": "#2D3436",
      "border": "1.5px solid #DFE6E9",
      "borderRadius": "10px",
      "padding": "12px 20px",
      "fontWeight": 500,
      "fontSize": "14px",
      "transition": "all 0.2s ease",
      "hover": {
        "background": "#F8F9FA",
        "borderColor": "#C9A227",
        "color": "#2D3436"
      }
    },
    "quickReply": {
      "background": "#FFFFFF",
      "color": "#2D3436",
      "border": "1px solid #DFE6E9",
      "borderRadius": "20px",
      "padding": "8px 16px",
      "fontWeight": 500,
      "fontSize": "13px",
      "iconSize": 16,
      "gap": "8px",
      "transition": "all 0.2s ease",
      "hover": {
        "background": "#FAFAFA",
        "borderColor": "#C9A227",
        "color": "#C9A227"
      }
    },
    "icon": {
      "size": "24px",
      "strokeWidth": 1.5,
      "color": "#FFFFFF"
    },
    "borderRadius": {
      "small": "8px",
      "medium": "10px",
      "large": "12px",
      "full": "9999px"
    }
  },

  "darkModeVariant": {
    "enabled": true,
    "autoDetect": true,
    "manualToggle": true,
    "theme": "dark",
    "colors": {
      "primary": {
        "hex": "#1A1D1E",
        "name": "Dark Slate",
        "cssVar": "--kw-dm-primary"
      },
      "secondary": {
        "hex": "#2D3436",
        "name": "Charcoal",
        "cssVar": "--kw-dm-secondary"
      },
      "surface": {
        "hex": "#252A2B",
        "name": "Dark Surface",
        "cssVar": "--kw-dm-surface"
      },
      "textPrimary": {
        "hex": "#F5F6F7",
        "name": "Off White",
        "cssVar": "--kw-dm-text-primary"
      },
      "textSecondary": {
        "hex": "#A0A4A6",
        "name": "Muted Grey",
        "cssVar": "--kw-dm-text-secondary"
      },
      "accent": {
        "hex": "#D4AF37",
        "name": "Gold Bright",
        "cssVar": "--kw-dm-accent"
      },
      "outgoingBubble": {
        "hex": "#3D4547",
        "name": "Dark Bubble",
        "cssVar": "--kw-dm-bubble-outgoing"
      },
      "incomingBubble": {
        "hex": "#2D3436",
        "name": "Charcoal Bubble",
        "cssVar": "--kw-dm-bubble-incoming"
      }
    },
    "adjustments": {
      "shadows": "0 8px 32px rgba(0, 0, 0, 0.4)",
      "borderColor": "#3D4547",
      "inputBackground": "#1F2324"
    }
  },

  "industrySpecificElements": {
    "businessType": "kitchen_renovator",
    "quickActions": [
      {
        "id": "get_quote",
        "label": "Get a Quote",
        "icon": "calculator",
        "description": "Start your kitchen pricing enquiry",
        "flow": "quote_wizard"
      },
      {
        "id": "view_portfolio",
        "label": "Our Kitchens",
        "icon": "layout-grid",
        "description": "Browse our past renovations",
        "flow": "gallery_carousel"
      },
      {
        "id": "book_consultation",
        "label": "Design Consult",
        "icon": "calendar-check",
        "description": "Meet with our design team",
        "flow": "calendar_booking"
      },
      {
        "id": "material_options",
        "label": "Materials & Finishes",
        "icon": "palette",
        "description": "Browse stone, timber, and hardware options",
        "flow": "material_showcase"
      },
      {
        "id": "process_info",
        "label": "How It Works",
        "icon": "workflow",
        "description": "Learn about our renovation process",
        "flow": "info_timeline"
      },
      {
        "id": "special_offers",
        "label": "Current Offers",
        "icon": "tag",
        "description": "View any current promotions",
        "flow": "promo_display"
      }
    ],
    "customFlows": {
      "quote_wizard": {
        "steps": [
          {
            "id": "kitchen_type",
            "question": "What type of kitchen are you looking at?",
            "type": "choice",
            "options": [
              { "label": "Full renovation", "value": "full" },
              { "label": "Cabinet refresh", "value": "cabinets" },
              { "label": "Just started planning", "value": "planning" }
            ]
          },
          {
            "id": "budget_range",
            "question": "What's your approximate budget?",
            "type": "choice",
            "options": [
              { "label": "$20k - $40k", "value": "20-40k" },
              { "label": "$40k - $70k", "value": "40-70k" },
              { "label": "$70k+", "value": "70k+" },
              { "label": "Not sure yet", "value": "unsure" }
            ]
          },
          {
            "id": "timeline",
            "question": "When are you looking to start?",
            "type": "


Response:
```json
{
  "widgetConfig": {
    "version": "1.0.0",
    "industry": "bathroom_renovator",
    "brandName": "Coastal Bathrooms"
  },
  "colors": {
    "primary": {
      "hex": "#1A535C",
      "name": "Deep Teal",
      "usage": "Header backgrounds, primary buttons, widget border"
    },
    "secondary": {
      "hex": "#F7FFF7",
      "name": "Mint Cream",
      "usage": "Widget background, text on dark backgrounds"
    },
    "accent": {
      "hex": "#FF6B35",
      "name": "Terracotta",
      "usage": "CTA buttons, notification badges, highlights"
    },
    "textPrimary": {
      "hex": "#2D3748",
      "name": "Charcoal",
      "usage": "Main body text, headings"
    },
    "textSecondary": {
      "hex": "#718096",
      "name": "Slate Gray",
      "usage": "Captions, secondary info, timestamps"
    },
    "surface": {
      "hex": "#FFFFFF",
      "name": "Pure White",
      "usage": "Cards, input fields, message bubbles"
    },
    "success": {
      "hex": "#38A169",
      "name": "Forest Green",
      "usage": "Confirmation states, online indicators"
    },
    "border": {
      "hex": "#E2E8F0",
      "name": "Light Gray",
      "usage": "Dividers, input borders"
    }
  },
  "position": {
    "desktop": {
      "position": "bottom-right",
      "bottom": "24px",
      "right": "24px",
      "reasoning": "Standard conversion position - visible without blocking content, natural reading flow for right-to-left languages common in Arabic/European markets, aligns with chat conventions users expect"
    },
    "mobile": {
      "position": "bottom-right",
      "bottom": "16px",
      "right": "16px",
      "reasoning": "Thumb-friendly zone, avoids device speaker/notch areas, maintains visibility above fold"
    }
  },
  "dimensions": {
    "desktop": {
      "width": "380px",
      "maxHeight": "600px",
      "borderRadius": "16px"
    },
    "mobile": {
      "width": "calc(100vw - 32px)",
      "maxWidth": "380px",
      "maxHeight": "70vh",
      "borderRadius": "12px"
    },
    "launcher": {
      "size": "64px",
      "borderRadius": "50%"
    }
  },
  "avatar": {
    "type": "custom",
    "imageUrl": "/assets/avatar-bathroom-specialist.svg",
    "fallbackEmoji": "🚿",
    "description": "Friendly, professional female tradie avatar with modern haircut, wearing a crisp white shirt. Soft smile, approachable expression. Circle mask with subtle shadow. Represents trustworthiness and expertise in bathroom renovations.",
    "size": {
      "header": "48px",
      "message": "32px"
    },
    "animation": "subtle-bounce-on-hover"
  },
  "welcomeMessage": {
    "text": "G'day! 👋 I'm the bathroom specialist here. Got questions about your reno, or ready to book a free measure and quote?",
    "voiceGreeting": "G'day mate, I'm your bathroom renovation assistant. Whether you're after a quick quote or want to chat about your dream bathroom, I'm here to help.",
    "language": "en-AU",
    "trigger": "on_open"
  },
  "animations": {
    "entry": {
      "type": "slide-up-fade",
      "duration": "300ms",
      "easing": "cubic-bezier(0.68, -0.55, 0.265, 1.55)",
      "desktop": {
        "from": { "opacity": "0", "transform": "translateY(20px) scale(0.95)" },
        "to": { "opacity": "1", "transform": "translateY(0) scale(1)" }
      },
      "mobile": {
        "from": { "opacity": "0", "transform": "translateY(40px)" },
        "to": { "opacity": "1", "transform": "translateY(0)" }
      }
    },
    "idle": {
      "type": "gentle-float",
      "duration": "3s",
      "iteration": "infinite",
      "transform": "translateY(0px)",
      "keyframes": [
        { "offset": 0, "transform": "translateY(0px)" },
        { "offset": 0.5, "transform": "translateY(-4px)" },
        { "offset": 1, "transform": "translateY(0px)" }
      ]
    },
    "notification": {
      "type": "pulse-ring",
      "color": "#FF6B35",
      "duration": "2s",
      "iteration": "infinite",
      "scale": {
        "from": "1",
        "to": "1.4"
      },
      "opacity": {
        "from": "0.7",
        "to": "0"
      }
    },
    "message": {
      "type": "fade-slide",
      "duration": "200ms",
      "delay": "100ms",
      "stagger": "50ms"
    },
    "button": {
      "hover": {
        "duration": "150ms",
        "transform": "scale(1.02)",
        "boxShadow": "0 4px 12px rgba(26, 83, 92, 0.25)"
      },
      "active": {
        "duration": "100ms",
        "transform": "scale(0.98)"
      }
    }
  },
  "typography": {
    "fontFamily": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "fontWeights": {
      "regular": 400,
      "medium": 500,
      "semibold": 600,
      "bold": 700
    },
    "sizes": {
      "header": {
        "fontSize": "18px",
        "lineHeight": "1.3",
        "fontWeight": "600"
      },
      "subheader": {
        "fontSize": "14px",
        "lineHeight": "1.4",
        "fontWeight": "500"
      },
      "body": {
        "fontSize": "15px",
        "lineHeight": "1.5",
        "fontWeight": "400"
      },
      "caption": {
        "fontSize": "12px",
        "lineHeight": "1.4",
        "fontWeight": "400"
      },
      "button": {
        "fontSize": "14px",
        "lineHeight": "1",
        "fontWeight": "600",
        "letterSpacing": "0.02em"
      },
      "input": {
        "fontSize": "15px",
        "lineHeight": "1.5"
      }
    }
  },
  "buttons": {
    "primary": {
      "background": "#FF6B35",
      "color": "#FFFFFF",
      "border": "none",
      "borderRadius": "8px",
      "padding": "12px 20px",
      "hover": {
        "background": "#E85A2A",
        "boxShadow": "0 4px 12px rgba(255, 107, 53, 0.35)"
      },
      "active": {
        "background": "#D54F20",
        "transform": "scale(0.98)"
      },
      "focus": {
        "outline": "2px solid #FF6B35",
        "outlineOffset": "2px"
      }
    },
    "secondary": {
      "background": "transparent",
      "color": "#1A535C",
      "border": "2px solid #1A535C",
      "borderRadius": "8px",
      "padding": "10px 18px",
      "hover": {
        "background": "#1A535C",
        "color": "#FFFFFF"
      },
      "active": {
        "background": "#143F45"
      }
    },
    "quickReply": {
      "background": "#F7FFF7",
      "color": "#1A535C",
      "border": "1px solid #E2E8F0",
      "borderRadius": "20px",
      "padding": "8px 16px",
      "fontSize": "13px",
      "hover": {
        "background": "#1A535C",
        "color": "#FFFFFF",
        "borderColor": "#1A535C"
      }
    },
    "icon": {
      "size": "20px",
      "borderRadius": "50%",
      "background": "#1A535C",
      "color": "#FFFFFF",
      "hover": {
        "background": "#143F45"
      }
    }
  },
  "darkMode": {
    "enabled": true,
    "trigger": "system-preference",
    "colors": {
      "background": "#1A202C",
      "surface": "#2D3748",
      "textPrimary": "#F7FFF7",
      "textSecondary": "#A0AEC0",
      "border": "#4A5568",
      "primary": "#4FD1C5",
      "accent": "#F6AD55"
    },
    "widgetBackground": "linear-gradient(145deg, #2D3748 0%, #1A202C 100%)",
    "shadow": "0 8px 32px rgba(0, 0, 0, 0.4)",
    "messageBubble": {
      "user": "#1A535C",
      "bot": "#2D3748"
    }
  },
  "industryElements": {
    "quickReplies": [
      { "label": "Get a free quote", "action": "start_quote_flow" },
      { "label": "View our work", "action": "show_portfolio" },
      { "label": "How long does it take?", "action": "explain_timeline" },
      { "label": "Book a measure", "action": "book_appointment" }
    ],
    "conversationStarters": [
      "I'm looking to renovate my main bathroom",
      "Need a quote for a small ensuite",
      "How much does a full bathroom reno cost?",
      "Do you do knock-down rebuilds?"
    ],
    "services": [
      "Full bathroom renovations",
      "Kitchen renovations",
      "Laundry makeovers",
      "Kitchen & bathroom repairs",
      "Waterproofing",
      "Tiling"
    ],
    "visualElements": {
      "headerIcon": "bathroom-icon",
      "typingIndicator": "three-dots",
      "successCheckmark": "animated",
      "errorState": "friendly"
    },
    "scheduling": {
      "businessHours": {
        "monday": { "open": "07:00", "close": "17:00" },
        "tuesday": { "open": "07:00", "close": "17:00" },
        "wednesday": { "open": "07:00", "close": "17:00" },
        "thursday": { "open": "07:00", "close": "17:00" },
        "friday": { "open": "07:00", "close": "16:00" },
        "saturday": { "open": "08:00", "close": "12:00" },
        "sunday": null
      },
      "timezone": "Australia/Sydney",
      "bufferTime": "30"
    },
    "fallbackBehavior": {
      "afterHours": "Leave message with callback",
      "noAnswer": "Offer alternative contact or booking",
      "offline": "Collect details for follow-up"
    }
  },
  "cssVariables": {
    "--sunaiva-primary": "#1A535C",
    "--sunaiva-secondary": "#F7FFF7",
    "--sunaiva-accent": "#FF6B35",
    "--sunaiva-text-primary": "#2D3748",
    "--sunaiva-text-secondary": "#718096",
    "--sunaiva-surface": "#FFFFFF",
    "--sunaiva-success": "#38A169",
    "--sunaiva-border": "#E2E8F0",
    "--sunaiva-font-family": "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
    "--sunaiva-radius-sm": "8px",
    "--sunaiva-radius-md": "12px",
    "--sunaiva-radius-lg": "16px",
    "--sunaiva-radius-full": "9999px",
    "--sunaiva-shadow-sm": "0 2px 8px rgba(0, 0, 0, 0.08)",
    "--sunaiva-shadow-md": "0 4px 16px rgba(0, 0, 0, 0.12)",
    "--sunaiva-shadow-lg": "0 8px 32px rgba(0, 0, 0, 0.16)",
    "--sunaiva-transition-fast": "150ms ease",
    "--sunaiva-transition-normal": "250ms ease",
    "--sunaiva-transition-slow": "400ms ease"
  },
  "accessibility": {
    "ariaLabels": {
      "launcher": "Open chat with bathroom specialist",
      "close": "Close chat",
      "sendMessage": "Send message",
      "voiceInput": "Toggle voice input",
      "minimize": "Minimize chat"
    },
    "keyboardNavigation": {
      "focusTrap": true,
      "escapeToClose": true,
      "enterToSubmit": true,
      "arrowKeysNavigation": true
    },
    "screenReader": {
      "announceNewMessages": true,
      "politeUpdates": true
    },
    "reducedMotion": {
      "respectPreference": true,
      "disableAnimations": "prefers-reduced-motion: reduce"
    }
  },
  "mobileOptimizations": {
    "touchTargets": {
      "minimumSize": "44px",
      "spacing": "8px"
    },
    "viewportHandling": {
      "preventScroll": true,
      "expandOnFocus": false
    },
    "gestures": {
      "swipeToClose": true,
      "swipeThreshold": "50px"
    }
  }
}
```

## Implementation Notes

**Color Palette Rationale:**
- **Deep Teal (#1A535C)**: Evokes water, cleanliness, premium quality — aligns with bathroom industry expectations
- **Mint Cream (#F7FFF7)**: Soft, fresh, hygienic feel — perfect for bathroom context
- **Terracotta (#FF6B35)**: Warm accent that stands out against teal, suggests action and energy — high conversion for CTAs

**Positioning Logic:**
- Bottom-right placement follows established UX patterns (Intercom, Drift, Facebook Messenger)
- Mobile uses 16px margin to avoid device edge radius and ensure tap targets remain accessible

**Industry-Specific Features:**
- Quick replies pre-populated with bathroom-specific queries
- Scheduling configured for typical trade business hours (Saturday half-day included)
- Fallback behavior handles after-hours enquiries professionally

**Dark Mode:**
- Automatically responds to `prefers-color-scheme` system preference
- Uses teal shift to cyan (#4FD1C5) for better contrast on dark backgrounds
- Warm accent shift to orange (#F6AD55) maintains visual hierarchy

To use this, pass the entire object to your widget initialization:

```javascript
const widget = new SunaivaWidget({
  ...widgetConfig,
  container: '#chat-widget-container'
});
```


Response:
```json
{
  "widgetConfiguration": {
    "version": "1.0.0",
    "industry": "marine_mechanic",
    "businessType": "Marine Repair Services"
  },

  "colorScheme": {
    "primary": {
      "name": "Ocean Deep",
      "hex": "#0A2463",
      "usage": "Headers, primary backgrounds, widget header"
    },
    "secondary": {
      "name": "Sail White",
      "hex": "#F8F9FA",
      "usage": "Main content background, message bubbles"
    },
    "accent": {
      "name": "Lifejacket Orange",
      "hex": "#FF6B35",
      "usage": "CTA buttons, highlights, unread indicators"
    },
    "textPrimary": {
      "name": "Deck Charcoal",
      "hex": "#1A1A2E",
      "usage": "Main text, user messages"
    },
    "textSecondary": {
      "name": "Harbour Grey",
      "hex": "#6C757D",
      "usage": "Timestamps, secondary text, AI messages"
    },
    "success": {
      "name": "Anchor Green",
      "hex": "#2D6A4F",
      "usage": "Success states, booking confirmations"
    },
    "error": {
      "name": "Warning Red",
      "hex": "#D62828",
      "usage": "Error states, validation messages"
    },
    "surface": {
      "name": "Foam White",
      "hex": "#FFFFFF",
      "usage": "Card backgrounds, input fields"
    },
    "border": {
      "name": "Harbour Mist",
      "hex": "#DEE2E6",
      "usage": "Borders, dividers"
    }
  },

  "layout": {
    "position": {
      "desktop": "bottom-right",
      "mobile": "bottom-right",
      "offset": {
        "desktop": { "x": 24, "y": 24 },
        "mobile": { "x": 16, "y": 16 }
      },
      "reasoning": "Bottom-right is the industry standard placement. For marine businesses, this position avoids interfering with hero images of boats/vessels that typically occupy the top-left of trade business homepages. Mobile placement stays bottom-right for thumb-reachability while leaving space for back-to-top buttons often found bottom-left."
    },
    "dimensions": {
      "desktop": {
        "width": 380,
        "height": 600,
        "maxHeight": 80,
        "borderRadius": 16
      },
      "mobile": {
        "width": "calc(100% - 32px)",
        "height": "75vh",
        "maxHeight": "85vh",
        "borderRadius": 16
      },
      "collapsed": {
        "width": 64,
        "height": 64,
        "borderRadius": 32
      }
    }
  },

  "avatar": {
    "icon": "wrench_anchor_hybrid",
    "description": "A stylized combination of a crossed wrench and anchor, representing marine mechanical expertise. The wrench forms one side of an 'X' with an anchor motif, creating a badge-like appearance that signals both trade expertise and nautical credentials.",
    "visual": {
      "style": "flat_outline",
      "strokeWidth": 2,
      "primaryColor": "#0A2463",
      "accentColor": "#FF6B35",
      "background": "transparent"
    },
    "size": {
      "collapsed": 32,
      "expanded": 48
    }
  },

  "messages": {
    "welcome": {
      "text": "G'day! 👋 Need a hand with your boat? I can help book a service, check your job, or answer questions — all without you waiting on hold.",
      "voiceGreeting": "G'day mate, this is your marine mechanic's AI assistant. Need a hand with your boat?"
    },
    "quickReplies": [
      {
        "label": "Book a service",
        "action": "start_booking",
        "icon": "calendar"
      },
      {
        "label": "Service quotes",
        "action": "request_quote",
        "icon": "document"
      },
      {
        "label": "My boat's problem",
        "action": "describe_issue",
        "icon": "chat"
      },
      {
        "label": "Opening hours",
        "action": "show_hours",
        "icon": "clock"
      }
    ],
    "fallback": "Sounds like you need to chat with our team directly. Here's our number — give us a bell on [PHONE] and we'll sort you out.",
    "offline": "We're currently out on a job. Leave your number and we'll call you back ASAP."
  },

  "animations": {
    "entry": {
      "type": "slide_fade",
      "direction": "up",
      "duration": 400,
      "easing": "cubic-bezier(0.16, 1, 0.3, 1)",
      "delay": 800,
      "description": "Widget slides up from bottom while fading in, mimicking a boat rising on a wave"
    },
    "idle": {
      "type": "gentle_bob",
      "duration": 3000,
      "easing": "ease-in-out",
      "translateY": [0, 4, 0],
      "description": "Subtle vertical bobbing animation to suggest floating on water. Only plays when widget is collapsed and open."
    },
    "notification": {
      "type": "pulse_ring",
      "duration": 2000,
      "iterations": 3,
      "color": "#FF6B35",
      "description": "Orange ring pulses outward from avatar to draw attention to new messages"
    },
    "messageAppear": {
      "type": "slide_up_fade",
      "duration": 300,
      "stagger": 50,
      "description": "Messages slide up with slight fade as they appear in the chat"
    },
    "buttonHover": {
      "type": "lift_shadow",
      "duration": 200,
      "translateY": -2,
      "shadowIncrease": 4,
      "description": "Buttons lift slightly with increased shadow on hover"
    }
  },

  "typography": {
    "fontFamily": {
      "primary": "'Outfit', sans-serif",
      "fallback": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
      "reasoning": "Outfit is a modern, geometric sans-serif with excellent readability. It has a slightly technical feel without being cold — works well for trade businesses. The name itself suggests 'outfitting' boats, a nice subtle industry nod."
    },
    "sizes": {
      "header": {
        "fontSize": 18,
        "fontWeight": 600,
        "lineHeight": 1.3,
        "letterSpacing": -0.01
      },
      "subheader": {
        "fontSize": 14,
        "fontWeight": 500,
        "lineHeight": 1.4
      },
      "body": {
        "fontSize": 15,
        "fontWeight": 400,
        "lineHeight": 1.5
      },
      "caption": {
        "fontSize": 12,
        "fontWeight": 400,
        "lineHeight": 1.4
      },
      "button": {
        "fontSize": 14,
        "fontWeight": 600,
        "lineHeight": 1,
        "letterSpacing": 0.02
      },
      "input": {
        "fontSize": 15,
        "fontWeight": 400,
        "lineHeight": 1.5
      }
    }
  },

  "buttons": {
    "primary": {
      "background": "#FF6B35",
      "color": "#FFFFFF",
      "border": "none",
      "borderRadius": 12,
      "padding": "12px 20px",
      "hover": {
        "background": "#E85A2A",
        "transform": "translateY(-2px)",
        "boxShadow": "0 4px 12px rgba(255, 107, 53, 0.35)"
      },
      "active": {
        "background": "#D14F20",
        "transform": "translateY(0)"
      }
    },
    "secondary": {
      "background": "transparent",
      "color": "#0A2463",
      "border": "2px solid #0A2463",
      "borderRadius": 12,
      "padding": "10px 18px",
      "hover": {
        "background": "#0A2463",
        "color": "#FFFFFF"
      }
    },
    "quickReply": {
      "background": "#F0F4F8",
      "color": "#0A2463",
      "border": "1px solid #DEE2E6",
      "borderRadius": 20,
      "padding": "10px 16px",
      "hover": {
        "background": "#E8EEF4",
        "borderColor": "#0A2463"
      }
    },
    "icon": {
      "size": 24,
      "borderRadius": 8,
      "background": "transparent",
      "color": "#6C757D",
      "hover": {
        "color": "#0A2463",
        "background": "#F0F4F8"
      }
    }
  },

  "darkMode": {
    "enabled": true,
    "trigger": "system_preference",
    "colors": {
      "primary": {
        "name": "Night Ocean",
        "hex": "#1E3A8A",
        "usage": "Headers, primary backgrounds"
      },
      "secondary": {
        "name": "Midnight",
        "hex": "#111827",
        "usage": "Main content background"
      },
      "surface": {
        "name": "Deep Sea",
        "hex": "#1F2937",
        "usage": "Cards, input fields"
      },
      "textPrimary": {
        "name": "Moonlight",
        "hex": "#F9FAFB",
        "usage": "Main text"
      },
      "textSecondary": {
        "name": "Fog",
        "hex": "#9CA3AF",
        "usage": "Secondary text"
      },
      "border": {
        "name": "Dark Tide",
        "hex": "#374151",
        "usage": "Borders"
      },
      "accent": {
        "name": "Beacon Orange",
        "hex": "#FF8C5A",
        "usage": "CTA buttons (slightly lighter for contrast)"
      }
    },
    "adjustments": {
      "avatarStroke": "#60A5FA",
      "inputBackground": "#374151",
      "bubbleUser": "#1E3A8A",
      "bubbleAI": "#1F2937"
    }
  },

  "industrySpecific": {
    "marine": {
      "wavePattern": {
        "enabled": true,
        "position": "widget_header_background",
        "color": "rgba(255, 255, 255, 0.05)",
        "description": "Subtle SVG wave pattern in header background to reinforce marine theme"
      },
      "seasonalGreetings": {
        "summer": "Perfect weather for getting out on the water! Time to service that boat engine?",
        "winter": "Winter's a great time to get your boat serviced — beat the spring rush!"
      },
      "specialtyQuickReplies": [
        {
          "label": "Engine service",
          "action": "specialty_engine",
          "icon": "propeller"
        },
        {
          "label": "Fibreglass repair",
          "action": "specialty_fibreglass",
          "icon": "shield"
        },
        {
          "label": "Electrical & electronics",
          "action": "specialty_electrical",
          "icon": "zap"
        },
        {
          "label": "Winterisation",
          "action": "specialty_winterise",
          "icon": "snowflake"
        }
      ],
      "locationContext": {
        "typicalAreas": ["coastal suburbs", "marina districts", "boat ramps"],
        "commonTerms": ["slip", "mooring", "berth", "haul out", "antifoul"],
        "description": "Quick replies and responses reference local Australian marine terminology"
      }
    },
    "brandingElements": {
      "headerGradient": "linear-gradient(135deg, #0A2463 0%, #1E40AF 100%)",
      "waveDivider": {
        "enabled": true,
        "color": "#FF6B35",
        "height": 3,
        "style": "waveform"
      },
      "subtleIcons": {
        "style": "outline",
        "strokeWidth": 1.5,
        "color": "#0A2463"
      }
    }
  },

  "cssCustomProperties": {
    "--mw-primary": "#0A2463",
    "--mw-secondary": "#F8F9FA",
    "--mw-accent": "#FF6B35",
    "--mw-text-primary": "#1A1A2E",
    "--mw-text-secondary": "#6C757D",
    "--mw-success": "#2D6A4F",
    "--mw-error": "#D62828",
    "--mw-surface": "#FFFFFF",
    "--mw-border": "#DEE2E6",

    "--mw-font-family": "'Outfit', -apple-system, BlinkMacSystemFont, sans-serif",
    "--mw-font-size-header": "18px",
    "--mw-font-size-body": "15px",
    "--mw-font-size-caption": "12px",

    "--mw-radius-sm": "8px",
    "--mw-radius-md": "12px",
    "--mw-radius-lg": "16px",
    "--mw-radius-full": "9999px",

    "--mw-shadow-sm": "0 1px 3px rgba(0, 0, 0, 0.08)",
    "--mw-shadow-md": "0 4px 12px rgba(0, 0, 0, 0.12)",
    "--mw-shadow-lg": "0 8px 24px rgba(0, 0, 0, 0.16)",
    "--mw-shadow-accent": "0 4px 12px rgba(255, 107, 53, 0.3)",

    "--mw-transition-fast": "150ms ease",
    "--mw-transition-normal": "250ms ease",
    "--mw-transition-slow": "400ms cubic-bezier(0.16, 1, 0.3, 1)",

    "--mw-widget-width": "380px",
    "--mw-widget-height": "600px",
    "--mw-widget-offset-x": "24px",
    "--mw-widget-offset-y": "24px",

    "--mw-z-index": "9999",
    "--mw-z-index-overlay": "10000",

    "@media (max-width: 768px)": {
      "--mw-widget-width": "calc(100% - 32px)",
      "--mw-widget-height": "75vh",
      "--mw-widget-offset-x": "16px",
      "--mw-widget-offset-y": "16px"
    },

    "@media (prefers-color-scheme: dark)": {
      "--mw-primary": "#1E3A8A",
      "--mw-secondary": "#111827",
      "--mw-surface": "#1F2937",
      "--mw-text-primary": "#F9FAFB",
      "--mw-text-secondary": "#9CA3AF",
      "--mw-border": "#374151",
      "--mw-accent": "#FF8C5A"
    }
  },

  "accessibility": {
    "ariaLabels": {
      "widgetToggle": "Open chat with marine mechanic assistant",
      "widgetClose": "Close chat",
      "sendMessage": "Send message",
      "voiceCall": "Start voice call"
    },
    "keyboardNavigation": true,
    "focusVisible": {
      "color": "#FF6B35",
      "width": 2,
      "offset": 2
    },
    "screenReaderAnnouncements": "polite",
    "reducedMotion": {
      "enabled": true,
      "respectPreference": true,
      "fallbackAnimation": "fade"
    }
  },

  "technical": {
    "rendering": {
      "framework": "React/Vue/vanilla-js compatible",
      "shadows": true,
      "backdropFilter": "blur(8px)",
      "isolation": "isolate"
    },
    "performance": {
      "lazyLoadAvatars": true,
      "preloadFonts": ["Outfit"],
      "optimizeAnimations": "transform-only"
    }
  }
}
```

---

## Key Design Rationale

### Why These Colours?

| Colour | Reason |
|--------