:root {
  --olvio-accent: #D7B58C;
  --olvio-base: #6F6F3F;
  --olvio-muted: #B8B591;
  --olvio-base-dark: #5A5A34;
  --olvio-accent-soft: #F3EDE0;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

/* Карточка-шапка страницы: заголовок сверху, кнопки переносятся снизу */
.admin-page-toolbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}

@media (min-width: 640px) {
  .admin-page-toolbar {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.admin-page-toolbar__intro {
  min-width: 0;
}

.admin-page-toolbar__intro h2,
.admin-page-toolbar__intro h3 {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.admin-page-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
}

@media (min-width: 640px) {
  .admin-page-toolbar__actions {
    width: auto;
    align-items: center;
    justify-content: flex-end;
  }
}

.admin-page-toolbar__actions > button,
.admin-page-toolbar__actions > select,
.admin-page-toolbar__actions > .admin-toolbar-control {
  min-width: 0;
}

@media (max-width: 639px) {
  .admin-page-toolbar__actions > button,
  .admin-page-toolbar__actions > select {
    flex: 1 1 calc(50% - 0.25rem);
    justify-content: center;
  }

  .admin-page-toolbar__actions > button.admin-btn-wide {
    flex: 1 1 100%;
  }
}

/* Подвал таблицы с пагинацией */
.admin-table-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  padding: 1rem;
}

@media (min-width: 640px) {
  .admin-table-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
  }
}

.admin-table-footer p {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Ряд кнопок в формах */
.admin-form-actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding-top: 0.5rem;
}

@media (min-width: 640px) {
  .admin-form-actions {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
  }
}

.admin-form-actions > button {
  width: 100%;
}

@media (min-width: 640px) {
  .admin-form-actions > button {
    width: auto;
  }
}

/* Поля с кнопкой «копировать» */
.admin-copy-row {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 640px) {
  .admin-copy-row {
    flex-direction: row;
    align-items: stretch;
  }
}

.admin-copy-row input {
  min-width: 0;
}

.admin-copy-row button {
  flex-shrink: 0;
}

@media (max-width: 639px) {
  .admin-copy-row button {
    width: 100%;
  }
}

/* Кнопки — не зависят от Tailwind CDN (важно для React + Play CDN) */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 48px;
  padding: 0.75rem 1rem;
  border: none;
  border-radius: 0.5rem;
  background-color: var(--olvio-base);
  color: #ffffff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.btn-primary:hover:not(:disabled) {
  background-color: var(--olvio-base-dark);
}

.btn-primary:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.auth-page {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  padding: 1rem 0.75rem calc(1rem + env(safe-area-inset-bottom, 0px));
  background-color: #f1f5f9;
}

.auth-page__card {
  width: 100%;
  max-width: 28rem;
  margin: auto;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
  padding: 1rem;
}

@media (min-width: 640px) {
  .auth-page__card {
    padding: 1.5rem;
  }
}

.auth-field {
  display: block;
  width: 100%;
  margin-bottom: 0.75rem;
}

.auth-field label {
  display: block;
  margin-bottom: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #64748b;
}

.auth-field input {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 0.625rem 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  font-size: 16px;
  line-height: 1.25;
  color: #0f172a;
  background: #ffffff;
}

.auth-field input:focus {
  outline: none;
  border-color: var(--olvio-accent);
  box-shadow: 0 0 0 3px rgba(215, 181, 140, 0.35);
}

.auth-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  padding: 0.25rem;
  margin-bottom: 1rem;
  border-radius: 0.5rem;
  background: var(--olvio-accent-soft);
}

.auth-mode-tab {
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--olvio-muted);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
}

.auth-mode-tab--active {
  background: #ffffff;
  color: var(--olvio-base);
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
}

.auth-subtitle {
  margin: 0;
  font-size: 0.875rem;
  color: var(--olvio-muted);
  text-align: center;
}

/* Боковое меню — невыбранные пункты как заголовок страницы (slate-800) */
.admin-nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: 0.5rem;
  border-left: 3px solid transparent;
  color: #1e293b;
  font-size: 0.875rem;
  line-height: 1.375;
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.admin-nav-link svg {
  color: inherit;
}

.admin-nav-link:hover {
  background-color: rgba(243, 237, 224, 0.7);
  color: #0f172a;
}

.admin-nav-link--active {
  background-color: var(--olvio-accent-soft);
  border-left-color: var(--olvio-base);
  color: var(--olvio-base);
  font-weight: 600;
}

.admin-sidebar-section {
  color: var(--olvio-muted);
}

@media (min-width: 1024px) {
  .admin-nav-link--collapsed {
    justify-content: center;
    gap: 0;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .admin-nav-link--collapsed.admin-nav-link--active {
    border-left-color: transparent;
    box-shadow: inset 0 0 0 2px var(--olvio-accent);
  }
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--olvio-base);
}

a:not([class]) {
  color: var(--olvio-base);
}

