/**
 * Glassmorphism — карточки, панели, кнопки, чипы.
 * Токены: design-tokens.css (--glass-*).
 * Подключается после style.css; переопределяет поверхности проекта.
 */

/* ===== Базовая поверхность страницы (после style.css) ===== */
html body {
  background: var(--glass-page-bg);
  color: var(--text-on-glass, var(--text-primary, #333333));
}

main,
.business-container,
.dashboard,
.messages-container,
.notifications-container {
  background-color: transparent;
}

/* ===== Универсальная стеклянная поверхность (canonical — UI_UX_GUIDELINE §2.7) ===== */
:is(
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .business-panel-card,
  .business-panel-card--kpi,
  .business-chart-panel,
  .stat-card,
  .stat-card--steel,
  .stats-header,
  .portfolio-section:not(.portfolio-section--panel),
  .chart-container,
  .owner-reviews-container .reviews-header,
  .discounts-card,
  .reviews-hub-summary__card,
  .payment-status-card,
  .item-card,
  .favorite-showcase-card,
  .profile-card,
  main .card:not(.no-glass):not(.no-neu):not(.card-header):not(.card-body)
) {
  position: relative;
  overflow: hidden;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow-stack);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  transition: var(--glass-transition);
  color: var(--text-on-glass, var(--text-primary, #333333));
}

:is(
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .business-panel-card,
  .business-panel-card--kpi,
  .business-chart-panel,
  .stat-card,
  .stat-card--steel,
  .stats-header,
  .portfolio-section:not(.portfolio-section--panel),
  .chart-container,
  .owner-reviews-container .reviews-header,
  .discounts-card,
  .reviews-hub-summary__card,
  .payment-status-card,
  .item-card,
  .favorite-showcase-card,
  .profile-card,
  main .card:not(.no-glass):not(.no-neu):not(.card-header):not(.card-body)
)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--glass-highlight-top);
  pointer-events: none;
  z-index: 2;
}

:is(
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .business-panel-card,
  .business-panel-card--kpi,
  .business-chart-panel,
  .stat-card,
  .stat-card--steel,
  .stats-header,
  .portfolio-section:not(.portfolio-section--panel),
  .chart-container,
  .owner-reviews-container .reviews-header,
  .discounts-card,
  .reviews-hub-summary__card,
  .payment-status-card,
  .item-card,
  .favorite-showcase-card,
  .profile-card,
  main .card:not(.no-glass):not(.no-neu):not(.card-header):not(.card-body)
)::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 100%;
  background: var(--glass-highlight-side);
  pointer-events: none;
  z-index: 2;
}

/* ===== Универсальная стеклянная карточка (opt-in) ===== */
.glass-card,
.glass-surface {
  border-radius: var(--glass-radius);
  overflow: hidden;
}

.glass-card--panel {
  border-radius: var(--glass-radius-panel);
  padding: var(--space-6, 1.5rem);
}

.glass-card--compact {
  border-radius: var(--glass-radius-chip);
  padding: var(--space-4, 1rem);
}

@media (hover: hover) and (pointer: fine) {
  .glass-card:hover,
  .glass-surface:hover,
  :is(
    .ui-panel-card,
    .business-panel-card,
    .business-chart-panel,
    .stat-card,
    .stat-card--steel,
    .stats-header,
    .chart-container,
    .favorite-showcase-card,
    .item-card,
    main .card:not(.no-glass):not(.no-neu)
  ):hover {
    background: var(--glass-bg-hover);
    border-color: var(--glass-border-hover);
    box-shadow: var(--glass-shadow-stack-hover);
  }
}

.glass-card:active,
.glass-surface:active,
.glass-card--pressed {
  background: var(--glass-bg-alt);
  box-shadow: var(--glass-shadow-float-sm), var(--glass-inset);
}

/* Внутренняя поверхность (поля, чипы внутри карточки) */
.glass-inset,
.glass-pressed {
  background: var(--glass-bg-alt);
  border: 1px solid var(--glass-border-subtle);
  border-radius: var(--glass-radius-chip);
  box-shadow: var(--glass-inset);
}

