/**
 * Единые токены и стили legacy-приложений (калькуляторы, парсеры, crossout).
 * Работает внутри site-shell и на автономных immersive-страницах.
 */

/* Токены на автономных страницах (без site.css) */
html[data-sd-theme="dark"],
html:not([data-sd-theme]) {
  color-scheme: dark;
  --sd-bg: #0b0f17;
  --sd-bg-elevated: #121820;
  --sd-surface: rgba(18, 24, 32, 0.92);
  --sd-border: rgba(255, 255, 255, 0.1);
  --sd-text: #f0f2f8;
  --sd-text-muted: #9aa3b5;
  --sd-accent: #00e5c0;
  --sd-accent-2: #7c4dff;
  --sd-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  --sd-nav-hover-bg: rgba(255, 255, 255, 0.06);
}

html[data-sd-theme="light"] {
  color-scheme: light;
  --sd-bg: #f3f5f9;
  --sd-bg-elevated: #ffffff;
  --sd-surface: rgba(255, 255, 255, 0.92);
  --sd-border: rgba(15, 23, 42, 0.1);
  --sd-text: #1a1f36;
  --sd-text-muted: #5c657a;
  --sd-accent: #00a88f;
  --sd-accent-2: #6d3fe0;
  --sd-shadow: 0 12px 40px rgba(15, 23, 42, 0.08);
  --sd-nav-hover-bg: rgba(15, 23, 42, 0.05);
  --bs-body-bg: #f3f5f9;
  --bs-body-color: #1a1f36;
  --bs-border-color: rgba(15, 23, 42, 0.12);
  --bs-secondary-color: #5c657a;
}

html[data-sd-theme="dark"],
html:not([data-sd-theme]) {
  --bs-body-bg: #0b0f17;
  --bs-body-color: #f0f2f8;
  --bs-border-color: rgba(255, 255, 255, 0.12);
  --bs-secondary-color: #9aa3b5;
}

/* Автономные страницы (без site-shell): фон и текст согласованы с темой */
html[data-sd-theme="dark"] body:not(.sd-has-shell),
html:not([data-sd-theme]) body:not(.sd-has-shell) {
  background: var(--sd-bg);
  color: var(--sd-text);
}

html[data-sd-theme="light"] body:not(.sd-has-shell) {
  background: var(--sd-bg);
  color: var(--sd-text);
}

/* Базовый контейнер приложения */
.sd-legacy-app {
  --app-text: var(--sd-text);
  --app-text-muted: var(--sd-text-muted);
  --app-surface: var(--sd-bg-elevated);
  --app-border: var(--sd-border);
  --app-accent: var(--sd-accent);
  --app-accent-strong: var(--sd-accent);
  --app-profit: #7dff6b;
  --app-danger: #ef4444;
  color: var(--app-text);
}

html[data-sd-theme="light"] .sd-legacy-app {
  --app-accent-strong: #007a68;
  --app-profit: #0d7a68;
}

.sd-legacy-app h1,
.sd-legacy-app h2,
.sd-legacy-app h3,
.sd-legacy-app h4,
.sd-legacy-app p,
.sd-legacy-app label,
.sd-legacy-app .form-label,
.sd-legacy-app .result {
  color: var(--app-text);
}

.sd-legacy-app a {
  color: var(--app-accent);
}

.sd-legacy-app a:hover {
  color: var(--app-accent-strong);
}

.sd-legacy-app .text-muted,
.sd-legacy-app .form-text,
.sd-legacy-app .text-secondary,
.sd-legacy-app .input-label-inline {
  color: var(--app-text-muted) !important;
}

.sd-legacy-app .form-control,
.sd-legacy-app input:not([type="checkbox"]):not([type="radio"]),
.sd-legacy-app select,
.sd-legacy-app textarea {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  color: var(--app-text);
  border-radius: 6px;
}

.sd-legacy-app .form-control::placeholder,
.sd-legacy-app input::placeholder,
.sd-legacy-app textarea::placeholder {
  color: var(--app-text-muted);
  opacity: 1;
}

.sd-legacy-app .btn {
  border-radius: 6px;
  font-weight: 600;
}