.bg-brand { background-color: var(--olvio-base); }
.hover\:bg-brand-dark:hover { background-color: var(--olvio-base-dark); }
.text-brand { color: var(--olvio-base); }
.text-brand-muted { color: var(--olvio-muted); }
.text-brand-dark { color: var(--olvio-base-dark); }
.text-brand\/70 { color: rgba(111, 111, 63, 0.7); }
.bg-brand-soft { background-color: var(--olvio-accent-soft); }
.bg-brand-soft\/40 { background-color: rgba(243, 237, 224, 0.4); }
.bg-brand-soft\/50 { background-color: rgba(243, 237, 224, 0.5); }
.bg-brand-soft\/60 { background-color: rgba(243, 237, 224, 0.6); }
.bg-brand-accent\/20 { background-color: rgba(215, 181, 140, 0.2); }
.bg-brand-accent\/25 { background-color: rgba(215, 181, 140, 0.25); }
.bg-brand-accent\/30 { background-color: rgba(215, 181, 140, 0.3); }
.bg-brand-accent\/40 { background-color: rgba(215, 181, 140, 0.4); }
.bg-brand-accent\/50 { background-color: rgba(215, 181, 140, 0.5); }
.border-brand { border-color: var(--olvio-base); }
.border-brand-accent { border-color: var(--olvio-accent); }
.border-brand-accent\/30 { border-color: rgba(215, 181, 140, 0.3); }
.border-brand-accent\/40 { border-color: rgba(215, 181, 140, 0.4); }
.ring-brand { --tw-ring-color: var(--olvio-base); }
.ring-brand\/20 { --tw-ring-color: rgba(111, 111, 63, 0.2); }
.ring-brand-accent { --tw-ring-color: var(--olvio-accent); }
.ring-brand-accent\/20 { --tw-ring-color: rgba(215, 181, 140, 0.2); }
.ring-brand-accent\/30 { --tw-ring-color: rgba(215, 181, 140, 0.3); }
.ring-brand-accent\/40 { --tw-ring-color: rgba(215, 181, 140, 0.4); }
.ring-brand-accent\/50 { --tw-ring-color: rgba(215, 181, 140, 0.5); }
.hover\:text-brand:hover { color: var(--olvio-base); }
.hover\:text-brand-dark:hover { color: var(--olvio-base-dark); }
.hover\:bg-brand-soft:hover { background-color: var(--olvio-accent-soft); }
.hover\:bg-brand-accent\/30:hover { background-color: rgba(215, 181, 140, 0.3); }
.focus\:ring-brand-accent:focus { outline: none; box-shadow: 0 0 0 2px rgba(215, 181, 140, 0.45); }
.focus\:border-brand-accent:focus { border-color: var(--olvio-accent); }
.focus\:ring-brand-accent\/20:focus { outline: none; box-shadow: 0 0 0 2px rgba(215, 181, 140, 0.2); }
.focus-within\:ring-brand-accent:focus-within { outline: none; box-shadow: 0 0 0 2px rgba(215, 181, 140, 0.45); }
.focus-within\:border-brand-accent:focus-within { border-color: var(--olvio-accent); }
.has-\[\:checked\]\:border-brand-accent:has(:checked) { border-color: var(--olvio-accent); }
.has-\[\:checked\]\:bg-brand-soft:has(:checked) { background-color: var(--olvio-accent-soft); }

/* Календарь — убираем синий react-datepicker */
.react-datepicker__day--selected,
.react-datepicker__day--keyboard-selected,
.react-datepicker__day--in-selecting-range,
.react-datepicker__day--in-range,
.react-datepicker__month-text--selected,
.react-datepicker__quarter-text--selected,
.react-datepicker__year-text--selected {
  background-color: var(--olvio-base) !important;
  color: #fff !important;
}

.react-datepicker__day--selected:hover,
.react-datepicker__day--keyboard-selected:hover {
  background-color: var(--olvio-base-dark) !important;
}

.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range),
.react-datepicker__day--in-range:not(.react-datepicker__day--selected) {
  background-color: rgba(215, 181, 140, 0.35) !important;
  color: var(--olvio-base-dark) !important;
}

.react-datepicker__header {
  background-color: var(--olvio-accent-soft) !important;
  border-bottom-color: rgba(215, 181, 140, 0.45) !important;
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
  color: var(--olvio-base) !important;
}

.react-datepicker__day-name {
  color: var(--olvio-muted) !important;
}

/* Воронка заказов — аналитика, мобильная вёрстка */
.admin-funnel-step {
  padding: 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #f8fafc;
}

.admin-funnel-step__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.625rem;
}

.admin-funnel-step__label {
  flex: 1;
  min-width: 0;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.35;
  color: #334155;
}

.admin-funnel-step__stats {
  display: flex;
  flex-shrink: 0;
  align-items: baseline;
  gap: 0.5rem;
}

.admin-funnel-step__count {
  font-size: 1.25rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
  line-height: 1;
}

.admin-funnel-step__pct {
  font-size: 0.8125rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: #64748b;
  line-height: 1;
}

.admin-funnel-step__pct--success {
  color: var(--olvio-base);
}

.admin-funnel-step__pct--danger {
  color: #dc2626;
}

.admin-funnel-step__track {
  height: 0.625rem;
  border-radius: 9999px;
  background: #e2e8f0;
  overflow: hidden;
}

.admin-funnel-step__fill {
  height: 100%;
  min-width: 0;
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.admin-funnel-step__fill--total {
  background: #94a3b8;
}

.admin-funnel-step__fill--success {
  background: var(--olvio-base);
}

.admin-funnel-step__fill--danger {
  background: #ef4444;
}

@media (min-width: 640px) {
  .admin-funnel-step {
    padding: 0.875rem 1rem;
  }

  .admin-funnel-step__count {
    font-size: 1.375rem;
  }
}
