/**
 * Единый фон и тема site-shell на всех страницах.
 * Исключения: 3D/2D (portfolio/3d, portfolio/games).
 */

body.sd-has-shell:not(.sd-portfolio-3d):not(.sd-portfolio-game) {
  background: var(--sd-bg) !important;
  color: var(--sd-text) !important;
  font-family: var(--sd-font) !important;
  --bg: var(--sd-bg);
  --surface: var(--sd-bg-elevated);
  --text: var(--sd-text);
  --text-muted: var(--sd-text-muted);
  --border: var(--sd-border);
  --primary: var(--sd-accent);
  --primary-hover: #00c9a8;
  --radius: var(--sd-radius);
  --shadow: var(--sd-shadow);
  --success: #059669;
  --warning: #d97706;
  --danger: #dc2626;
}

body.sd-has-shell:not(.sd-portfolio-3d):not(.sd-portfolio-game) .sd-main:not(.sd-portfolio-3d):not(.sd-portfolio-game):not(.sd-happy-birthday) {
  background: transparent !important;
}

/* Встроенные legacy-приложения (SEO-аудит и др.) */
body.sd-has-shell .sd-page-content .app,
body.sd-has-shell .sd-page-content #app {
  background: transparent !important;
  color: var(--sd-text);
}

body.sd-has-shell .sd-page-content .panel,
body.sd-has-shell .sd-page-content .glossary-panel,
body.sd-has-shell .sd-page-content .scan-panel,
body.sd-has-shell .sd-page-content .results-panel {
  background: var(--sd-bg-elevated) !important;
  border: 1px solid var(--sd-border);
  color: var(--sd-text);
  box-shadow: var(--sd-shadow);
}

body.sd-has-shell .sd-page-content .app-title,
body.sd-has-shell .sd-page-content .panel__title,
body.sd-has-shell .sd-page-content .lead-seo,
body.sd-has-shell .sd-page-content .terms-glossary__term {
  color: var(--sd-text);
}

body.sd-has-shell .sd-page-content .lead-seo,
body.sd-has-shell .sd-page-content .panel__hint,
body.sd-has-shell .sd-page-content .term-plain,
body.sd-has-shell .sd-page-content .term-example {
  color: var(--sd-text-muted);
}

body.sd-has-shell .sd-page-content .app-logo {
  background: var(--sd-gradient) !important;
}

body.sd-has-shell .sd-page-content input,
body.sd-has-shell .sd-page-content select,
body.sd-has-shell .sd-page-content textarea {
  background: var(--sd-bg-elevated);
  border-color: var(--sd-border);
  color: var(--sd-text);
}

body.sd-has-shell .sd-page-content .btn-primary,
body.sd-has-shell .sd-page-content button[type="submit"] {
  background: var(--sd-gradient);
  border-color: transparent;
  color: #0b0d12;
}

body.sd-has-shell .sd-page-content a {
  color: var(--sd-accent);
}

body.sd-has-shell .sd-page-content .btn,
body.sd-has-shell .sd-page-content .btn-outline-secondary,
body.sd-has-shell .sd-page-content .btn-outline-primary {
  border-color: var(--sd-border);
  color: var(--sd-text);
  background: var(--sd-bg-elevated);
}

body.sd-has-shell .sd-page-content .btn:hover,
body.sd-has-shell .sd-page-content .btn-outline-secondary:hover {
  border-color: var(--sd-accent);
  color: var(--sd-text);
  background: var(--sd-nav-hover-bg, rgba(255, 255, 255, 0.06));
}

body.sd-has-shell .sd-page-content .form-control,
body.sd-has-shell .sd-page-content .form-select {
  background: var(--sd-bg-elevated);
  border-color: var(--sd-border);
  color: var(--sd-text);
}

body.sd-has-shell .sd-page-content .form-check-input {
  border-color: var(--sd-border);
  background-color: var(--sd-bg-elevated);
}

body.sd-has-shell .sd-page-content .form-check-input:checked {
  background-color: var(--sd-accent);
  border-color: var(--sd-accent);
}

body.sd-has-shell .sd-page-content .term-pro,
body.sd-has-shell .sd-page-content .audit-card__title {
  color: var(--sd-text);
}

/* Старый анимированный фон legacy-страниц */
body.sd-has-shell .gradient-bg,
body.sd-has-shell .noiseBg,
body.sd-has-shell .gradients-container,
body.sd-has-shell .gradient-bg .interactive {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  animation: none !important;
}

body.sd-has-shell .sd-page-content > .container,
body.sd-has-shell .sd-page-content > .sd-legacy-app > .container {
  background: transparent !important;
}