.sd-legacy-app .btn-primary,
.sd-legacy-app .btn-success {
  color: #0b0d12;
  background: linear-gradient(135deg, var(--app-accent), var(--sd-accent-2, #7c4dff));
  border: none;
}

.sd-legacy-app .btn-primary:hover,
.sd-legacy-app .btn-success:hover {
  filter: brightness(1.08);
  color: #0b0d12;
}

html[data-sd-theme="light"] .sd-legacy-app .btn-primary,
html[data-sd-theme="light"] .sd-legacy-app .btn-success {
  color: #fff;
}

html[data-sd-theme="light"] .sd-legacy-app .btn-primary:hover,
html[data-sd-theme="light"] .sd-legacy-app .btn-success:hover {
  color: #fff;
}

.sd-legacy-app .form-control:read-only,
.sd-legacy-app .form-control[readonly] {
  background: color-mix(in srgb, var(--app-surface) 88%, var(--app-text-muted) 12%);
  color: var(--app-text-muted);
  cursor: default;
}

.sd-legacy-app .border-top,
.sd-legacy-app .border-end,
.sd-legacy-app .border-bottom,
.sd-legacy-app #result {
  border-color: var(--app-border) !important;
}

.sd-legacy-app .red-text,
.sd-legacy-app .red {
  color: var(--app-danger) !important;
}

/* Таблицы (парсеры) */
.sd-legacy-app.parser-app table,
.sd-page-content .sd-legacy-app table {
  width: 100%;
  border-collapse: collapse;
  margin: 1rem 0;
}

.sd-legacy-app.parser-app th,
.sd-legacy-app.parser-app td,
.sd-page-content .sd-legacy-app th,
.sd-page-content .sd-legacy-app td {
  border: 1px solid var(--app-border);
  padding: 0.5rem 0.75rem;
  text-align: left;
  color: var(--app-text);
  background: var(--app-surface);
}

.sd-legacy-app.parser-app th,
.sd-page-content .sd-legacy-app th {
  background: var(--sd-nav-hover-bg);
  font-weight: 600;
}

.sd-legacy-app.parser-app tr:nth-child(even) td,
.sd-page-content .sd-legacy-app tr:nth-child(even) td {
  background: color-mix(in srgb, var(--app-surface) 92%, var(--app-accent) 8%);
}

/* Калькулятор ЖКХ */
.sd-legacy-app.calc-jkh {
  max-width: 720px;
  margin: 0 auto;
  padding-top: 1.5rem;
  padding-bottom: 2rem;
}

.sd-legacy-app.calc-jkh h1 {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  line-height: 1.3;
}

.sd-legacy-app.calc-jkh .calc__section {
  margin-top: 1.75rem;
}

.sd-legacy-app.calc-jkh .calc__result {
  color: var(--app-accent-strong);
  font-weight: 700;
  font-size: 1.25rem;
}

.sd-legacy-app.calc-jkh .calc__label,
.sd-legacy-app.calc-jkh .form-label {
  color: var(--app-text);
  font-weight: 600;
}

.sd-legacy-app.calc-jkh #kwText {
  color: var(--app-text-muted);
  font-size: 0.95rem;
}

.sd-legacy-app.calc-jkh .calc-status {
  font-size: 0.9rem;
}

.sd-legacy-app.calc-jkh .calc-status--ok {
  color: #34d399 !important;
}

html[data-sd-theme="light"] .sd-legacy-app.calc-jkh .calc-status--ok {
  color: #059669 !important;
}

.sd-legacy-app.calc-jkh .calc-status--error {
  color: var(--app-danger) !important;
}

.sd-legacy-app.calc-jkh .calc-status--info {
  color: var(--app-text-muted) !important;
}

.sd-legacy-app.calc-jkh #saveNew:active {
  transform: scale(0.98);
  filter: brightness(0.92);
}

.sd-legacy-app.calc-jkh .calc-jkh-theme {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 10;
  padding: 0.45rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid var(--app-border);
  background: var(--app-surface);
  color: var(--app-text);
  font-size: 0.85rem;
  cursor: pointer;
}

/* Crossout — тема внутри оболочки и автономно */
.crossout-calc {
  --co-text: var(--app-text);
  --co-text-muted: var(--app-text-muted);
  --co-surface: var(--app-surface);
  --co-border: var(--app-border);
  --co-accent: var(--app-accent);
  --co-accent-strong: var(--app-accent-strong);
  --co-profit: var(--app-profit);
  --co-danger: var(--app-danger);
}

body.sd-has-shell .sd-page-content .sd-legacy-app h1,
body.sd-has-shell .sd-page-content .sd-legacy-app h2,
body.sd-has-shell .sd-page-content .sd-legacy-app .form-label,
body.sd-has-shell .sd-page-content .sd-legacy-app .result,
body.sd-has-shell .sd-page-content .sd-legacy-app p {
  color: var(--sd-text) !important;
}

body.sd-has-shell .sd-page-content .crossout-calc #profit,
body.sd-has-shell .sd-page-content .crossout-calc #ProfitDefenseNet {
  color: var(--app-profit) !important;
}

/* Карта городов: панель слева */
.sd-legacy-app.map-sidebar {
  background: var(--app-surface);
  color: var(--app-text);
}

.sd-legacy-app.map-sidebar .btn-custom {
  background: var(--app-accent);
  color: #0b0d12;
  border: 1px solid var(--app-accent);
}

html[data-sd-theme="light"] .sd-legacy-app.map-sidebar .btn-custom {
  color: #fff;
}

.sd-legacy-app.map-sidebar .btn-custom:hover {
  background: transparent;
  color: var(--app-accent-strong);
}
