.growth-global-toggle{
  display:inline-flex;
  border:1px solid var(--dd-border);
  border-radius:999px;
  background:#fff;
  overflow:hidden;
}
.growth-global-toggle .growth-mode-option{
  margin:0;
}
/* Ant Design 5-inspired global design tokens */
/* Google Fonts с fallback на системные шрифты */
@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;600;700&display=swap');

/* Fallback: если Google Fonts не загрузились, используем системные шрифты */
@supports not (font-display: swap) {
    /* Для старых браузеров */
}

:root {
  /* === Единая система дизайн-токенов === */
  
  /* Colors - основная палитра */
  --color-primary: #2563EB;
  --color-primary-hover: #1D4ED8;
  --color-success: #059669;
  --color-error: #DC2626;
  --color-warning: #f3af00;
  
  /* Backgrounds */
  --bg-base: #ffffff;
  --bg-muted: #f6f7f8;
  --bg-layout: #f8fafc;
  
  /* Text colors */
  --text-base: #111827;
  --text-muted: #6B7280;
  --text-sub: #9CA3AF;
  
  /* Borders */
  --border-base: #E5E7EB;
  --border-strong: #D1D5DB;
  
  /* Typography */
  --font-family: 'Rubik', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-size-base: 14px;
  --font-size-sm: 12px;
  --font-size-lg: 16px;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-base: 1.5;
  
  /* Spacing - компактная система для плотного интерфейса */
  --spacing-xs: 4px;
  --spacing-sm: 6px;
  --spacing-md: 10px;
  --spacing-lg: 14px;
  --spacing-xl: 20px;
  
  /* Controls - компактные */
  --control-height: 32px;
  --control-height-sm: 28px;
  --control-padding-x: 8px;
  --control-padding-y: 5px;
  
  /* Border radius */
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 12px;
  
  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(17,24,39,.06);
  --shadow-md: 0 6px 16px rgba(0,0,0,0.06);
  --shadow-lg: 0 8px 24px rgba(17,24,39,.08);
  
  /* Input widths - оптимизированные размеры */
  --input-width-compact: 90px;   /* проценты, короткие числа */
  --input-width-small: 130px;    /* средние числа */
  --input-width-medium: 190px;   /* обычные поля */
  --input-width-large: 320px;    /* длинные текстовые поля */
  
  /* Legacy compatibility - используем новые значения */
  --colorPrimary: var(--color-primary);
  --colorSuccess: var(--color-success);
  --colorError: var(--color-error);
  --colorTextBase: var(--text-base);
  --colorBgContainer: var(--bg-base);
  --colorBgLayout: var(--bg-layout);
  --colorBorder: var(--border-base);
  --fontFamily: var(--font-family);
  --controlHeight: var(--control-height);
  --borderRadius: var(--radius-md);
  --borderRadiusSM: var(--radius-sm);
  --boxShadow: var(--shadow-md);
  
  /* DataDive compatibility */
  --dd-bg: #0b0c0e;
  --dd-panel: var(--bg-base);
  --dd-muted: var(--bg-muted);
  --dd-border: var(--border-base);
  --dd-border-strong: var(--border-strong);
  --dd-text: var(--text-base);
  --dd-sub: var(--text-muted);
  --dd-blue: var(--color-primary);
  --dd-blue-600: var(--color-primary-hover);
  --dd-green: var(--color-success);
  --dd-red: var(--color-error);
  --dd-radius: var(--radius-md);
  --dd-radius-sm: var(--radius-sm);
  --dd-shadow: var(--shadow-sm);
  --dd-shadow-lg: var(--shadow-lg);
}

/* === Base styles === */
html, body {
  font-family: var(--font-family);
  color: var(--text-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* === Form inputs - компактные === */
#calculatorForm input[type="text"],
#calculatorForm input[type="number"],
#calculatorForm input[type="url"],
#calculatorForm input[type="email"],
#calculatorForm select,
#calculatorForm textarea {
  height: var(--control-height);
  padding: var(--control-padding-y) var(--control-padding-x);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-base);
  background: var(--bg-base);
  font-size: 13px;
  transition: border-color .12s ease, box-shadow .12s ease;
}

/* Компактные инпуты в карточках */
.calc-card input[type="text"],
.calc-card input[type="number"] {
  height: var(--control-height);
  padding: var(--control-padding-y) var(--control-padding-x);
  font-size: 13px;
}

#calculatorForm button {
  height: var(--controlHeight);
  border-radius: var(--borderRadius);
  box-shadow: var(--boxShadow);
}

/* Keep primary action large but follow new radius */
button.primary-action {
  height: auto;
  border-radius: var(--borderRadius);
  box-shadow: var(--boxShadow);
  background-color: var(--colorPrimary);
  color: #fff;
}

/* Error state used by JS validator */
.input-error { border-color: var(--colorError) !important; }