/* ===== Кнопка-таблетка (opt-in) ===== */
.glass-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 1.15rem;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  border-radius: var(--glass-radius-btn);
  box-shadow: var(--glass-shadow-stack);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  color: var(--primary-color, #1A4B82);
  font-weight: 600;
  cursor: pointer;
  transition: var(--glass-transition);
  position: relative;
  overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
  .glass-btn:hover {
    background: var(--glass-bg-hover);
    border-color: var(--glass-border-hover);
    box-shadow: var(--glass-shadow-stack-hover);
  }
}

.glass-btn:active {
  background: var(--glass-bg-alt);
  box-shadow: var(--glass-inset);
}

/* ===== Исключения: opaque без blur (формы, алерты) ===== */
.no-glass,
.no-neu,
.form-control,
.form-select,
textarea.form-control,
input.form-control,
.alert,
.admin-content .card,
main.admin-container .card,
main.admin-container .stat-card,
.modal-content .form-control,
.modal-content .form-select {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Admin: opaque panels, no glass auto-styles */
main.admin-container .card:not(.no-glass):not(.no-neu),
main.admin-container .stat-card:not(.no-glass) {
  background: var(--bg-card, var(--bg-primary, #ffffff)) !important;
  border: 1px solid var(--steel-border, rgba(26, 75, 130, 0.16)) !important;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08)) !important;
}

main.admin-container .card:not(.no-glass):not(.no-neu) .card-header,
main.admin-container .card:not(.no-glass):not(.no-neu) .card-body {
  background: var(--bg-primary, #ffffff) !important;
  border-color: var(--border-color, rgba(26, 75, 130, 0.2)) !important;
}

.no-glass,
.no-neu {
  background: var(--bg-primary, #ffffff) !important;
  border: 1px solid var(--steel-border, rgba(26, 75, 130, 0.16)) !important;
  box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08)) !important;
}

.form-control,
.form-select,
textarea.form-control,
input.form-control {
  background: var(--bg-primary, #ffffff) !important;
  border: 1px solid var(--color-surface-muted, #a7b4c5) !important;
}

.alert {
  background: var(--bg-primary, #ffffff) !important;
  border: 1px solid var(--steel-border, rgba(26, 75, 130, 0.16)) !important;
}

/* ===== Интеграция: ui-panel-card / business-panel ===== */
.ui-panel-card,
.business-panel-card,
.business-panel-card--kpi,
.business-chart-panel {
  border-radius: var(--glass-radius-panel) !important;
  padding: var(--space-5, 1.25rem);
  overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
  .ui-panel-card:hover .ui-panel-card__icon {
    transform: scale(1.05) rotate(3deg);
  }
}

/* Чипы внутри панелей — приглушённое стекло (кроме метрик бизнес-кабинета) */
.ui-panel-card .ui-chip:not(.business-panel-card__chip),
.ui-panel-card__footer .ui-chip:not(.business-panel-card__chip) {
  background: var(--glass-bg-alt) !important;
  border: 1px solid var(--glass-border-subtle) !important;
  box-shadow: var(--glass-inset) !important;
  backdrop-filter: blur(calc(var(--glass-blur) * 0.5));
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) * 0.5));
}

@media (hover: hover) and (pointer: fine) {
  .ui-panel-card:hover .ui-chip:not(.business-panel-card__chip):not(:hover) {
    box-shadow: var(--glass-inset) !important;
  }
}

/* Бизнес-кабинет: метрики info-bar/footer — стекло на всех разрешениях */
.business-page .business-panel-card__info-bar .ui-chip,
.business-page .business-panel-card__footer .ui-chip {
  background: var(--glass-bg) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: var(--glass-shadow-stack) !important;
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  transition: var(--glass-transition);
}

@media (hover: hover) and (pointer: fine) {
  .business-page .business-panel-card__info-bar .ui-chip:hover,
  .business-page .business-panel-card__footer .ui-chip:hover {
    background: var(--glass-bg-hover) !important;
    border-color: var(--glass-border-hover) !important;
    box-shadow: var(--glass-shadow-stack-hover) !important;
  }

  .business-page .ui-panel-card:hover .business-panel-card__chip:not(:hover),
  .business-page .business-panel-card:hover .business-panel-card__footer .ui-chip:not(:hover) {
    box-shadow: var(--glass-shadow-stack) !important;
  }
}

.ui-panel-card__footer {
  border-top-color: var(--glass-border-subtle);
}

/* ===== Stat-cards (бизнес, избранное, мои вещи) ===== */
.stat-card,
.stat-card--steel,
.business-page .stat-card,
.metrics-grid .stat-card,
.my-items-stats .stat-card,
.favorites-stats .stat-card,
.dashboard-stats .stat-card {
  border-radius: var(--glass-radius) !important;
  overflow: hidden;
}

/* ===== Секционные блоки ===== */
.stats-header,
.portfolio-section:not(.portfolio-section--panel),
.chart-container,
.owner-reviews-container .reviews-header,
.discounts-card,
.reviews-hub-summary__card,
.payment-status-card {
  border-radius: var(--glass-radius-panel) !important;
  overflow: hidden;
}

/* .showcase-glass-panel — frosted glass (favorites.css, showcase.php) */

.portfolio-section--panel,
.business-rating-section.portfolio-section--panel {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Карточки каталога и сеток */
.item-card,
.favorite-showcase-card,
.profile-card,
.modal-content:not(.no-glass):not(.no-neu) {
  border-radius: var(--glass-radius) !important;
  transition: var(--glass-transition) !important;
  overflow: hidden;
}

@media (hover: hover) and (pointer: fine) {
  .stats-header:hover,
  .chart-container:hover,
  .favorite-showcase-card:hover,
  .item-card:hover,
  .items-grid .item-card:hover {
    background: var(--glass-bg-hover) !important;
    border-color: var(--glass-border-hover) !important;
    box-shadow: var(--glass-shadow-stack-hover) !important;
  }
}

/* Bootstrap card в main */
main .card:not(.no-glass):not(.no-neu):not(.card-header):not(.card-body) {
  border-radius: var(--glass-radius);
  overflow: hidden;
}

main .card:not(.no-glass):not(.no-neu) .card-header,
main .card:not(.no-glass):not(.no-neu) .card-body {
  background: transparent;
  border-color: var(--glass-border-subtle);
}

/* Подсказка «?» в крошках */
.catalog-section-help__summary {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow-stack);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

.catalog-section-help__summary:hover {
  background: var(--glass-bg-hover);
  box-shadow: var(--glass-shadow-stack-hover);
}

.catalog-section-help__body {
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow-stack-hover);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
}

/* Иконки панели — brand gradient + лёгкое стекло */
.ui-panel-card__icon {
  box-shadow:
    var(--glass-shadow-float-sm),
    0 4px 14px rgba(26, 75, 130, 0.2);
}

/* Отступы в гридах — не обрезать тени */
.business-widgets-row > [class*="col-"],
.business-metrics-row > [class*="col-"],
#mainMetrics,
.main-metrics-grid,
.metrics-grid,
.my-items-stats,
.favorites-stats,
.dashboard-stats {
  overflow: visible;
}

.business-panel-host,
#portfolioStats,
#financialStats,
#commercialStats {
  overflow: visible;
}

