describe('Responsive Design', () => {
  describe('Mobile viewport (375x667)', () => {
    beforeEach(() => {
      cy.viewport(375, 667)
    })

    it('loads the app on mobile', () => {
      cy.visit('/')
      cy.get('.app-header').should('be.visible')
      cy.contains('doTERRA').should('be.visible')
    })

    it('nav tabs are scrollable', () => {
      cy.visit('/')
      cy.get('.nav-tabs').should('have.css', 'overflow-x', 'auto')
    })

    it('recipe cards stack in single column', () => {
      cy.visit('/')
      cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
      // On mobile, cards should be full width
      cy.get('.recipe-card').first().then($card => {
        const width = $card.outerWidth()
        expect(width).to.be.gte(300)
      })
    })

    it('search input is usable on mobile', () => {
      cy.visit('/')
      cy.get('input[placeholder*="搜索"]').should('be.visible')
      cy.get('input[placeholder*="搜索"]').type('薰衣草')
      cy.get('input[placeholder*="搜索"]').should('have.value', '薰衣草')
    })

    it('oil reference page works on mobile', () => {
      cy.visit('/oils')
      cy.contains('精油价目').should('be.visible')
      cy.get('.oil-chip').should('have.length.gte', 1)
    })
  })

  describe('Tablet viewport (768x1024)', () => {
    beforeEach(() => {
      cy.viewport(768, 1024)
    })

    it('loads and shows recipe grid', () => {
      cy.visit('/')
      cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
    })

    it('oil grid shows multiple columns', () => {
      cy.visit('/oils')
      cy.get('.oil-chip', { timeout: 10000 }).should('have.length.gte', 1)
    })
  })

  describe('Wide viewport (1920x1080)', () => {
    beforeEach(() => {
      cy.viewport(1920, 1080)
    })

    it('content is centered with max-width', () => {
      cy.visit('/')
      cy.get('.main').then($main => {
        const width = $main.outerWidth()
        expect(width).to.be.lte(960)
      })
    })

    it('recipe grid shows multiple columns', () => {
      cy.visit('/')
      cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
    })
  })
})