/* Modal animations */
@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95) translateY(-10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* Utilities */
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.card-shadow { box-shadow: 0 10px 25px rgba(0,0,0,0.1); }

/* Fixed header - объединено выше */

/* Scroll-to-top button */
.scroll-to-top {
            position: fixed;
  bottom: 30px; right: 30px;
  width: 50px; height: 50px;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #fff; border: none;
  border-radius: 50%;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  transition: transform .3s ease, box-shadow .3s ease;
            z-index: 1000;
}
.scroll-to-top:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.3);
}
.scroll-to-top.show { display: flex; }

/* Competitors block responsive */
        @media (max-width: 768px) {
            .competitor-item .grid {
                grid-template-columns: 1fr 1fr !important;
                gap: 0.5rem !important;
  }
  .competitor-item .col-span-4 { grid-column: span 2 !important; }
  .competitor-item .col-span-2 { grid-column: span 1 !important; }
  .competitor-item .col-span-1 { grid-column: span 1 !important; }
}
@media (max-width: 640px) {
  .competitor-item .grid {
    grid-template-columns: 1fr !important;
    gap: 0.25rem !important;
  }
  .competitor-item .col-span-4,
  .competitor-item .col-span-2,
  .competitor-item .col-span-1 { grid-column: span 1 !important; }
}

/* DEMO TOUR */
.demo-highlight {
  position: relative !important;
  outline: 3px solid rgba(99,102,241,.9);
  box-shadow: 0 0 0 8px rgba(99,102,241,.18);
  border-radius: 10px;
  transition: outline-color .2s, box-shadow .2s;
}

.demo-tour-backdrop {
  position: fixed; inset: 0;
  background: rgba(15,23,42,.35);
  z-index: 99990;
}

.demo-tour-pop {
  position: absolute;
  z-index: 99999;
  max-width: 360px; min-width: 280px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 14px 40px rgba(2,6,23,.25);
  padding: 14px 16px;
  font: 14px/1.45 Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: #0f172a;
  word-break: break-word;
  overflow: visible;
}
.demo-tour-pop h4 { margin: 0 0 6px; font-size: 15px; font-weight: 600; }
.demo-tour-actions { margin-top: 12px; display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.demo-tour-btn { border: 1px solid #e5e7eb; background: #fff; padding: 7px 12px; border-radius: 8px; cursor: pointer; }
.demo-tour-btn.primary { background: #6366f1; color: #fff; border-color: #6366f1; }
.demo-tour-arrow {
  position: absolute; width: 12px; height: 12px; transform: rotate(45deg);
  background: #fff; border-left: 1px solid #e5e7eb; border-top: 1px solid #e5e7eb;
}
/* DEMO TOUR — защита контента от стрелки */
.demo-tour-pop .demo-tour-arrow { pointer-events: none; z-index: 0; }

.demo-tour-pop.side-right { padding-left: 26px; }
.demo-tour-pop.side-left  { padding-right: 26px; }
.demo-tour-pop.side-top   { padding-bottom: 26px; }
.demo-tour-pop.side-bottom{ padding-top: 26px; }

/* === Calculator cards - компактные === */
.calc-card {
  background: var(--bg-base);
  border: 1px solid var(--border-base);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: var(--spacing-md);
}

.calc-card .card-title {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  font-size: 15px;
  font-weight: var(--font-weight-semibold);
  color: var(--text-base);
  margin-bottom: var(--spacing-md);
  line-height: 1.3;
}

.calc-card .card-title .card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--radius-sm);
  background: #EEF2FF;
  color: #4F46E5;
  font-size: var(--font-size-sm);
}

/* === Header === */
.fixed-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--bg-base);
  border-bottom: 1px solid var(--border-base);
  box-shadow: 0 0 0 1px rgba(17,24,39,.02);
  padding: var(--spacing-md) 0;
}

.fixed-header h1 {
  letter-spacing: .02em;
  color: var(--text-base);
  text-align: left;
}

.content-with-fixed-header {
  margin-top: 0;
}