/* Полосы вкладок: не обрезать подъём и тень при hover у glass/panel-контейнеров */
:is(
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .business-panel-card,
  .business-chart-panel,
  .admin-section,
  .logs-tab-panel,
  .card-header,
  .card-body,
  main .card:not(.no-glass):not(.no-neu):not(.card-header):not(.card-body)
):has(.nav-tabs),
:is(
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .admin-section,
  main .card:not(.no-glass):not(.no-neu)
):has(> .history-log-tabs),
.admin-content:has(> .nav-tabs),
.admin-content:has(> .nav.nav-tabs),
.tab-strip-host,
.nav-tabs-scroll-host {
  overflow: visible;
}

/* ===== prefers-contrast: high — opaque fallback ===== */
@media (prefers-contrast: more), (prefers-contrast: high) {
  .glass-card,
  .glass-surface,
  .ui-panel-card,
  .business-panel-card,
  .stat-card,
  .item-card,
  .profile-card,
  main .card:not(.no-glass):not(.no-neu),
  .chart-container,
  .stats-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: var(--bg-primary, #ffffff) !important;
    border-color: var(--steel-border, rgba(26, 75, 130, 0.16)) !important;
    box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.08)) !important;
  }

  :is(
    .glass-card,
    .glass-surface,
    .ui-panel-card,
    .business-panel-card,
    .stat-card,
    .item-card,
    main .card:not(.no-glass):not(.no-neu),
    .chart-container,
    .stats-header
  )::before,
  :is(
    .glass-card,
    .glass-surface,
    .ui-panel-card,
    .business-panel-card,
    .stat-card,
    .item-card,
    main .card:not(.no-glass):not(.no-neu),
    .chart-container,
    .stats-header
  )::after {
    display: none;
  }
}

