// ov2-drawers.jsx — per-metric drawer content (RU/EN)

const DRAWERS_OV2 = {
  ru: {
    revenue: {
      title: 'Total revenue · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Total revenue', val: '€42,580', delta: '+12%', deltaSign: 'pos', sub: 'vs €38,018 в прошлом периоде' },
      sectionsTitle: 'Структура выручки',
      pl: [
        { lbl: 'Размещение', val: '€26,400', deltaPct: '+9%' },
        { lbl: 'СПА', val: '€9,368', deltaPct: '+18%' },
        { lbl: 'F&B (бар, мини-кухня)', val: '€5,535', deltaPct: '+22%' },
        { lbl: 'Другое (туры, прокат)', val: '€1,277', deltaPct: '+4%' },
        { lbl: 'Итого', val: '€42,580', total: true, deltaPct: '+12%' },
      ],
      sparkLabel: 'Выручка по дням (30 дней)',
    },
    rpg: {
      title: 'Revenue per guest · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Revenue per guest', val: '€385', delta: '+6%', deltaSign: 'pos', sub: '110 уникальных гостей за период' },
      sectionsTitle: 'Из чего состоит',
      pl: [
        { lbl: '— Размещение / гость', val: '€240' },
        { lbl: '— СПА / гость', val: '€85' },
        { lbl: '— F&B / гость', val: '€50' },
        { lbl: '— Прочее', val: '€10' },
        { lbl: 'RPG итого', val: '€385', total: true, deltaPct: '+6%' },
      ],
      sparkLabel: 'RPG по неделям',
    },
    occupancy: {
      title: 'Occupancy · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Occupancy', val: '118 / 150', delta: '+8 ночей', deltaSign: 'pos', sub: '78% · цель 75%' },
      sectionsTitle: 'По домикам',
      pl: [
        { lbl: 'Bali', val: '26 / 30 ночей', deltaPct: '87%' },
        { lbl: 'Cyprus', val: '24 / 30 ночей', deltaPct: '80%' },
        { lbl: 'Portofino', val: '22 / 30 ночей', deltaPct: '73%' },
        { lbl: 'Latvia', val: '24 / 30 ночей', deltaPct: '80%' },
        { lbl: 'Maldives', val: '22 / 30 ночей', deltaPct: '73%' },
        { lbl: 'Итого', val: '118 / 150', total: true, deltaPct: '78%' },
      ],
      sparkLabel: 'Загрузка по дням',
    },
    cell: {
      kind: 'cell',
      titleFree: 'Свободное окно',
      titleBlocked: 'Блокировка домика',
      titleBooking: 'Бронь {id} · {cabin}',
      period: 'Ближайшие 30 дней',
      labels: {
        dayStatus: 'Статус дня',
        guest: 'Клиент',
        booking: 'Бронь',
        source: 'Источник клиента',
        payment: 'Оплата',
        operations: 'Операции',
        opportunity: 'Возможность',
        free: 'Свободно',
        blocked: 'Заблокировано',
        noGuest: 'Гостя нет',
        openCloudbeds: 'Open in Cloudbeds ↗',
        sendWhatsApp: 'Send WhatsApp',
        markPaid: 'Отметить оплату',
        suggestedPrice: 'Рекомендованная цена',
        salesAction: 'Действие продаж',
      },
      payment: { paid: 'Оплачено', partial: 'Частично оплачено', unpaid: 'Не оплачено', hold: 'Hold / pre-auth' },
      confidence: { manual: 'manual', ga4: 'GA4', unknown: 'unknown' },
      opsCopy: {
        arrival: 'День заезда: проверьте готовность домика и welcome-сообщение.',
        departure: 'День выезда: запросите отзыв и обновите CRM-профиль.',
        stay: 'Гость проживает в этот день: проверьте заметки и возможный SPA upsell.',
        future: 'Будущая бронь: проверьте оплату, источник и pre-arrival коммуникацию.',
        past: 'Прошедшая ночь: используйте данные для CRM-сегментации и повторного маркетинга.',
        empty: 'Свободное окно: можно запустить last-minute оффер или пакет SPA+ночь.',
        blocked: 'День заблокирован: проверьте причину и можно ли вернуть его в продажу.',
      },
    },
    gop: {
      title: 'GOP margin · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'GOP margin', val: '34%', delta: '+2 п.п.', deltaSign: 'pos', sub: 'GOP €14,477 · цель 32%' },
      sectionsTitle: 'Mini P&L',
      pl: [
        { lbl: 'Выручка', val: '€42,580' },
        { lbl: 'Себестоимость продаж (COGS)', val: '€8,120', neg: true },
        { lbl: 'Операционные расходы', val: '€15,163', neg: true },
        { lbl: '— Зарплаты', val: '€8,400' },
        { lbl: '— Коммунальные', val: '€2,180' },
        { lbl: '— Хозяйственные', val: '€2,260' },
        { lbl: '— Прочее', val: '€2,323' },
        { lbl: 'Маркетинг', val: '€4,820', neg: true },
        { lbl: 'GOP', val: '€14,477', total: true, deltaPct: '+18%' },
        { lbl: 'GOP margin', val: '34%', total: true, deltaPct: '+2 п.п.' },
      ],
      sparkLabel: 'GOP margin (90 дней)',
    },
    spend: {
      title: 'Marketing spend · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Marketing spend', val: '€4,820', delta: '+8%', deltaSign: 'flat', sub: 'Бюджет на месяц: €5,200' },
      sectionsTitle: 'По каналам',
      pl: [
        { lbl: 'Google Ads', val: '€2,100', deltaPct: '+5%' },
        { lbl: 'Meta Ads', val: '€1,800', deltaPct: '+12%' },
        { lbl: 'TikTok Ads', val: '€920', deltaPct: '+8%' },
        { lbl: 'Итого', val: '€4,820', total: true, deltaPct: '+8%' },
      ],
      sparkLabel: 'Spend по дням',
    },
    roas: {
      title: 'Blended ROAS · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Blended ROAS', val: '8.8x', delta: '−0.6x', deltaSign: 'warn', sub: 'Выручка от платного: €42,420' },
      sectionsTitle: 'По каналам',
      pl: [
        { lbl: 'Google Ads', val: '11.2x', deltaPct: '−0.4x' },
        { lbl: 'Meta Ads', val: '7.4x', deltaPct: '−0.9x' },
        { lbl: 'TikTok Ads', val: '5.1x', deltaPct: '+0.2x' },
        { lbl: 'Blended', val: '8.8x', total: true, deltaPct: '−0.6x' },
      ],
      sparkLabel: 'ROAS по неделям',
    },
    cac: {
      title: 'CAC · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'CAC', val: '€68', delta: '+€12', deltaSign: 'neg', sub: '71 новых гостей · бенчмарк €55' },
      sectionsTitle: 'По каналам',
      pl: [
        { lbl: 'Google Ads', val: '€52', deltaPct: '+€6' },
        { lbl: 'Meta Ads', val: '€78', deltaPct: '+€18' },
        { lbl: 'TikTok Ads', val: '€95', deltaPct: '+€20' },
        { lbl: 'Среднее', val: '€68', total: true, deltaPct: '+€12' },
      ],
      sparkLabel: 'CAC по неделям',
    },
    direct: {
      title: 'Direct booking · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Direct booking', val: '54%', delta: '+4 п.п.', deltaSign: 'pos', sub: 'Сэкономлено ~€2,300 на комиссиях' },
      sectionsTitle: 'По источникам',
      pl: [
        { lbl: 'Сайт (прямые)', val: '38%', deltaPct: '+3 п.п.' },
        { lbl: 'WhatsApp / Messenger', val: '12%', deltaPct: '+2 п.п.' },
        { lbl: 'Звонок / повтор', val: '4%', deltaPct: '−1 п.п.' },
        { lbl: 'Booking.com', val: '28%', deltaPct: '−2 п.п.' },
        { lbl: 'Airbnb', val: '14%', deltaPct: '−1 п.п.' },
        { lbl: 'Другое', val: '4%', deltaPct: '−1 п.п.' },
        { lbl: 'Direct итого', val: '54%', total: true, deltaPct: '+4 п.п.' },
      ],
      sparkLabel: 'Direct share по неделям',
    },
    loyaltyRepeat: {
      title: 'Repeat guest rate · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Repeat guest rate', val: '28%', delta: '+3 п.п.', deltaSign: 'pos', sub: '106 гостей · 30 гостей с 2+ визитами' },
      sectionsTitle: 'Из чего складывается',
      pl: [
        { lbl: 'Повторные гости', val: '30 гостей', deltaPct: '+6' },
        { lbl: 'Новые гости', val: '76 гостей', deltaPct: '+14' },
        { lbl: 'VIP repeat (4+ визита)', val: '9 гостей', deltaPct: '+2' },
        { lbl: 'Средний LTV repeat', val: '€840', deltaPct: '+€70' },
        { lbl: 'Средний LTV new', val: '€310', deltaPct: '+€24' },
        { lbl: 'Итого repeat rate', val: '28%', total: true, deltaPct: '+3 п.п.' },
      ],
      sparkLabel: 'Repeat rate по неделям',
    },
    loyaltyReviewScore: {
      title: 'Avg review score · детализация',
      period: 'Последние 90 дней',
      headline: { lbl: 'Avg review score', val: '9.1 / 10', delta: '+0.1', deltaSign: 'pos', sub: 'Взвешено по Booking.com, Google и TripAdvisor' },
      sectionsTitle: 'По площадкам',
      pl: [
        { lbl: 'Booking.com', val: '9.0 / 10', deltaPct: '+0.1' },
        { lbl: 'Google', val: '9.3 / 10', deltaPct: '+0.2' },
        { lbl: 'TripAdvisor', val: '9.0 / 10', deltaPct: 'flat' },
        { lbl: 'Сервис / персонал', val: '9.4', deltaPct: '+0.2' },
        { lbl: 'Чистота', val: '9.2', deltaPct: '+0.1' },
        { lbl: 'Цена / качество', val: '8.7', deltaPct: 'watch' },
        { lbl: 'Итого средний рейтинг', val: '9.1', total: true, deltaPct: '+0.1' },
      ],
      sparkLabel: 'Review score trend',
    },
    loyaltyNewReviews: {
      title: 'Новые отзывы · детализация',
      period: 'За последние 30 дней',
      headline: { lbl: 'Новых отзывов', val: '23', delta: '+5', deltaSign: 'pos', sub: 'Конверсия review request: 38%' },
      sectionsTitle: 'Поток отзывов',
      pl: [
        { lbl: 'Booking.com', val: '11 отзывов', deltaPct: '+3' },
        { lbl: 'Google', val: '8 отзывов', deltaPct: '+2' },
        { lbl: 'TripAdvisor', val: '4 отзыва', deltaPct: 'flat' },
        { lbl: 'Позитивные', val: '20 отзывов', deltaPct: '87%' },
        { lbl: 'Нейтральные', val: '2 отзыва', deltaPct: '9%' },
        { lbl: 'Нужен ответ менеджера', val: '1 отзыв', deltaPct: 'today' },
        { lbl: 'Итого новых отзывов', val: '23', total: true, deltaPct: '+5' },
      ],
      sparkLabel: 'Новые отзывы по дням',
    },
    booking: {
      kind: 'booking',
      title: 'Бронь B-2856 · Bali',
      period: 'Mock detail · Cloudbeds later',
      stats: [
        { lbl: 'Revenue', val: '€840' },
        { lbl: 'Nights', val: '3' },
        { lbl: 'Channel', val: 'Direct' },
      ],
      sections: [
        {
          title: 'Гость',
          rows: [
            { lbl: 'Name', val: 'Anderson Mark' },
            { lbl: 'Email', val: 'mark.anderson@example.com' },
            { lbl: 'Phone', val: '+371 22 555 285' },
            { lbl: 'Country', val: '🇺🇸 US · США' },
          ],
        },
        {
          title: 'Бронь',
          rows: [
            { lbl: 'Dates', val: 'May 10 → May 13 · 3N' },
            { lbl: 'Cabin', val: 'Bali' },
            { lbl: 'Guests', val: '2A' },
            { lbl: 'Lead time', val: '12d before' },
            { lbl: 'Source', val: 'Instagram · manual' },
            { lbl: 'Status', val: 'Confirmed' },
          ],
        },
        {
          title: 'Финансы',
          rows: [
            { lbl: 'Accommodation', val: '€690' },
            { lbl: 'SPA', val: '€110' },
            { lbl: 'F&B', val: '€40' },
            { lbl: 'Other', val: '€0' },
            { lbl: 'Total', val: '€840', total: true },
          ],
        },
        {
          title: 'Note',
          rows: [
            { lbl: 'Reception', val: 'Anniversary couple, send champagne' },
          ],
        },
      ],
      actions: { primary: 'Open in Cloudbeds ↗', secondary: 'Send WhatsApp' },
    },
    bookingsList: {
      kind: 'bookingsList',
      title: 'Все бронирования',
      period: 'Полный список будет добавлен позже',
      body: 'Full bookings list coming soon',
    },
    pulse_inhouse: { kind: 'pulse', pulseKind: 'inhouse' },
    pulse_arrivals: { kind: 'pulse', pulseKind: 'arrivals' },
    pulse_departures: { kind: 'pulse', pulseKind: 'departures' },
    pulse_spa: { kind: 'pulse', pulseKind: 'spa' },
    pulse_messages: { kind: 'pulse', pulseKind: 'messages' },
  },
  en: {
    revenue: {
      title: 'Total revenue · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Total revenue', val: '€42,580', delta: '+12%', deltaSign: 'pos', sub: 'vs €38,018 prev. period' },
      sectionsTitle: 'Revenue mix',
      pl: [
        { lbl: 'Rooms', val: '€26,400', deltaPct: '+9%' },
        { lbl: 'SPA', val: '€9,368', deltaPct: '+18%' },
        { lbl: 'F&B (bar, mini-kitchen)', val: '€5,535', deltaPct: '+22%' },
        { lbl: 'Other (tours, rentals)', val: '€1,277', deltaPct: '+4%' },
        { lbl: 'Total', val: '€42,580', total: true, deltaPct: '+12%' },
      ],
      sparkLabel: 'Daily revenue (30 days)',
    },
    rpg: {
      title: 'Revenue per guest · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Revenue per guest', val: '€385', delta: '+6%', deltaSign: 'pos', sub: '110 unique guests' },
      sectionsTitle: 'Composition',
      pl: [
        { lbl: '— Rooms / guest', val: '€240' },
        { lbl: '— SPA / guest', val: '€85' },
        { lbl: '— F&B / guest', val: '€50' },
        { lbl: '— Other', val: '€10' },
        { lbl: 'RPG total', val: '€385', total: true, deltaPct: '+6%' },
      ],
      sparkLabel: 'RPG by week',
    },
    occupancy: {
      title: 'Occupancy · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Occupancy', val: '118 / 150', delta: '+8 nights', deltaSign: 'pos', sub: '78% · target 75%' },
      sectionsTitle: 'By cabin',
      pl: [
        { lbl: 'Bali', val: '26 / 30 nights', deltaPct: '87%' },
        { lbl: 'Cyprus', val: '24 / 30 nights', deltaPct: '80%' },
        { lbl: 'Portofino', val: '22 / 30 nights', deltaPct: '73%' },
        { lbl: 'Latvia', val: '24 / 30 nights', deltaPct: '80%' },
        { lbl: 'Maldives', val: '22 / 30 nights', deltaPct: '73%' },
        { lbl: 'Total', val: '118 / 150', total: true, deltaPct: '78%' },
      ],
      sparkLabel: 'Daily occupancy',
    },
    cell: {
      kind: 'cell',
      titleFree: 'Open night',
      titleBlocked: 'Cabin block',
      titleBooking: 'Booking {id} · {cabin}',
      period: 'Next 30 days',
      labels: {
        dayStatus: 'Day status',
        guest: 'Guest',
        booking: 'Booking',
        source: 'Customer source',
        payment: 'Payment',
        operations: 'Operations',
        opportunity: 'Opportunity',
        free: 'Free',
        blocked: 'Blocked',
        noGuest: 'No guest',
        openCloudbeds: 'Open in Cloudbeds ↗',
        sendWhatsApp: 'Send WhatsApp',
        markPaid: 'Mark paid',
        suggestedPrice: 'Suggested price',
        salesAction: 'Sales action',
      },
      payment: { paid: 'Paid', partial: 'Partially paid', unpaid: 'Unpaid', hold: 'Hold / pre-auth' },
      confidence: { manual: 'manual', ga4: 'GA4', unknown: 'unknown' },
      opsCopy: {
        arrival: 'Arrival day: check cabin readiness and the welcome message.',
        departure: 'Departure day: request a review and update the CRM profile.',
        stay: 'Guest is staying this day: check notes and possible SPA upsell.',
        future: 'Future booking: check payment, source, and pre-arrival communication.',
        past: 'Past night: use this data for CRM segmentation and repeat marketing.',
        empty: 'Open night: push a last-minute offer or SPA+stay package.',
        blocked: 'Blocked day: check the reason and whether it can return to sale.',
      },
    },
    gop: {
      title: 'GOP margin · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'GOP margin', val: '34%', delta: '+2 pp', deltaSign: 'pos', sub: 'GOP €14,477 · target 32%' },
      sectionsTitle: 'Mini P&L',
      pl: [
        { lbl: 'Revenue', val: '€42,580' },
        { lbl: 'Cost of sales (COGS)', val: '€8,120', neg: true },
        { lbl: 'Operating expenses', val: '€15,163', neg: true },
        { lbl: '— Salaries', val: '€8,400' },
        { lbl: '— Utilities', val: '€2,180' },
        { lbl: '— Housekeeping', val: '€2,260' },
        { lbl: '— Other', val: '€2,323' },
        { lbl: 'Marketing', val: '€4,820', neg: true },
        { lbl: 'GOP', val: '€14,477', total: true, deltaPct: '+18%' },
        { lbl: 'GOP margin', val: '34%', total: true, deltaPct: '+2 pp' },
      ],
      sparkLabel: 'GOP margin (90 days)',
    },
    spend: {
      title: 'Marketing spend · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Marketing spend', val: '€4,820', delta: '+8%', deltaSign: 'flat', sub: 'Monthly budget: €5,200' },
      sectionsTitle: 'By channel',
      pl: [
        { lbl: 'Google Ads', val: '€2,100', deltaPct: '+5%' },
        { lbl: 'Meta Ads', val: '€1,800', deltaPct: '+12%' },
        { lbl: 'TikTok Ads', val: '€920', deltaPct: '+8%' },
        { lbl: 'Total', val: '€4,820', total: true, deltaPct: '+8%' },
      ],
      sparkLabel: 'Daily spend',
    },
    roas: {
      title: 'Blended ROAS · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Blended ROAS', val: '8.8x', delta: '−0.6x', deltaSign: 'warn', sub: 'Paid revenue: €42,420' },
      sectionsTitle: 'By channel',
      pl: [
        { lbl: 'Google Ads', val: '11.2x', deltaPct: '−0.4x' },
        { lbl: 'Meta Ads', val: '7.4x', deltaPct: '−0.9x' },
        { lbl: 'TikTok Ads', val: '5.1x', deltaPct: '+0.2x' },
        { lbl: 'Blended', val: '8.8x', total: true, deltaPct: '−0.6x' },
      ],
      sparkLabel: 'ROAS by week',
    },
    cac: {
      title: 'CAC · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'CAC', val: '€68', delta: '+€12', deltaSign: 'neg', sub: '71 new guests · benchmark €55' },
      sectionsTitle: 'By channel',
      pl: [
        { lbl: 'Google Ads', val: '€52', deltaPct: '+€6' },
        { lbl: 'Meta Ads', val: '€78', deltaPct: '+€18' },
        { lbl: 'TikTok Ads', val: '€95', deltaPct: '+€20' },
        { lbl: 'Average', val: '€68', total: true, deltaPct: '+€12' },
      ],
      sparkLabel: 'CAC by week',
    },
    direct: {
      title: 'Direct booking · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Direct booking', val: '54%', delta: '+4 pp', deltaSign: 'pos', sub: 'Saved ~€2,300 on commissions' },
      sectionsTitle: 'By source',
      pl: [
        { lbl: 'Website (direct)', val: '38%', deltaPct: '+3 pp' },
        { lbl: 'WhatsApp / Messenger', val: '12%', deltaPct: '+2 pp' },
        { lbl: 'Phone / repeat', val: '4%', deltaPct: '−1 pp' },
        { lbl: 'Booking.com', val: '28%', deltaPct: '−2 pp' },
        { lbl: 'Airbnb', val: '14%', deltaPct: '−1 pp' },
        { lbl: 'Other', val: '4%', deltaPct: '−1 pp' },
        { lbl: 'Direct total', val: '54%', total: true, deltaPct: '+4 pp' },
      ],
      sparkLabel: 'Direct share by week',
    },
    loyaltyRepeat: {
      title: 'Repeat guest rate · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'Repeat guest rate', val: '28%', delta: '+3 pp', deltaSign: 'pos', sub: '106 guests · 30 guests with 2+ visits' },
      sectionsTitle: 'Composition',
      pl: [
        { lbl: 'Repeat guests', val: '30 guests', deltaPct: '+6' },
        { lbl: 'New guests', val: '76 guests', deltaPct: '+14' },
        { lbl: 'VIP repeat (4+ stays)', val: '9 guests', deltaPct: '+2' },
        { lbl: 'Avg repeat LTV', val: '€840', deltaPct: '+€70' },
        { lbl: 'Avg new guest LTV', val: '€310', deltaPct: '+€24' },
        { lbl: 'Total repeat rate', val: '28%', total: true, deltaPct: '+3 pp' },
      ],
      sparkLabel: 'Repeat rate by week',
    },
    loyaltyReviewScore: {
      title: 'Avg review score · breakdown',
      period: 'Last 90 days',
      headline: { lbl: 'Avg review score', val: '9.1 / 10', delta: '+0.1', deltaSign: 'pos', sub: 'Weighted across Booking.com, Google, and TripAdvisor' },
      sectionsTitle: 'By platform',
      pl: [
        { lbl: 'Booking.com', val: '9.0 / 10', deltaPct: '+0.1' },
        { lbl: 'Google', val: '9.3 / 10', deltaPct: '+0.2' },
        { lbl: 'TripAdvisor', val: '9.0 / 10', deltaPct: 'flat' },
        { lbl: 'Service / staff', val: '9.4', deltaPct: '+0.2' },
        { lbl: 'Cleanliness', val: '9.2', deltaPct: '+0.1' },
        { lbl: 'Value for money', val: '8.7', deltaPct: 'watch' },
        { lbl: 'Average score', val: '9.1', total: true, deltaPct: '+0.1' },
      ],
      sparkLabel: 'Review score trend',
    },
    loyaltyNewReviews: {
      title: 'New reviews · breakdown',
      period: 'For the last 30 days',
      headline: { lbl: 'New reviews', val: '23', delta: '+5', deltaSign: 'pos', sub: 'Review request conversion: 38%' },
      sectionsTitle: 'Review flow',
      pl: [
        { lbl: 'Booking.com', val: '11 reviews', deltaPct: '+3' },
        { lbl: 'Google', val: '8 reviews', deltaPct: '+2' },
        { lbl: 'TripAdvisor', val: '4 reviews', deltaPct: 'flat' },
        { lbl: 'Positive', val: '20 reviews', deltaPct: '87%' },
        { lbl: 'Neutral', val: '2 reviews', deltaPct: '9%' },
        { lbl: 'Needs manager reply', val: '1 review', deltaPct: 'today' },
        { lbl: 'Total new reviews', val: '23', total: true, deltaPct: '+5' },
      ],
      sparkLabel: 'New reviews by day',
    },
    booking: {
      kind: 'booking',
      title: 'Booking B-2856 · Bali',
      period: 'Mock detail · Cloudbeds later',
      stats: [
        { lbl: 'Revenue', val: '€840' },
        { lbl: 'Nights', val: '3' },
        { lbl: 'Channel', val: 'Direct' },
      ],
      sections: [
        {
          title: 'Guest',
          rows: [
            { lbl: 'Name', val: 'Anderson Mark' },
            { lbl: 'Email', val: 'mark.anderson@example.com' },
            { lbl: 'Phone', val: '+371 22 555 285' },
            { lbl: 'Country', val: '🇺🇸 US · United States' },
          ],
        },
        {
          title: 'Booking',
          rows: [
            { lbl: 'Dates', val: 'May 10 → May 13 · 3N' },
            { lbl: 'Cabin', val: 'Bali' },
            { lbl: 'Guests', val: '2A' },
            { lbl: 'Lead time', val: '12d before' },
            { lbl: 'Source', val: 'Instagram · manual' },
            { lbl: 'Status', val: 'Confirmed' },
          ],
        },
        {
          title: 'Finance',
          rows: [
            { lbl: 'Accommodation', val: '€690' },
            { lbl: 'SPA', val: '€110' },
            { lbl: 'F&B', val: '€40' },
            { lbl: 'Other', val: '€0' },
            { lbl: 'Total', val: '€840', total: true },
          ],
        },
        {
          title: 'Note',
          rows: [
            { lbl: 'Reception', val: 'Anniversary couple, send champagne' },
          ],
        },
      ],
      actions: { primary: 'Open in Cloudbeds ↗', secondary: 'Send WhatsApp' },
    },
    bookingsList: {
      kind: 'bookingsList',
      title: 'All bookings',
      period: 'Full list will be added later',
      body: 'Full bookings list coming soon',
    },
    pulse_inhouse: { kind: 'pulse', pulseKind: 'inhouse' },
    pulse_arrivals: { kind: 'pulse', pulseKind: 'arrivals' },
    pulse_departures: { kind: 'pulse', pulseKind: 'departures' },
    pulse_spa: { kind: 'pulse', pulseKind: 'spa' },
    pulse_messages: { kind: 'pulse', pulseKind: 'messages' },
  },
};

window.DRAWERS_OV2 = DRAWERS_OV2;