.gradient-bg {
  background: var(--bg-base);
}
  
  /* Focus states */
  #calculatorForm input:focus,
  #calculatorForm select:focus,
  #calculatorForm textarea:focus {
    outline: 0;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(37,99,235,.12);
  }
  
  /* === Input width utilities === */
  .form-input {
    max-width: var(--input-width-large);
    width: 100%;
  }
  
  .form-input-medium {
    max-width: var(--input-width-medium);
    width: 100%;
  }
  
  .form-input-small {
    max-width: var(--input-width-small);
    width: 100%;
  }
  
  .form-input-compact {
    max-width: var(--input-width-compact);
    width: 100%;
  }
  
  /* Компактные поля для денежных значений в карточке стоимости */
  #costs-card .form-input-small {
    max-width: 130px;
    width: 100%;
  }
  
  #costs-card .form-input-compact {
    max-width: 110px;
    width: 100%;
  }
  
  
  /* Автоматическое применение размеров по типу поля */
  .calc-card input[type="text"]:not([class*="form-input"]),
  .calc-card input[type="number"]:not([class*="form-input"]) {
    max-width: var(--input-width-medium);
    width: 100%;
  }
  
  /* Короткие поля (проценты, вес, количество) */
  .calc-card input[name*="fee"]:not([class*="form-input"]),
  .calc-card input[name*="rate"]:not([class*="form-input"]),
  .calc-card input[name*="percentage"]:not([class*="form-input"]),
  .calc-card input[name*="weight"]:not([class*="form-input"]),
  .calc-card input[name*="quantity"]:not([class*="form-input"]),
  .calc-card input[name*="referral_fee"]:not([class*="form-input"]),
  .calc-card input[name*="conversion_rate"]:not([class*="form-input"]),
  .calc-card input[name*="ppc_sales_percentage"]:not([class*="form-input"]),
  .calc-card input[name*="return_rate"]:not([class*="form-input"]),
  .calc-card input[name*="unit_weight_kg"]:not([class*="form-input"]) {
    max-width: var(--input-width-compact);
    width: 100%;
  }
  
  /* === Calculator grid - адаптивная сетка === */
  #calculatorForm {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }
  
  @media (min-width: 768px) {
    #calculatorForm {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  
  @media (min-width: 1024px) {
    #calculatorForm {
      grid-template-columns: repeat(3, 1fr);
    }
  }
  
  /* Компактные отступы внутри карточек */
  .calc-card .space-y-1\.5 > * + * {
    margin-top: var(--spacing-sm);
  }
  
  .calc-card .space-y-2 > * + * {
    margin-top: var(--spacing-sm);
  }
  
  .calc-card .space-y-3 > * + * {
    margin-top: var(--spacing-md);
  }
  
  /* Компактные grid gaps */
  .calc-card .grid.gap-2 {
    gap: var(--spacing-sm);
  }
  
  .calc-card .grid.gap-3 {
    gap: var(--spacing-md);
  }
  
  /* === Глобальная оптимизация spacing === */
  
  /* Компактные labels - переопределяем mb-1 везде */
  .calc-card label.mb-1,
  .calc-card label.mb-0\.5,
  #calculatorForm label.mb-1 {
    margin-bottom: 2px;
  }
  
  /* Убираем лишние padding из всех инпутов */
  .calc-card input.px-3,
  .calc-card input.py-2,
  #calculatorForm input.px-3,
  #calculatorForm input.py-2 {
    padding-left: var(--control-padding-x);
    padding-right: var(--control-padding-x);
    padding-top: var(--control-padding-y);
    padding-bottom: var(--control-padding-y);
  }
  
  /* Компактный размер шрифта для всех инпутов */
  .calc-card input.text-sm,
  #calculatorForm input.text-sm {
    font-size: 13px;
  }
  
  /* Компактные отступы в секциях */
  .bg-white.rounded-lg.shadow-lg.p-6 {
    padding: var(--spacing-lg);
  }
  
  .bg-white.rounded-lg.shadow-lg.p-4 {
    padding: var(--spacing-md);
  }
  
  /* Компактные заголовки */
  h2.text-2xl {
    font-size: 18px;
    margin-bottom: var(--spacing-md);
  }
  
  h3.text-xl {
    font-size: 16px;
  }
  
  /* Компактные gaps в grid */
  .grid.gap-4 {
    gap: var(--spacing-md);
  }
  
  .grid.gap-6 {
    gap: var(--spacing-lg);
  }
  
  /* Компактные отступы между секциями */
  .mb-8 {
    margin-bottom: var(--spacing-lg);
  }
  
  .mb-6 {
    margin-bottom: var(--spacing-md);
  }
  
  .mb-4 {
    margin-bottom: var(--spacing-md);
  }
  
  /* Компактные кнопки */
  button.px-4,
  button.py-2 {
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
  }
  
  /* Уменьшаем отступы в секциях результатов */
  .bg-white.rounded-lg.shadow-lg {
    padding: var(--spacing-lg);
  }
  
  /* Компактные заголовки секций */
  h2.text-xl {
    font-size: 18px;
    margin-bottom: var(--spacing-md);
  }
  
  h2.text-lg {
    font-size: 16px;
    margin-bottom: var(--spacing-sm);
  }
  
  /* Карточка конкурентов занимает всю ширину */
  #calculatorForm > .lg\:col-span-2,
  #calculatorForm > [class*="lg:col-span-2"] {
    grid-column: 1 / -1;
  }
  
  @media (min-width: 1024px) {
    #calculatorForm > .lg\:col-span-2,
    #calculatorForm > [class*="lg:col-span-2"] {
      grid-column: span 3;
    }
  }
  
  /* Инпуты в карточке конкурентов также ограничены */
  #competitors-container input[type="text"],
  #competitors-container input[type="number"] {
    max-width: 100%;
  }
  
  #competitors-container .w-24 input,
  #competitors-container .w-20 input {
    max-width: 100%;
  }
  
  /* Инпуты в секции бюджета - компактные и выровненные */
  #launchBudgetSection .expense-item {
    display: flex;
    align-items: center;
    gap: 8px;
  }
  
  /* === Budget section inputs === */
  #launchBudgetSection .expense-name {
    max-width: 220px;
    min-width: 100px;
    flex: 0 1 auto;
    width: auto;
  }
  
  #launchBudgetSection .expense-name.flex-1 {
    flex: 0 1 auto;
    max-width: 220px;
  }
  
  #launchBudgetSection .expense-name.w-full {
    max-width: 200px;
    width: auto;
    flex: 0 1 auto;
  }
  
  #launchBudgetSection .expense-amount {
    max-width: 100px;
    min-width: 80px;
    width: 100px;
    flex: 0 0 100px;
    text-align: right;
  }
  
  #launchBudgetSection .expense-amount.w-20 {
    width: 100px;
    max-width: 100px;
    min-width: 80px;
    flex: 0 0 100px;
  }
  
  /* Маркетинг секция */
  #launchBudgetSection .w-28 {
    width: 100px;
    max-width: 100px;
    flex: 0 0 100px;
  }
  
  #launchBudgetSection .w-40 {
    width: 140px;
    max-width: 140px;
    flex: 0 0 140px;
  }
  
  #launchBudgetSection #buyouts_with_reviews_qty,
  #launchBudgetSection #buyouts_no_reviews_qty,
  #launchBudgetSection #vine_qty {
    max-width: 80px;
    width: 80px;
  }
  
  #launchBudgetSection #buyouts_with_reviews_total,
  #launchBudgetSection #buyouts_no_reviews_total,
  #launchBudgetSection #vine_total,
  #launchBudgetSection #vine_fee_display {
    max-width: 130px;
    width: 130px;
  }
  
  #launchBudgetSection #buyouts_sales_tax_reviews,
  #launchBudgetSection #buyouts_sales_tax_no_reviews {
    max-width: 60px;
    width: 60px;
  }
  
  /* Общие стили для всех числовых полей в секции бюджета */
  #launchBudgetSection input[type="number"] {
    text-align: right;
  }
  
  /* Числа в моно для лучшей читаемости метрик */
  #calculatorForm input[type="number"],
  #profitabilityResults .text-2xl,
  #batchResults .text-3xl,
  #batchResults .text-4xl,
  #total-budget{
    font-variant-numeric:tabular-nums;
    font-feature-settings:"tnum" 1, "cv01" 1;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  }
  
  /* Кнопки: плоские, с чётким ховером */
  button, .chart-type-btn{
    height:34px;
    border-radius:8px;
    border:1px solid var(--dd-border);
    background:#fff;
    color:#0F172A;
    font-weight:500;
    transition:background .12s ease, border-color .12s ease, color .12s ease, box-shadow .12s ease;
  }
  button:hover, .chart-type-btn:hover{
    border-color:var(--dd-border-strong);
    background:#F9FAFB;
  }
  
  /* Кнопки выбора типа диаграммы - читабельный текст с максимальной специфичностью */
  /* Активная кнопка - синий фон, белый текст */
  button.chart-type-btn.bg-blue-600,
  button.chart-type-btn.bg-blue-600.text-white,
  button[onclick*="changeChartType"].chart-type-btn.bg-blue-600,
  button.chart-type-btn[style*="background-color: #2563EB"],
  button.chart-type-btn[style*="background-color:#2563EB"] {
    background-color: #2563EB !important;
    background: #2563EB !important;
    color: #FFFFFF !important;
    border-color: #2563EB !important;
  }
  
  button.chart-type-btn.bg-blue-600:hover,
  button.chart-type-btn.bg-blue-600.text-white:hover,
  button[onclick*="changeChartType"].chart-type-btn.bg-blue-600:hover {
    background-color: #1D4ED8 !important;
    background: #1D4ED8 !important;
    border-color: #1D4ED8 !important;
    color: #FFFFFF !important;
  }
  
  /* Неактивная кнопка - серый фон, темный текст */
  button.chart-type-btn.bg-gray-200,
  button.chart-type-btn.bg-gray-200.text-gray-700,
  button[onclick*="changeChartType"].chart-type-btn.bg-gray-200,
  button.chart-type-btn[style*="background-color: #E5E7EB"],
  button.chart-type-btn[style*="background-color:#E5E7EB"] {
    background-color: #E5E7EB !important;
    background: #E5E7EB !important;
    color: #374151 !important;
    border-color: #D1D5DB !important;
  }
  
  button.chart-type-btn.bg-gray-200:hover,
  button.chart-type-btn.bg-gray-200.text-gray-700:hover,
  button[onclick*="changeChartType"].chart-type-btn.bg-gray-200:hover {
    background-color: #D1D5DB !important;
    background: #D1D5DB !important;
    color: #111827 !important;
    border-color: #9CA3AF !important;
  }
  
  /* Принудительное переопределение цвета текста */
  button.chart-type-btn.text-white {
    color: #FFFFFF !important;
  }
  
  button.chart-type-btn.text-gray-700 {
    color: #374151 !important;
  }
  
  /* Специфичные правила для комбинаций классов */
  button.chart-type-btn.bg-blue-600.text-white {
    color: #FFFFFF !important;
  }
  
  button.chart-type-btn.bg-gray-200.text-gray-700 {
    color: #374151 !important;
  }
  button.primary-action,
  .bg-blue-600{ background:var(--dd-blue) !important; border-color:var(--dd-blue) !important; }
  button.primary-action:hover,
  .bg-blue-600:hover{ background:var(--dd-blue-600) !important; }
  
  /* Табличные шапки и ячейки в блоках результатов/прогноза */
  table{ border-collapse:collapse; }
  table thead tr{ background:#F9FAFB; }
  table th, table td{
    border:1px solid var(--dd-border);
    padding:8px 10px;
    font-size:12.5px;
  }
  #forecastTableBody td{ vertical-align:middle; }
  
  /* Блоки метрик: меньше пастельных фонов, больше акцентов цифрами */
  #profitabilityResults > div,
  #batchResults > div{
    background:#fff !important;
    border:1px solid var(--dd-border) !important;
    box-shadow:var(--dd-shadow) !important;
  }
  #profitabilityResults h3,
  #batchResults h3{ color:#374151; font-size:12.5px; font-weight:600; }
  