/* ===== Пространство данных: поиск, фильтры, toolbar — без стекла ===== */
:is(
  .filters-section,
  .filters-wrapper,
  .filters-header,
  .filters-content,
  .filters-row,
  .filters-grid,
  .items-filter,
  .catalog-search-bar,
  .catalog-search-meta,
  .filters-header__main,
  .catalog-search-input-group,
  .my-items-filters-section,
  .my-items-filters-toolbar,
  .my-items-filters-content,
  .rentals-filters-section,
  .rentals-filters-bar,
  .rentals-filters-content,
  .collapsible-search,
  .collapsible-search__wrap,
  .search-box,
  .wishlist-page .filters-section
) {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

:is(
  .filters-section,
  .filters-wrapper,
  .filters-header,
  .filters-content,
  .items-filter,
  .catalog-search-bar,
  .my-items-filters-section,
  .rentals-filters-section,
  .wishlist-page .filters-section
)::before,
:is(
  .filters-section,
  .filters-wrapper,
  .filters-header,
  .filters-content,
  .items-filter,
  .catalog-search-bar,
  .my-items-filters-section,
  .rentals-filters-section,
  .wishlist-page .filters-section
)::after {
  content: none !important;
  display: none !important;
}

@media (hover: hover) and (pointer: fine) {
  :is(
    .filters-section,
    .filters-wrapper,
    .filters-header,
    .filters-content,
    .items-filter,
    .catalog-search-bar,
    .catalog-search-input-group,
    .my-items-filters-section,
    .my-items-filters-toolbar,
    .rentals-filters-section,
    .rentals-filters-bar,
    .collapsible-search,
    .search-box,
    .wishlist-page .filters-section
  ):hover,
  :is(
    .filters-section,
    .filters-header,
    .items-filter,
    .my-items-filters-section,
    .rentals-filters-section,
    .collapsible-search
  ):focus-within {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
}

/* Нижний лист фильтров (моб.) — сплошной фон панели, без blur/стекла */
@media (max-width: 768px) {
  .filters-section.filters-section--sheet-open .filters-content,
  .my-items-filters-section.my-items-filters-section--sheet-open .my-items-filters-sheet,
  .my-items-filters-section.my-items-filters-section--sheet-open .filters-content.my-items-filters-sheet,
  .rentals-filters-section.rentals-filters-section--sheet-open .rentals-filters-content,
  body.catalog-filters-sheet-open > .filters-content,
  body.my-items-filters-sheet-open > .my-items-filters-sheet,
  body.my-items-filters-sheet-open > .my-items-filters-content,
  body.rentals-filters-sheet-open > .rentals-filters-content,
  body.wallet-history-filters-sheet-open > .wallet-history-filters-panel {
    background: var(--bg-primary, #ffffff) !important;
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.18) !important;
    border: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* ===== prefers-reduced-motion ===== */
@media (prefers-reduced-motion: reduce) {
  .glass-card,
  .glass-surface,
  .glass-btn,
  .ui-panel-card,
  .business-panel-card,
  .stat-card,
  .my-items-stats .stat-card,
  .favorites-stats .stat-card,
  .metrics-grid .stat-card,
  .dashboard-stats .stat-card,
  .stats-header,
  .chart-container,
  .item-card {
    transition: none;
  }

  .glass-card:hover,
  .glass-surface:hover,
  .ui-panel-card:hover,
  .business-panel-card:hover,
  .stat-card:hover,
  .my-items-stats .stat-card:hover,
  .favorites-stats .stat-card:hover,
  .metrics-grid .stat-card:hover,
  .dashboard-stats .stat-card:hover,
  .item-card:hover {
    box-shadow: var(--glass-shadow-stack-hover);
  }
}

/* Partner-tinted sections (карточки товаров, «Почему мы») */
.glass-section-partner,
.section-partner-bg {
  background: var(--glass-bg-partner, rgba(214, 182, 188, 0.35));
  border-radius: var(--glass-radius-panel, 20px);
}

.section-partner-bg .glass-card,
.section-partner-bg .item-card,
.glass-section-partner .glass-card {
  background: var(--glass-bg);
}