.tile-tooltip-wrapper{
  position:relative;
  overflow:visible;
  border-radius:12px;
  cursor:help;
  isolation:isolate;
}
.tile-tooltip-wrapper:focus-within .tile-tooltip,
.tile-tooltip-wrapper:hover .tile-tooltip{
  opacity:1;
  transform:translate(-50%, -4px);
  pointer-events:auto;
}
.tile-tooltip-wrapper .tile-tooltip{
  position:absolute;
  bottom:100%;
  left:50%;
  background:rgba(17,24,39,.92);
  color:#F9FAFB;
  border-radius:12px;
  padding:12px 14px;
  font-size:12px;
  line-height:1.35;
  box-shadow:0 12px 30px rgba(15,23,42,.45);
  opacity:0;
  transform:translate(-50%, 6px);
  transition:opacity .18s ease, transform .18s ease;
  pointer-events:none;
  backdrop-filter:blur(6px);
  width:min(320px, calc(100% + 80px));
  z-index:10;
}
.tile-tooltip strong{
  display:block;
  font-size:12.5px;
  margin-bottom:4px;
  color:#E0E7FF;
}
.tile-tooltip::after{
  content:"";
  position:absolute;
  bottom:-7px;
  left:calc(50% - 7px);
  width:14px;
  height:14px;
  background:rgba(17,24,39,.92);
  transform:rotate(45deg);
  box-shadow:6px 6px 18px rgba(15,23,42,.3);
}

.coupon-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  user-select:none;
}
.coupon-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.coupon-toggle .toggle-track{
  width:44px;
  height:24px;
  border-radius:999px;
  background:#d1d5db;
  position:relative;
  transition:background .2s ease;
  box-shadow:inset 0 1px 3px rgba(15,23,42,.2);
}
.coupon-toggle .toggle-thumb{
  width:20px;
  height:20px;
  background:#fff;
  border-radius:50%;
  position:absolute;
  top:2px;
  left:2px;
  transition:transform .2s ease, box-shadow .2s ease;
  box-shadow:0 2px 6px rgba(15,23,42,.25);
}
.coupon-toggle input:checked + .toggle-track{
  background:#10b981;
}
.coupon-toggle input:checked + .toggle-track .toggle-thumb{
  transform:translateX(20px);
}

.chart-config{
  position:relative;
  align-self:flex-start;
}
.chart-config-btn{
  border:1px solid var(--dd-border);
  border-radius:999px;
  padding:6px 14px;
  font-size:13px;
  font-weight:600;
  background:#fff;
  color:#111827;
  transition:all .15s ease;
  box-shadow:var(--dd-shadow);
}
.chart-config-btn:hover{
  background:#f3f4f6;
}
.chart-config-panel{
  position:absolute;
  right:0;
  top:110%;
  width:320px;
  max-height:420px;
  overflow-y:auto;
  background:#fff;
  border:1px solid var(--dd-border);
  border-radius:14px;
  padding:14px;
  box-shadow:var(--dd-shadow-lg);
  z-index:30;
}
.chart-config-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
}
.chart-config-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.chart-config-group{
  border:1px solid var(--dd-border);
  border-radius:12px;
  padding:10px;
  background:#f9fafb;
}
.chart-config-group h4{
  font-size:12px;
  font-weight:600;
  color:#374151;
  margin-bottom:6px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.chart-config-option{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:#111827;
  margin-bottom:4px;
}
.chart-config-option:last-child{
  margin-bottom:0;
}
.chart-config-option input{
  width:16px;
  height:16px;
}

.chart-hover-panel{
  position:fixed;
  left:0;
  top:0;
  transform:translate(-50%, calc(-100% - 12px));
  background:rgba(15,23,42,.95);
  color:#fff;
  border-radius:12px;
  padding:10px 14px;
  min-width:180px;
  max-width:260px;
  box-shadow:0 16px 30px rgba(15,23,42,.4);
  font-size:12px;
  line-height:1.45;
  pointer-events:none;
  display:none;
  z-index:200;
}
.chart-hover-panel strong{
  display:block;
  font-size:13px;
  margin-bottom:6px;
  letter-spacing:.02em;
}
.chart-hover-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:4px;
  font-size:12px;
}
.chart-hover-row span:last-child{
  font-weight:600;
}
.chart-hover-row:last-child{
  margin-bottom:0;
}
.chart-hover-panel::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:50%;
  width:12px;
  height:12px;
  background:rgba(15,23,42,.95);
  transform:translateX(-50%) rotate(45deg);
  box-shadow:5px 5px 12px rgba(15,23,42,.25);
}
.chart-hover-empty{
  color:#e5e7eb;
  font-size:12px;
}

.chart-summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
}
.chart-summary-item{
  border:1px solid var(--dd-border);
  border-radius:12px;
  padding:12px 14px;
  background:#fff;
  box-shadow:var(--dd-shadow);
}
.chart-summary-label{
  font-size:11px;
  letter-spacing:.035em;
  text-transform:uppercase;
  color:#4b5563;
  margin-bottom:4px;
}
.chart-summary-value{
  font-size:20px;
  font-weight:600;
  color:#0f172a;
  line-height:1.2;
}
.chart-summary-empty{
  font-size:13px;
  color:#6b7280;
  text-align:center;
  grid-column:1 / -1;
}
.chart-summary-wrapper{
  width:100%;
  display:flex;
}
.chart-summary-card{
  display:flex;
  flex-direction:column;
  gap:12px;
  height:100%;
}
.chart-summary-card.compact{
  padding:14px 16px;
  gap:10px;
}
.chart-summary-sidebar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  width:100%;
}
.chart-summary-sidebar.compact{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.chart-summary-sidebar.compact .chart-summary-item{
  padding:8px 10px;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:var(--dd-muted);
  border-radius:8px;
  border:1px solid var(--dd-border);
  box-shadow:none;
}
.chart-summary-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.chart-summary-title{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:700;
  color:#111827;
}
.chart-summary-subtitle{
  font-size:11px;
  text-transform:uppercase;
  color:#6b7280;
  margin-top:2px;
}
.chart-summary-reset{
  font-size:11px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(15,23,42,.15);
  background:#fff;
  font-weight:600;
  color:#0f172a;
  transition:all .15s ease;
}
.chart-summary-reset:disabled{
  opacity:.4;
  cursor:default;
}
.chart-summary-reset:not(:disabled):hover{
  background:#0f172a;
  color:#fff;
  border-color:#0f172a;
}
.chart-summary-months{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:8px;
}
.chart-summary-month{
  font-size:11px;
  padding:3px 8px;
  border-radius:999px;
  background:var(--dd-muted);
  border:1px solid transparent;
  cursor:pointer;
  transition:all .15s ease;
  color:#374151;
}
.chart-summary-month:hover{
  border-color:#0ea5e9;
  color:#0ea5e9;
}
.chart-summary-month.active{
  background:#0f172a;
  color:#fff;
  border-color:#0f172a;
}
.chart-summary-sidebar.compact .chart-summary-label{
  font-size:10px;
  letter-spacing:.05em;
  margin-bottom:0;
  color:#4b5563;
  text-transform:uppercase;
}
.chart-summary-sidebar.compact .chart-summary-value{
  font-size:15px;
  font-weight:600;
  color:#111827;
}
.forecast-chart-row{
  align-items:stretch;
}
.forecast-chart-row .chart-summary-wrapper{
  align-items:stretch;
}
.chart-summary-sidebar.compact .chart-summary-item{
  break-inside:avoid;
}
@media (min-width:1024px){
  .chart-summary-sidebar.compact{
    column-count:2;
  }
}
.growth-cards-list{
  display:grid;
  gap:10px;
}
@media (min-width:768px){
  .growth-cards-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
.growth-control{
  border:1px solid var(--dd-border);
  border-radius:12px;
  padding:8px 10px;
  background:#fff;
  box-shadow:var(--dd-shadow);
}
.growth-control-head{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:6px;
}
@media (min-width:640px){
  .growth-control-head{
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
}
.growth-month{
  font-weight:600;
  color:#111827;
}
.growth-global-toggle{
  display:inline-flex;
  border:1px solid var(--dd-border);
  border-radius:999px;
  background:#fff;
  overflow:hidden;
  padding:2px;
  gap:0;
}
.growth-mode-option{
  display:flex;
  align-items:center;
  gap:4px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding:4px 10px;
  color:#475569;
  cursor:pointer;
}
.growth-mode-option input{ accent-color:#059669; }
.growth-global-toggle .growth-mode-option{ margin:0; }
.growth-control-body{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
@media (min-width:520px){
  .growth-control-body{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
.growth-field{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:#4b5563;
}
.growth-input{
  border:1px solid var(--dd-border);
  border-radius:10px;
  padding:8px 10px;
  font-size:14px;
  transition:border-color .15s ease, box-shadow .15s ease;
  max-width: var(--input-width-compact);
  width: var(--input-width-compact);
  text-align: right;
}
.growth-input:focus{
  outline:none;
  border-color:#10b981;
  box-shadow:0 0 0 1px rgba(16,185,129,.2);
}
.growth-input:disabled,
.growth-input-disabled{
  background:#f3f4f6;
  color:#94a3b8;
  cursor:not-allowed;
}

/* Ограничения ширины для инпутов в секции плана продаж */
#salesPlanSection .growth-input {
  max-width: 120px;
  width: 100%;
}

/* === Sales plan section inputs === */
#salesPlanSection input[id^="growth_"][id$="_units"] {
  max-width: var(--input-width-small);
  width: var(--input-width-small);
}

#salesPlanSection input[id^="growth_"]:not([id$="_units"]) {
  max-width: var(--input-width-compact);
  width: var(--input-width-compact);
}

#salesPlanSection #ppc-sales-share-section input[type="number"],
#salesPlanSection input[id^="tacos_m"] {
  max-width: var(--input-width-compact);
  width: var(--input-width-compact);
  flex: 0 0 var(--input-width-compact);
}

#salesPlanSection #tacos_target {
  max-width: var(--input-width-compact);
  width: var(--input-width-compact);
  justify-self: start;
}

#salesPlanSection #ppc-sales-share-section input.w-full {
  width: var(--input-width-compact);
  max-width: var(--input-width-compact);
}

/* Общие стили для всех инпутов в плане продаж */
#salesPlanSection input[type="number"],
#salesPlanSection input[type="text"] {
  text-align: right;
}

/* Сетка для секции PPC - фиксированные колонки */
#salesPlanSection #ppc-sales-share-section .grid.grid-cols-2 {
  grid-template-columns: 1fr var(--input-width-compact);
  gap: 12px;
  align-items: center;
}


#salesPlanSection #ppc-sales-share-section .grid.grid-cols-2 > div:first-child {
  text-align: left;
}

#salesPlanSection #ppc-sales-share-section .grid.grid-cols-2 > input {
  justify-self: start;
}
.growth-hint{
  font-size:11px;
  color:#b45309;
  min-height:14px;
  margin-top:6px;
}
.chart-bleed{
  width:100%;
}
@media (min-width:1024px){
  .chart-bleed{
    margin-left:-24px;
    margin-right:-24px;
    width:calc(100% + 48px);
  }
}
.forecast-table{
  border-collapse:separate;
  border-spacing:0;
}
.forecast-table th:first-child,
.forecast-table td:first-child{
  position:sticky;
  left:0;
  background:#fff;
  z-index:5;
  box-shadow:1px 0 0 rgba(229,231,235,.9);
}
.forecast-table th:first-child{
  background:#f9fafb;
  z-index:6;
}
  
  /* Хлебные панели и секции бюджета в мягком сером */
  #launchBudgetSection .rounded-lg{
    background:var(--dd-muted) !important;
    border:1px solid var(--dd-border) !important;
    box-shadow:none !important;
  }
  .expense-item{
    background:#fff;
    border:1px solid var(--dd-border);
    border-radius:8px;
    padding:8px;
  }
  
  /* Скролл-to-top в стиле «таблетки» */
  .scroll-to-top{
    width:auto; height:auto; padding:6px 10px;
    border-radius:999px;
    font-size:13px;
    background:#111827; color:#fff; box-shadow:var(--dd-shadow-lg);
  }
  
  /* Модалки и тур: без ярких теней */
  .demo-tour-backdrop{ background:rgba(15,23,42,.4); }
  .demo-tour-pop{
    border:1px solid var(--dd-border);
    box-shadow:var(--dd-shadow-lg);
    border-radius:10px;
  }
  
  /* Header action tiles: одинаковый размер, шрифт, границы */
  .action-tiles{ gap:10px; }
  .action-tiles > button,
  .action-tiles > label,
  .action-tiles > details > summary.tile-summary{
    height:34px;
    padding:6px 10px;
    font-size:12px;
    font-weight:600;
    border:0;
    background:transparent;
    color:#374151;
    cursor:pointer;
  }
  /* Все, кроме синих и зелёных — принудительно без заливки и с тёмным текстом */
  .action-tiles > button:not(#headerSaveBtn):not(#newCalcHeaderBtn),
  .action-tiles > label,
  .action-tiles > details > summary.tile-summary{
    background:transparent !important;
    color:#374151 !important;
    border:0 !important;
  }
  .action-tiles > details > summary.tile-summary{ list-style:none; }
  .tile-details > summary::-webkit-details-marker{ display:none; }
  .action-tiles > button:hover,
  .action-tiles > label:hover,
  .action-tiles > details > summary.tile-summary:hover{ color:#111827; }

  /* Синие и зелёные — с заливкой */
  .action-tiles #headerSaveBtn{ background:var(--dd-blue) !important; color:#fff !important; border:1px solid var(--dd-blue) !important; border-radius:10px; box-shadow:var(--dd-shadow); }
  .action-tiles #newCalcHeaderBtn{ background:#16a34a !important; color:#fff !important; border:1px solid #16a34a !important; border-radius:10px; box-shadow:var(--dd-shadow); }
  
  /* (устар.) Блок глобальной перекраски хедерных кнопок удалён,
     чтобы не перебивать точечные стили ниже */
  
  /* Компоновка конкурентов — компактнее сетка колонок */
  #competitors-container .flex-1{ min-width:220px; }
  #competitors-container .w-24{ width:96px !important; }
  #competitors-container .w-20{ width:88px !important; }
  
  /* Диаграмма бюджета — белая панель, тонкая рамка */
  .chart-container, #forecastChart{
    background:#fff;
    border:1px solid var(--dd-border);
    border-radius:10px;
  }

  /* Fullscreen loading overlay */
  #loadingSpinner{
    position:fixed; inset:0; z-index:2000;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.7);
    backdrop-filter: blur(2px);
  }
  #loadingSpinner.hidden{ display:none; }
  
  /* Состояния */
  .input-error{ border-color:var(--dd-red) !important; box-shadow:0 0 0 2px rgba(220,38,38,.08) !important; }
  .text-green-600{ color:var(--dd-green) !important; }
  .text-red-600{ color:var(--dd-red) !important; }
  
  /* === Header inner layout === */
  .header-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--spacing-md) var(--spacing-xl);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-lg);
  }
  
  .app-title {
    margin: 0;
    font-size: 20px;
    font-weight: var(--font-weight-bold);
    line-height: 1.2;
    letter-spacing: .02em;
    color: var(--text-base);
    text-align: left;
  }
  
  /* Header buttons - единый стиль */
  .fixed-header button {
    height: var(--control-height);
    padding: 0 var(--spacing-md);
    border: 1px solid var(--border-base);
    background: var(--bg-base);
    color: var(--text-base);
    font-weight: var(--font-weight-medium);
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    transition: background .12s ease, border-color .12s ease;
  }
  
  .fixed-header button:hover {
    background: var(--bg-muted);
    border-color: var(--border-strong);
  }
  
  .fixed-header #headerSaveBtn {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
  }
  
  .fixed-header #headerSaveBtn:hover {
    background: var(--color-primary-hover);
    border-color: var(--color-primary-hover);
  }
  
  /* Переопределение Tailwind утилит в header */
  .fixed-header .gradient-bg,
  .fixed-header .bg-white\/20,
  .fixed-header .bg-gray-600,
  .fixed-header .bg-green-600,
  .fixed-header .bg-emerald-600 {
    background: var(--bg-base);
    color: var(--text-base);
    border: 1px solid var(--border-base);
  }
  
  .fixed-header h1 {
    text-align: left;
  }
/* === Header: tiles uniform === */
.action-tiles{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:160px;      /* единая ширина плитки */
    gap:10px;
    align-items:center;
  }
  
  /* все обычные кнопки в плитках */
  .action-tiles > button{
    height:42px;
    border:1px solid #E5E7EB;
    border-radius:10px;
    background:#fff;
    padding:0 12px;
    font-size:13px;
    font-weight:600;
    color:#111827;
    display:inline-flex; align-items:center; justify-content:center;
    gap:8px;
    white-space:nowrap;
    line-height:1;
    transition:background .12s, border-color .12s, box-shadow .12s;
  }
  .action-tiles > button:hover{ background:#F9FAFB; border-color:#D1D5DB; }
  .action-tiles > #headerSaveBtn{ background:#2563EB; border-color:#2563EB; color:#fff; }
  .action-tiles > #headerSaveBtn:hover{ background:#1D4ED8; border-color:#1D4ED8; }
  
  /* details/summary «Экспорт» в виде такой же плитки */
  .tile-details{ position:relative; }
  .tile-summary{
    height:42px;
    border:1px solid #E5E7EB;
    border-radius:10px;
    background:#fff;
    padding:0 12px;
    font-size:13px;
    font-weight:600;
    color:#111827;
    display:inline-flex; align-items:center; justify-content:center;
    gap:8px; white-space:nowrap; line-height:1;
    list-style:none; cursor:pointer; user-select:none;
  }
  .tile-summary:hover{ background:#F9FAFB; border-color:#D1D5DB; }
  
  /* выпадающее меню под «Экспорт» */
  .tile-details[open] > .tile-menu,
  .tile-menu{ position:absolute; top:calc(100% + 6px); right:0; }
  .tile-menu{
    background:#fff;
    border:1px solid #E5E7EB;
    border-radius:10px;
    box-shadow:0 8px 24px rgba(17,24,39,.08);
    padding:6px;
    min-width:220px;
    z-index:1001;
  }
  .tile-menu button{
    width:100%;
    height:36px;
    border:1px solid transparent;
    border-radius:8px;
    background:#fff;
    text-align:left;
    padding:0 10px;
    font-size:13px;
    font-weight:500;
    color:#111827;
  }
  .tile-menu button:hover{ background:#F9FAFB; border-color:#E5E7EB; }
  
  /* адаптация на узких экранах */
  @media (max-width:1100px){ .action-tiles{ grid-auto-columns:minmax(140px,1fr); } }
  @media (max-width:720px){ .action-tiles{ grid-auto-flow:row; grid-template-columns:repeat(2,minmax(0,1fr)); } }
  
  [id="vine-block"] label {
    min-height: 32px;
    line-height: 16px;
    display: flex;
    align-items: flex-end;
  }
  