/* ============================================================
   Roinext AI — Styled after roinext.marketing
   Palette: #0e1113 bg · #ee7d00 accent · #fff718 highlight · #fff text
   Font: Open Sans Condensed (self-hosted)
   ============================================================ */

/* --- Self-hosted fonts --- */

/* Open Sans Regular 400 — headings */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/open-sans-400-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/open-sans-400-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/open-sans-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/open-sans-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Open Sans Condensed — body text */
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-300-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-300-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-300-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-300-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-700-cyrillic-ext.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-700-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/open-sans-condensed-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --bg:          #0e1113;
  --bg-2:        #151d21;
  --bg-3:        #192328;
  --bg-grad:     radial-gradient(ellipse at center, #192328 0%, #0e1113 100%);
  --accent:      #ee7d00;
  --accent-d:    #c96b00;
  --accent-l:    rgba(238,125,0,.15);
  --highlight:   #fff718;
  --text:        #ffffff;
  --text-2:      rgba(255,255,255,.75);
  --text-3:      rgba(255,255,255,.45);
  --text-4:      rgba(255,255,255,.25);
  --border:      #474747;
  --border-l:    #2a2a2a;
  --error:       #ff5700;
  --success:     #4caf50;
  --radius:      10px;
  --radius-sm:   6px;
  --shadow:      0 8px 40px rgba(0,0,0,.6);
  --shadow-lg:   0 16px 60px rgba(0,0,0,.8);
  --transition:  .2s ease;
  --font-main:   'Open Sans', sans-serif;
  --font-body:   'Open Sans Condensed', sans-serif;
}

/* ── Reset & Base ────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  background-image: var(--bg-grad);
  background-attachment: fixed;
  min-height: 100vh;
}
img { max-width: 100%; display: block; }
a { color: var(--highlight); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--text); }
textarea { resize: vertical; }
button { cursor: pointer; border: none; background: none; font-family: inherit; font-size: inherit; }

/* ── Utility ─────────────────────────────────────────────── */
.hidden { display: none !important; }
.mt-sm  { margin-top: 12px; }
.mt-md  { margin-top: 20px; }

/* ── Buttons ─────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 28px;
  border-radius: var(--radius-sm);
  font-family: var(--font-main);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .5px;
  text-transform: uppercase;
  transition: all var(--transition);
  line-height: 1;
  white-space: nowrap;
  border: 2px solid transparent;
}
.btn-primary {
  background: var(--accent);
  color: var(--text);
  border-color: var(--accent);
  box-shadow: 0 2px 16px rgba(238,125,0,.35);
}
.btn-primary:hover {
  background: var(--accent-d);
  border-color: var(--accent-d);
  box-shadow: 0 4px 24px rgba(238,125,0,.55);
  transform: translateY(-1px);
  color: var(--text);
  text-decoration: none;
}
.btn-primary:active { transform: translateY(0); }
.btn-secondary {
  background: transparent;
  color: var(--text-2);
  border-color: var(--border);
}
.btn-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
  text-decoration: none;
}
.btn-ghost {
  background: transparent;
  color: var(--text-3);
  border-color: var(--border-l);
}
.btn-ghost:hover {
  border-color: var(--border);
  color: var(--text-2);
  text-decoration: none;
}
.btn-full { width: 100%; justify-content: center; }
.btn-sm { padding: 7px 18px; font-size: 13px; }
.btn:disabled { opacity: .4; cursor: not-allowed; transform: none !important; }
.btn-icon { font-size: 18px; }

/* ── Form fields ─────────────────────────────────────────── */
.field-group { margin-bottom: 20px; }
.field-group label {
  display: block;
  font-family: var(--font-main);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 8px;
}
.field-group input,
.field-group textarea,
.field-group select {
  width: 100%;
  padding: 13px 16px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-family: var(--font-body);
  color: var(--highlight);
  background: var(--bg-2);
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
}
.field-group input:focus,
.field-group textarea:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.2);
}
.field-group input::placeholder,
.field-group textarea::placeholder { color: var(--text-4); }
.field-group input:-webkit-autofill,
.field-group input:-webkit-autofill:hover,
.field-group input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #151d21 inset !important;
  -webkit-text-fill-color: var(--highlight) !important;
  caret-color: var(--highlight);
  border-color: var(--border) !important;
  transition: background-color 5000s ease-in-out 0s;
}
.field-error { font-size: 13px; color: var(--error); margin-top: 6px; min-height: 18px; }

/* ── Checkbox (оферта) ───────────────────────────────────── */
.field-group--checkbox {
  margin-bottom: 16px;
}
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
}
.checkbox-label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.checkbox-custom {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  margin-top: 0;
  border: 2px solid var(--accent);
  border-radius: 6px;
  background: rgba(238,125,0,.08);
  box-shadow: inset 0 1px 3px rgba(0,0,0,.3), 0 0 0 1px rgba(238,125,0,.15);
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Пустая подсказка — показывает форму галочки до нажатия */
.checkbox-custom::before {
  content: '';
  display: block;
  width: 7px;
  height: 12px;
  border: 2px solid rgba(238,125,0,.2);
  border-top: none;
  border-left: none;
  transform: rotate(45deg) translateY(-1px);
  transition: border-color 0.2s;
}
.checkbox-label:hover .checkbox-custom {
  border-color: var(--accent);
  background: rgba(238,125,0,.14);
  box-shadow: inset 0 1px 3px rgba(0,0,0,.3), 0 0 0 3px rgba(238,125,0,.15);
}
.checkbox-label:hover .checkbox-custom::before {
  border-color: rgba(238,125,0,.45);
}
.checkbox-label input[type="checkbox"]:checked + .checkbox-custom {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.2);
}
.checkbox-label input[type="checkbox"]:checked + .checkbox-custom::before {
  border-color: #fff;
}
.checkbox-label input[type="checkbox"]:focus + .checkbox-custom {
  box-shadow: inset 0 1px 3px rgba(0,0,0,.3), 0 0 0 3px rgba(238,125,0,.35);
}
.checkbox-text {
  font-size: 13px;
  color: var(--text-2);
  line-height: 1.55;
}
.checkbox-text a {
  color: var(--accent);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(238,125,0,.5);
}
.checkbox-text a:hover { text-decoration-color: var(--accent); }

/* ── Divider ─────────────────────────────────────────────── */
.divider {
  border: none;
  border-top: 1px solid var(--border-l);
  margin: 20px 0;
}

/* ============================================================
   AUTH PAGE
   ============================================================ */
.auth-page {
  display: flex;
  min-height: 100vh;
}

/* Left panel */
.auth-container {
  width: 100%;
  max-width: 480px;
  padding: 48px 44px;
  background: var(--bg-2);
  border-right: 1px solid var(--border-l);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
}
.auth-brand { text-align: center; }
.auth-logo { font-size: 56px; line-height: 1; margin-bottom: 10px; }
.auth-title {
  font-family: var(--font-main);
  font-size: 32px;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
}
.auth-subtitle { color: var(--text-3); font-size: 13px; letter-spacing: 1px; margin-top: 6px; }

.auth-card {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
}
.auth-card h2 {
  font-family: var(--font-main);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 8px;
}
.auth-desc { color: var(--text-3); font-size: 14px; margin-bottom: 22px; line-height: 1.6; }

/* Auth methods — branded buttons */
.auth-methods {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--border-l);
}

.auth-method-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  height: 52px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border);
  cursor: pointer;
  transition: all var(--transition);
  padding: 0 20px;
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .5px;
  color: var(--text);
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
}

.auth-method-btn .icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  fill: currentColor;
  stroke: none;
  transition: transform var(--transition);
}

.auth-method-btn span {
  line-height: 1;
}

/* Branded buttons — site accent (orange/white) */
.auth-method-btn--telegram,
.auth-method-btn--max,
.auth-method-btn--vk {
  border-color: rgba(238,125,0,.4);
  background: linear-gradient(135deg, rgba(238,125,0,.08) 0%, rgba(238,125,0,.02) 100%);
  color: #fff;
}
.auth-method-btn--telegram .icon,
.auth-method-btn--vk .icon {
  color: var(--accent);
}

/* MAX brand logo (from wikimedia commons, public domain) — orange variant */
.auth-method-btn--max .max-logo {
  height: 22px;
  width: auto;
  vertical-align: middle;
  transition: filter .15s ease;
}
/* On hover button turns solid orange, swap logo to white so it stays readable */
.auth-method-btn--max:hover .max-logo {
  filter: brightness(0) invert(1);
}

.auth-method-btn--telegram:hover,
.auth-method-btn--max:hover,
.auth-method-btn--vk:hover {
  background: linear-gradient(135deg, #ee7d00 0%, #ff9420 100%);
  border-color: #ee7d00;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(238,125,0,.4);
}
.auth-method-btn--telegram:hover .icon,
.auth-method-btn--vk:hover .icon {
  color: #fff;
  transform: scale(1.1);
}
.auth-method-btn--max:hover .max-badge {
  background: #fff;
  color: var(--accent);
}

/* Active/pressed state */
.auth-method-btn--telegram:active,
.auth-method-btn--max:active,
.auth-method-btn--vk:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(238,125,0,.3);
}

/* MAX auth dialog panel */
.max-auth-panel {
  margin-top: 16px;
  padding: 18px 20px;
  border: 1px solid rgba(238,125,0,.3);
  border-radius: 12px;
  background: rgba(238,125,0,.04);
  text-align: center;
}
.max-auth-panel.hidden { display: none; }
.max-auth-panel h3 {
  margin: 0 0 10px;
  font-size: 15px;
  color: var(--accent);
  font-weight: 700;
}
.max-auth-panel .max-auth-step {
  margin: 0 0 14px;
  font-size: 13px;
  color: rgba(255,255,255,.75);
  line-height: 1.55;
  text-align: left;
}
.max-auth-panel .btn { display: inline-flex; margin-bottom: 12px; }
.max-auth-status {
  margin: 8px 0 12px;
  font-size: 12px;
  color: rgba(255,255,255,.55);
}

/* Disabled state when privacy not accepted */
.auth-method-btn:disabled,
.auth-method-btn.is-disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}
.auth-method-btn:disabled:hover,
.auth-method-btn.is-disabled:hover {
  transform: none;
  box-shadow: none;
}

.auth-legal { text-align: center; font-size: 11px; color: var(--text-4); letter-spacing: .5px; }

/* Code input */
#code {
  text-align: center;
  letter-spacing: 14px;
  font-size: 32px;
  font-weight: 700;
  font-family: monospace;
  padding: 18px;
  color: var(--accent);
  background: var(--bg);
}

/* Right visual panel */
.auth-visual {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px;
  overflow: hidden;
}
.auth-visual::before {
  content: '';
  position: absolute; inset: 0;
  background: var(--bg-grad);
}
.auth-visual::after {
  content: '';
  position: absolute;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(238,125,0,.12) 0%, transparent 70%);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.auth-visual .visual-content {
  position: relative;
  z-index: 1;
  max-width: 420px;
}
.auth-visual h2 {
  font-family: var(--font-main);
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 1px;
  color: var(--text);
  margin-bottom: 28px;
  line-height: 1.2;
}
.auth-visual h2 span { color: var(--accent); }
.feature-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.feature-item {
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.feature-item:last-child { border-bottom: none; }

.feature-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 0;
  width: 100%;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  font-size: inherit;
}
.feature-header:hover .feature-title { color: var(--text); }

.feature-arrow {
  color: var(--accent);
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 1px;
  display: inline-block;
  transition: transform .25s ease;
  line-height: 1.4;
}
.feature-item.open .feature-arrow {
  transform: rotate(90deg);
}

.feature-title {
  font-size: 15px;
  color: var(--text-2);
  line-height: 1.4;
  transition: color var(--transition);
}

.feature-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, opacity .3s ease, padding .3s ease;
  opacity: 0;
  padding: 0 0 0 26px;
  font-size: 13px;
  color: var(--text-3);
  line-height: 1.65;
}
.feature-item.open .feature-body {
  max-height: 800px;
  opacity: 1;
  padding: 0 0 13px 26px;
}
/* ── Paywall modal ───────────────────────────────────────── */
.paywall-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 13, 15, 0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.paywall-overlay.hidden { display: none; }

.paywall-modal {
  background: #151d21;
  border: 1px solid #ee7d00;
  border-radius: 18px;
  padding: 40px 36px 36px;
  max-width: 460px;
  width: 100%;
  position: relative;
  box-shadow: 0 24px 64px rgba(0,0,0,.65);
  animation: paywall-in .28s ease;
}
@keyframes paywall-in {
  from { opacity: 0; transform: translateY(16px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.paywall-close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: none;
  border: none;
  color: rgba(255,255,255,.35);
  font-size: 18px;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 8px;
  line-height: 1;
  transition: color .2s, background .2s;
}
.paywall-close:hover { color: #fff; background: rgba(255,255,255,.08); }

.paywall-icon {
  text-align: center;
  margin-bottom: 16px;
}
.paywall-icon svg {
  width: 44px; height: 44px;
  stroke: #ee7d00; stroke-width: 1.4;
}

.paywall-title {
  font-family: var(--font-main);
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  margin: 0 0 10px;
}

.paywall-desc {
  font-size: 14px;
  color: var(--text-3);
  text-align: center;
  line-height: 1.65;
  margin: 0 0 28px;
}

/* promo block */
.paywall-promo-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.paywall-promo-row .btn {
  width: 100%;
  justify-content: center;
  flex-shrink: 0;
  font-size: 13px;
  letter-spacing: 0;
  padding-left: 14px;
  padding-right: 14px;
}

/* Horizontal layout: landscape on mobile or wider screens */
@media (min-width: 641px), (orientation: landscape) and (max-width: 640px) {
  .paywall-promo-row {
    flex-direction: row;
  }

  .paywall-promo-row .btn {
    width: 160px;
  }
}
.paywall-promo-input {
  flex: 1;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 9px;
  padding: 11px 14px;
  font-family: var(--font-main);
  font-size: 14px;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: border-color .2s;
}
.paywall-promo-input:focus {
  outline: none;
  border-color: #ee7d00;
  background: rgba(255,255,255,.09);
}
.paywall-promo-input::placeholder {
  text-transform: none;
  letter-spacing: 0;
  color: rgba(255,255,255,.28);
}
.paywall-promo-status {
  min-height: 22px;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.4;
}
.paywall-promo-status.ok  { color: #4caf50; }
.paywall-promo-status.err { color: #ef5350; }

/* divider */
.paywall-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0;
  color: rgba(255,255,255,.28);
  font-size: 13px;
}
.paywall-divider::before,
.paywall-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,.1);
}

/* payment block */
.paywall-payment { text-align: center; }
.btn-pay {
  width: 100%;
  background: #ee7d00;
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 13px 20px;
  font-family: var(--font-main);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background .2s, opacity .2s;
}
.btn-pay:disabled { opacity: .38; cursor: not-allowed; }
.btn-pay:not(:disabled):hover { background: #d36c00; }

.paywall-pay-note {
  margin-top: 9px;
  font-size: 12px;
  color: rgba(255,255,255,.3);
  line-height: 1.55;
}
.paywall-pay-soon { color: rgba(238,125,0,.6); }

/* success state */
.paywall-success {
  text-align: center;
  padding: 10px 0 4px;
}
.paywall-success-check {
  font-size: 44px;
  line-height: 1;
  margin-bottom: 14px;
}
.paywall-success-text {
  font-size: 17px;
  font-weight: 700;
  color: #4caf50;
  margin-bottom: 6px;
}
.paywall-success-sub {
  font-size: 13px;
  color: rgba(255,255,255,.45);
}

/* ── Paywall email row ──────────────────────────────────── */
.paywall-email-row {
  margin-bottom: 14px;
}
.paywall-email-row .paywall-promo-input {
  width: 100%;
  box-sizing: border-box;
}

/* ── VPN popup ───────────────────────────────────────────── */
.vpn-popup {
  position: fixed;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  z-index: 9999;
  background: rgba(21, 29, 33, 0.92);
  border: 1px solid #ee7d00;
  border-radius: 12px;
  padding: 18px 28px;
  display: flex;
  align-items: center;
  gap: 14px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 8px 32px rgba(0,0,0,.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  white-space: nowrap;
}
.vpn-popup.vpn-popup--visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.vpn-popup__icon {
  font-size: 22px;
  flex-shrink: 0;
}
.vpn-popup__text {
  font-family: var(--font-main);
  font-size: 15px;
  font-weight: 400;
  color: var(--text-2);
  line-height: 1.4;
}
.vpn-popup__text span {
  color: #ee7d00;
}
.vpn-popup__close {
  background: none;
  border: none;
  color: rgba(255,255,255,.4);
  font-size: 18px;
  cursor: pointer;
  padding: 0 0 0 10px;
  line-height: 1;
  transition: color .2s;
}
.vpn-popup__close:hover {
  color: #fff;
}

@media (max-width: 640px) {
  .vpn-popup {
    bottom: 16px;
    left: 12px;
    right: 12px;
    transform: translateX(0) translateY(20px);
    max-width: none;
    width: calc(100% - 24px);
    padding: 12px 14px;
    white-space: normal;
    border-radius: 8px;
  }
  .vpn-popup.vpn-popup--visible {
    transform: translateX(0) translateY(0);
  }
  .vpn-popup__text {
    font-size: 13px;
  }
  .vpn-popup__close {
    font-size: 16px;
    padding-left: 8px;
  }
}

.visual-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 36px;
  border: 1px solid var(--border);
  padding: 8px 18px;
  border-radius: 20px;
  font-family: var(--font-main);
  font-size: 13px;
  letter-spacing: 1px;
  color: var(--text-3);
}
.visual-badge::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
}

/* ============================================================
   SURVEY PAGE
   ============================================================ */
.survey-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg);
  background-image: var(--bg-grad);
  background-attachment: fixed;
}

/* Header */
.survey-header {
  background: rgba(21,29,33,.95);
  border-bottom: 1px solid var(--border-l);
  padding: 0 32px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(10px);
}
.survey-logo {
  font-family: var(--font-main);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
}
.survey-user { display: flex; align-items: center; gap: 20px; font-size: 13px; }
.user-email { color: var(--text-3); }
.logout-link { color: var(--text-4); font-size: 12px; letter-spacing: .5px; white-space: nowrap; }
.logout-link:hover { color: var(--error); }

/* Mobile portrait: compact header */
@media (max-width: 640px) and (orientation: portrait) {
  .survey-header {
    padding: 0 12px;
    height: 50px;
  }

  .survey-user {
    gap: 8px;
  }

  .logout-link {
    font-size: 0; /* hide text */
  }

  .logout-link svg {
    display: block;
  }
}

/* Category tabs */
.category-tabs {
  background: rgba(21,29,33,.8);
  border-bottom: 1px solid var(--border-l);
  padding: 0 32px;
  display: flex;
  gap: 0;
  backdrop-filter: blur(10px);
}
.tab-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  border-bottom: 3px solid transparent;
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--text-3);
  transition: all var(--transition);
  white-space: nowrap;
}
.tab-btn:hover { color: var(--text-2); }
.tab-btn.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.tab-icon { font-size: 16px; }
.tab-progress {
  background: rgba(255,255,255,.06);
  color: var(--text-4);
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  font-family: var(--font-body);
  font-weight: 600;
}
.tab-btn.active .tab-progress {
  background: rgba(238,125,0,.2);
  color: var(--accent);
}
.tab-report-badge {
  display: none;
}
.tab-btn.active .tab-report-badge {
  color: var(--accent);
  border-color: rgba(238,125,0,.35);
  background: rgba(238,125,0,.10);
}
.tab-report-badge--ready {
  color: #fff;
  background: rgba(238,125,0,.92);
  border-color: rgba(255,255,255,.34);
  box-shadow: 0 0 0 0 rgba(238,125,0,.5);
  animation: reportBadgePulse 1.6s ease-in-out infinite;
}
.tab-btn--complete .tab-report-badge {
  cursor: pointer;
}
.tab-btn--complete {
  border-color: rgba(238,125,0,.45);
}
.tab-btn--complete .tab-label {
  color: var(--text-1);
}
@keyframes reportBadgePulse {
  0% { box-shadow: 0 0 0 0 rgba(238,125,0,.48); }
  70% { box-shadow: 0 0 0 7px rgba(238,125,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(238,125,0,0); }
}

.question-report-btn {
  border: 1px solid rgba(238,125,0,.34);
  background: rgba(238,125,0,.10);
  color: var(--accent);
  border-radius: 999px;
  min-height: 36px;
  padding: 7px 14px;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.question-report-btn:hover {
  transform: translateY(-1px);
  background: rgba(238,125,0,.16);
}
.question-report-btn--ready {
  color: #fff;
  background: rgba(238,125,0,.88);
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 0 0 0 rgba(238,125,0,.42);
  animation: reportBadgePulse 1.9s ease-in-out infinite;
}
.question-report-btn--ready:hover {
  background: rgba(238,125,0,1);
}

/* Progress bar */
.progress-bar-container { display: none; }
.progress-bar {
  height: 100%;
  background: var(--accent);
  transition: width .5s ease;
  box-shadow: 0 0 8px rgba(255,188,0,.6);
}

/* Main survey area */
.survey-main {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 48px 24px;
}

/* Question card */
.question-card {
  width: 100%;
  max-width: 720px;
  background: rgba(21,29,33,.9);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 48px 52px;
  animation: fadeSlide .3s ease;
  backdrop-filter: blur(10px);
}
@keyframes fadeSlide {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.question-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}
.question-num {
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 700;
  color: var(--text-4);
  text-transform: uppercase;
  letter-spacing: 2px;
}
.question-category {
  background: rgba(238,125,0,.15);
  color: var(--accent);
  font-family: var(--font-main);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid rgba(238,125,0,.3);
}

.question-text {
  font-family: var(--font-main);
  font-size: 26px;
  font-weight: 400;
  color: var(--text);
  line-height: 1.35;
  /* Reserve space for 3 lines so the input below never jumps */
  min-height: calc(26px * 1.35 * 3);
  margin-bottom: 28px;
  letter-spacing: .3px;
}

/* Answer area */
.answer-group { position: relative; margin-bottom: 24px; }
.answer-input {
  width: 100%;
  min-height: 64px;
  padding: 13px 16px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 17px;
  font-family: var(--font-body);
  color: var(--highlight);
  background: rgba(14,17,19,.8);
  transition: border-color var(--transition), box-shadow var(--transition);
  outline: none;
  resize: none;
}
.answer-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.15), 0 2px 3px 3px rgba(255,188,0,.1);
}
.answer-input::placeholder { color: var(--text-4); font-size: 17px; }
.answer-counter {
  font-size: 11px;
  color: var(--text-4);
  text-align: right;
  margin-top: 4px;
  font-family: var(--font-main);
  letter-spacing: .5px;
}

/* Navigation */
.question-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.nav-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  /* Sprint H7 (2026-04-30): тач-цели 44×44 (Apple HIG) — padding-y 12 → 14, min-height 44 */
  padding: 14px 24px;
  min-height: 44px;
  border-radius: var(--radius-sm);
  font-family: var(--font-main);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: .5px;
  text-transform: uppercase;
  transition: all var(--transition);
  border: 2px solid var(--border);
}
.nav-prev {
  background: transparent;
  color: var(--text-3);
}
.nav-prev:hover:not(:disabled) {
  border-color: var(--border);
  color: var(--text-2);
}
.nav-next {
  background: var(--accent);
  color: var(--text);
  border-color: var(--accent);
  box-shadow: 0 2px 16px rgba(238,125,0,.35);
}
.nav-next:hover:not(:disabled) {
  background: var(--accent-d);
  border-color: var(--accent-d);
  box-shadow: 0 4px 24px rgba(238,125,0,.55);
  transform: translateX(2px);
}
.nav-btn:disabled { opacity: .3; cursor: not-allowed; transform: none !important; }

.nav-dots {
  display: flex;
  gap: 5px;
  flex: 1;
  justify-content: center;
}
.nav-dot {
  /* Sprint H7 (2026-04-30): видимая точка 7×7 + невидимая hit-zone 44×44 через ::before */
  position: relative;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--border);
  transition: all var(--transition);
  cursor: pointer;
}
.nav-dot::before {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 44px; height: 44px;
  transform: translate(-50%, -50%);
  /* прозрачная зона клика — Apple HIG минимум 44×44 */
}
.nav-dot:hover { background: var(--text-3); }
.nav-dot.answered { background: var(--accent); opacity: .6; }
.nav-dot.current  { background: var(--accent); transform: scale(1.4); box-shadow: 0 0 6px var(--accent); }

/* Complete section */
.complete-section { width: 100%; max-width: 720px; }
.complete-card {
  background: rgba(21,29,33,.9);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 64px 52px;
  text-align: center;
  backdrop-filter: blur(10px);
}
.complete-icon { font-size: 64px; margin-bottom: 24px; }
.complete-card h2 {
  font-family: var(--font-main);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
}
.complete-card p { color: var(--text-2); font-size: 15px; margin-bottom: 36px; }
.complete-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* Save status */
.save-status {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: rgba(21,29,33,.95);
  color: var(--accent);
  font-family: var(--font-main);
  font-size: 13px;
  letter-spacing: 1px;
  padding: 8px 20px;
  border-radius: 20px;
  border: 1px solid var(--border);
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
  z-index: 200;
}
.save-status.visible { opacity: 1; }

/* ============================================================
   REPORT PAGE
   ============================================================ */
.report-page {
  min-height: 100vh;
  background: var(--bg);
  background-image: var(--bg-grad);
  background-attachment: fixed;
  display: flex;
  flex-direction: column;
}
.report-header {
  background: rgba(21,29,33,.95);
  border-bottom: 1px solid var(--border-l);
  padding: 0 32px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky; top: 0; z-index: 100;
  backdrop-filter: blur(10px);
}
.report-logo {
  font-family: var(--font-main);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
}
.header-actions { display: flex; gap: 12px; }

.report-main {
  flex: 1;
  max-width: 1100px;
  width: 100%;
  margin: 0 auto;
  padding: 40px 24px;
}

/* Report selector */
.report-selector h1 {
  font-family: var(--font-main);
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 22px;
}
.report-selector h1 span { color: var(--accent); }
.report-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.rtab {
  padding: 10px 22px;
  border-radius: var(--radius-sm);
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--text-3);
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--border);
  transition: all var(--transition);
}
.rtab:hover { border-color: var(--accent); color: var(--accent); }
.rtab.active {
  background: var(--accent);
  color: var(--text);
  border-color: var(--accent);
  box-shadow: 0 2px 16px rgba(238,125,0,.35);
}

.report-package-summary {
  margin: 0 0 28px;
  padding: 18px 20px;
  border: 1px solid rgba(238,125,0,.24);
  border-radius: var(--radius-sm);
  background: rgba(21,29,33,.72);
  max-width: 100%;
  overflow: hidden;
}
.report-package-summary:empty { display: none; }
.report-package-summary p {
  margin: 0 0 12px;
  color: var(--text);
  font-size: 15px;
  line-height: 1.45;
}
.report-package-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.report-package-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: rgba(255,255,255,.035);
  color: var(--text-3);
  font-size: 12px;
  line-height: 1.35;
}
.report-package-name {
  color: var(--text);
  font-weight: 800;
  min-width: 0;
  overflow-wrap: anywhere;
}
.report-package-status {
  color: var(--text-3);
  flex: 0 0 auto;
  white-space: nowrap;
}
.report-package-row--ready {
  border-color: rgba(60,190,120,.36);
  background: rgba(60,190,120,.08);
}
.report-package-row--ready .report-package-status { color: var(--success); }
.report-package-row--generating {
  border-color: rgba(238,125,0,.5);
  background: rgba(238,125,0,.1);
}
.report-package-row--generating .report-package-status { color: var(--accent); }
.report-package-row--error {
  border-color: rgba(255,90,90,.45);
  background: rgba(255,90,90,.08);
}
.report-package-row--error .report-package-status { color: var(--error); }

/* States */
.report-idle,
.report-generating,
.report-error,
.report-limit {
  background: rgba(21,29,33,.9);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 80px 48px;
  text-align: center;
  backdrop-filter: blur(10px);
}
.idle-icon, .error-icon { font-size: 60px; margin-bottom: 22px; }
.report-idle h2,
.report-error h2 {
  font-family: var(--font-main);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 10px;
}
.report-idle p, .report-error p { color: var(--text-3); margin-bottom: 32px; font-size: 15px; }

/* Generating animation */
.generating-animation {
  position: relative;
  width: 130px;
  height: 130px;
  margin: 0 auto 36px;
}
.brain-icon {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 52px;
  animation: pulseBrain 2s ease infinite;
}
@keyframes pulseBrain {
  0%, 100% { transform: translate(-50%,-50%) scale(1); filter: brightness(1); }
  50%       { transform: translate(-50%,-50%) scale(1.1); filter: brightness(1.2); }
}
.pulse-ring {
  position: absolute; top: 0; left: 0;
  width: 100%; height: 100%;
  border-radius: 50%;
  border: 2px solid var(--accent);
  animation: ring 2s ease-out infinite;
  opacity: 0;
}
.pulse-ring--2 { animation-delay: 1s; }
@keyframes ring {
  0%   { transform: scale(.4); opacity: .8; }
  100% { transform: scale(1.6); opacity: 0; }
}

.report-generating h2 {
  font-family: var(--font-main);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 10px;
}
.report-generating > p { color: var(--text-3); margin-bottom: 32px; }

.generating-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
  align-items: center;
}
.gstep {
  font-family: var(--font-main);
  font-size: 14px;
  letter-spacing: .5px;
  color: var(--text-4);
  display: flex;
  align-items: center;
  gap: 10px;
  transition: color var(--transition);
}
.gstep::before { content: '○'; font-size: 12px; }
.gstep.active  { color: var(--accent); font-weight: 700; }
.gstep.active::before { content: '●'; }
.gstep.done    { color: var(--success); }
.gstep.done::before { content: '✓'; }
.generating-note { font-size: 13px; color: var(--text-4); }

/* PDF ready */
.report-ready {
  background: rgba(21,29,33,.9);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  backdrop-filter: blur(10px);
  padding: 56px 42px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.report-ready .state-icon-wrap { margin-bottom: 28px; }
.report-ready h2 {
  font-family: var(--font-main);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}
.ready-title {
  color: var(--text-2);
  margin: 0 0 20px;
  font-size: 16px;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.ready-note {
  color: var(--text-3);
  margin: 0 0 30px;
  max-width: 620px;
  line-height: 1.55;
}
.ready-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}
.pdf-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border-l);
  background: rgba(14,17,19,.6);
}
.pdf-info {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-main);
  font-weight: 400;
  font-size: 15px;
  letter-spacing: .5px;
  color: var(--text);
}
.pdf-icon { font-size: 20px; }
.pdf-actions { display: flex; gap: 10px; }
.pdf-preview-container { position: relative; }
.pdf-frame {
  width: 100%;
  height: calc(100vh - 240px);
  min-height: 600px;
  border: none;
  display: block;
  background: #fff;
}
.pdf-fallback { padding: 40px; text-align: center; color: var(--text-3); }

/* Error page */
.error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.error-content { text-align: center; }
.error-content h1 {
  font-family: var(--font-main);
  font-size: 100px;
  font-weight: 400;
  color: var(--border);
  letter-spacing: 4px;
}
.error-content p { color: var(--text-3); margin: 12px 0 28px; font-size: 18px; }

/* ============================================================
   Glowing accent line under header
   ============================================================ */
.survey-header::after,
.report-header::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: .4;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 768px) {
  .auth-page { flex-direction: column; }
  .auth-container { max-width: 100%; padding: 24px 16px; }
  .auth-visual { flex: none; background: none; padding: 16px; }
  .auth-visual::before,
  .auth-visual::after { display: none; }
  .auth-visual h2 { font-size: 18px; margin-bottom: 12px; }
  .feature-title { font-size: 13px; }
  .feature-body { font-size: 12px; line-height: 1.5; }
  .feature-item { border-bottom: 1px solid rgba(255,255,255,.05); }
  .feature-header { padding: 10px 0; font-size: 13px; }
  .feature-arrow { font-size: 12px; }

  .survey-header, .category-tabs { padding: 0 16px; }
  .tab-label { display: none; }
  .question-card, .complete-card { padding: 28px 20px; }
  .question-text { font-size: 20px; min-height: calc(20px * 1.35 * 3); }
  .survey-main { padding: 24px 16px; }

  .report-main { padding: 20px 16px; }
  .report-idle, .report-generating, .report-error, .report-limit, .report-ready { padding: 40px 24px; }
  .report-package-list { grid-template-columns: 1fr; }
  .report-package-status { white-space: normal; text-align: right; }
  .pdf-frame { height: 60vh; }
  .nav-dots { display: none; }
}

@media (max-width: 480px) {
  .category-tabs { overflow-x: auto; scrollbar-width: none; }
  .tab-btn { padding: 14px 12px; }
  .complete-actions { flex-direction: column; }
  .report-tabs { overflow-x: auto; }
}

/* ============================================================
   SVG Icons — monochrome orange
   ============================================================ */
.icon {
  display: inline-block;
  flex-shrink: 0;
  color: var(--accent);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: middle;
}
.icon-sm  { width: 16px; height: 16px; }
.icon-md  { width: 22px; height: 22px; }
.icon-lg  { width: 32px; height: 32px; }
.icon-xl  { width: 56px; height: 56px; stroke-width: 1; }
.icon-xxl { width: 80px; height: 80px; stroke-width: .8; }

.icon-muted  { color: var(--text-4); }
.icon-text   { color: var(--text-3); }
.icon-white  { color: var(--text); }
.icon-error  { color: var(--error); }
.icon-success{ color: var(--success); }

/* Logo mark */
.logo-mark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.logo-mark .icon { color: var(--accent); }
.logo-mark span {
  font-family: var(--font-main);
  font-weight: 700;
  font-size: inherit;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
}

/* Tab icons */
.tab-btn .icon { color: var(--text-4); transition: color var(--transition); }
.tab-btn:hover .icon { color: var(--text-2); }
.tab-btn.active .icon { color: var(--accent); }

/* Complete icon ring */
.complete-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  box-shadow: 0 0 24px rgba(238,125,0,.25);
  margin-bottom: 24px;
}

/* State icons */
.state-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  margin-bottom: 20px;
}
.state-icon-wrap.accent { border-color: var(--accent); box-shadow: 0 0 20px rgba(238,125,0,.2); }
.state-icon-wrap.error  { border-color: var(--error); }
.state-icon-wrap.limit  { border-color: var(--accent); box-shadow: 0 0 28px rgba(238,125,0,.25); }

/* ============================================================
   Survey — background decorative icons
   ============================================================ */
.survey-bg {
  position: fixed;
  bottom: -80px;
  right: -80px;
  width: 520px;
  height: 520px;
  pointer-events: none;
  z-index: 0;
  animation: bgFloat 9s ease-in-out infinite;
}

.survey-bg-icon {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform-origin: center center;
}

/* Sprint H11 (2026-04-30): exit 0.9s → 0.25s, enter 1.4s → 0.5s — синхронно с opacity-fade question card */
.survey-bg-icon.bg-exit {
  animation: bgKalOut 0.25s cubic-bezier(0.4, 0, 0.8, 1) forwards;
}

.survey-bg-icon.bg-enter {
  animation: bgKalIn 0.5s cubic-bezier(0, 0, 0.2, 1) forwards;
}

.survey-bg-icon svg {
  width: 100%;
  height: 100%;
  stroke: var(--accent);
  stroke-width: 0.35;
  fill: none;
}

@keyframes bgKalOut {
  0%   { opacity: 0.055; transform: scale(1)    rotate(0deg);   }
  55%  { opacity: 0.025; transform: scale(0.18) rotate(130deg); }
  100% { opacity: 0;     transform: scale(0.03) rotate(220deg); }
}

@keyframes bgKalIn {
  0%   { opacity: 0;     transform: scale(0.03) rotate(-220deg); }
  35%  { opacity: 0.04; }
  75%  { transform: scale(1.07) rotate(-12deg); }
  100% { opacity: 0.055; transform: scale(1)    rotate(0deg);   }
}

/* Section-switch overlay flash */
.survey-main,
.category-tabs,
.progress-bar-container {
  position: relative;
  z-index: 1;
}
.survey-header { z-index: 100; }
.save-status   { z-index: 200; }

/* ── Journey progress track ──────────────────────────────── */
.journey-track {
  padding: 12px 40px 10px;
  background: rgba(255,255,255,.018);
  border-bottom: 1px solid var(--border-l);
  position: relative;
  z-index: 1;
}
.journey-steps {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  max-width: 720px;
  margin: 0 auto;
}
.journey-fill-track {
  position: absolute;
  top: 6px;
  left: 10%;
  width: 80%;
  height: 1px;
  background: rgba(255,255,255,.07);
  z-index: 0;
}
.journey-fill-bar {
  position: absolute;
  top: -0.5px;
  left: 0;
  height: 2px;
  width: 0%;
  background: var(--accent);
  transition: width 0.9s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 6px rgba(238,125,0,.4);
}
.journey-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  position: relative;
  z-index: 2;
  flex: 1;
}
.journey-dot {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.15);
  background: var(--bg-2);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.4s, border-color 0.4s, box-shadow 0.4s;
}
.journey-dot .icon {
  width: 12px;
  height: 12px;
  color: var(--text-4);
}
.journey-step.done .journey-dot {
  background: var(--accent);
  border-color: var(--accent);
}
.journey-step.active .journey-dot {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.22);
  animation: dotPulse 2s ease-in-out infinite;
}
.journey-step.done .journey-dot .icon,
.journey-step.active .journey-dot .icon {
  color: #fff;
}
.journey-label {
  font-size: 10px;
  color: var(--text-4);
  text-align: center;
  white-space: nowrap;
  letter-spacing: .3px;
  transition: color 0.4s;
}
.journey-step.done   .journey-label { color: var(--text-3); }
.journey-step.active .journey-label { color: var(--accent); font-weight: 700; }
@media (max-width: 600px) {
  .journey-track  { padding: 10px 16px 8px; }
  .journey-label  { display: none; }
  .journey-step.active .journey-label { display: block; }
}

@keyframes bgFloat {
  0%   { transform: translateY(0px)   rotate(-6deg); }
  50%  { transform: translateY(-22px) rotate(-6deg); }
  100% { transform: translateY(0px)   rotate(-6deg); }
}

/* ============================================================
   Site Logo — flip animation  ROINEXT ↔ NEIRO
   Orange box pivot stays anchored; letters fold/unfold from it.
   Math (34px header):  roi_w=119px orange@80px  nei_w=100px orange@30px  nei_left=50px
   Math (56px brand):   roi_w=197px orange@132px nei_w=165px orange@49px  nei_left=83px
   ============================================================ */
.site-logo {
  position: relative;
  flex-shrink: 0;
  overflow: visible;
}

/* Small — header */
.site-logo--sm { height: 34px; width: 155px; }

/* Large — auth brand */
.site-logo--lg { height: 56px; width: 250px; }

.slogo {
  position: absolute;
  top: 0;
  height: 100%;
  width: auto;
  will-change: opacity, transform;
}

/* Header offsets — align orange box at x=80px in both */
.site-logo--sm .slogo-roinext { left: 0;    transform-origin: 80px 50%; }
.site-logo--sm .slogo-neiro   { left: 50px; transform-origin: 30px 50%; }

/* Brand offsets — align orange box at x=132px in both */
.site-logo--lg .slogo-roinext { left: 0;    transform-origin: 132px 50%; }
.site-logo--lg .slogo-neiro   { left: 83px; transform-origin:  49px 50%; }

/*
  Timeline (8s):
  0 –40% ROINEXT fully visible
  40–46% ROINEXT folds toward orange pivot (scaleX 1→0)
  46–53% NEIRO unfolds from orange pivot  (scaleX 0→1)
  53–91% NEIRO fully visible
  91–97% NEIRO folds back
  97–100% ROINEXT quick return
*/
.slogo-roinext { animation: slogoRoi 8s ease-in-out infinite; }
.slogo-neiro   { animation: slogoNei 8s ease-in-out infinite; }

@keyframes slogoRoi {
  0%,  40% { opacity: 1; transform: scaleX(1); }
  46%      { opacity: 0; transform: scaleX(0.03); }
  91%      { opacity: 0; transform: scaleX(0.03); }
  97%, 100%{ opacity: 1; transform: scaleX(1); }
}
@keyframes slogoNei {
  0%,  46% { opacity: 0; transform: scaleX(0.03); }
  53%      { opacity: 1; transform: scaleX(1); }
  91%      { opacity: 1; transform: scaleX(1); }
  97%, 100%{ opacity: 0; transform: scaleX(0.03); }
}

/* ══════════════════════════════════════════════════════════
   About page  —  tight typographic scale: 10/12/14/16/22/28/34
   ══════════════════════════════════════════════════════════ */
.about-page {
  min-height: 100vh;
  background: var(--bg);
  background-image: var(--bg-grad);
  color: var(--text);
  font-size: 14px;
  line-height: 1.65;
}

.about-container {
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ── Shared label ─────────────────────────────────────── */
.about-section-label {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(238,125,0,.09);
  border: 1px solid rgba(238,125,0,.22);
  padding: 4px 11px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.about-section-label--light {
  color: rgba(255,255,255,.45);
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.1);
}

/* ── Shared section title ─────────────────────────────── */
.about-section-title {
  font-family: var(--font-main);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--text);
  margin-bottom: 28px;
  letter-spacing: .2px;
}
.about-section-title span { color: var(--accent); }

/* ── Buttons ──────────────────────────────────────────── */
.btn-lg { padding: 11px 22px; font-size: 13px; }
.btn-xl { padding: 13px 28px; font-size: 14px; letter-spacing: .3px; }

/* ── Hero ─────────────────────────────────────────────── */
.about-hero {
  position: relative;
  overflow: hidden;
  padding: 64px 0 56px;
  text-align: center;
  border-bottom: 1px solid var(--border-l);
}
.about-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.about-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: .13;
}
.about-orb--1 { width: 420px; height: 420px; background: var(--accent); top: -160px; left: -80px;  animation: orbFloat1 14s ease-in-out infinite; }
.about-orb--2 { width: 300px; height: 300px; background: #1a6b8a;       top: 30px;  right: -60px; animation: orbFloat2 18s ease-in-out infinite; }
.about-orb--3 { width: 240px; height: 240px; background: var(--accent); bottom: -100px; left: 42%; animation: orbFloat1 20s ease-in-out infinite reverse; }

@keyframes orbFloat1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(24px, -32px) scale(1.06); }
}
@keyframes orbFloat2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(-20px, 24px) scale(0.95); }
}

.about-hero-label {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 18px;
}
.about-hero-title {
  font-family: var(--font-main);
  font-size: 34px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--text);
  margin-bottom: 16px;
  letter-spacing: .1px;
}
.about-hero-title span { color: var(--accent); }
.about-hero-sub {
  font-size: 14px;
  color: var(--text-3);
  max-width: 520px;
  margin: 0 auto 28px;
  line-height: 1.7;
}
.about-hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

/* ── Provoke ──────────────────────────────────────────── */
.about-provoke {
  padding: 48px 0;
  border-bottom: 1px solid var(--border-l);
}
.about-provoke-grid {
  display: flex;
  align-items: stretch;
  gap: 0;
}
.about-provoke-card {
  flex: 1;
  padding: 24px 28px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border-l);
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--text-3);
}
.about-provoke-card--bright {
  background: rgba(238,125,0,.05);
  border-color: rgba(238,125,0,.22);
  color: var(--text-2);
}
.about-provoke-icon { margin-bottom: 12px; }
.about-provoke-icon .icon { width: 24px; height: 24px; stroke: var(--accent); }
.about-provoke-divider {
  flex: 0 0 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-provoke-vs {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-3);
  border: 1px solid rgba(238,125,0,.5);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--accent);
}

/* ── About ────────────────────────────────────────────── */
.about-about {
  padding: 56px 0;
  border-bottom: 1px solid var(--border-l);
}
.about-about-grid {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 60px;
  align-items: center;
}
.about-about-text p {
  color: var(--text-3);
  font-size: 14px;
  line-height: 1.75;
  margin-bottom: 14px;
}
.about-stats {
  display: flex;
  gap: 28px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid var(--border-l);
}
.about-stat-num {
  display: block;
  font-family: var(--font-main);
  font-size: 28px;
  font-weight: 400;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 4px;
}
.about-stat-label { font-size: 11px; color: var(--text-4); letter-spacing: .4px; }

.about-about-visual { text-align: center; }
.about-brain-wrap {
  position: relative;
  width: 160px;
  height: 160px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.about-brain-icon {
  width: 96px;
  height: 96px;
  stroke: var(--accent);
  stroke-width: 0.6;
  opacity: .65;
  animation: brainPulse 4s ease-in-out infinite;
}
@keyframes brainPulse {
  0%, 100% { opacity: .65; transform: scale(1); }
  50%       { opacity: .9; transform: scale(1.04); }
}
.about-brain-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(238,125,0,.25);
  animation: pulseRing 3s ease-out infinite;
}
.about-brain-pulse--2 { animation-delay: 1.5s; }
@keyframes pulseRing {
  0%   { transform: scale(0.6); opacity: .7; }
  100% { transform: scale(1.15); opacity: 0; }
}
.about-about-caption {
  font-size: 11px;
  color: var(--text-4);
  line-height: 1.55;
  max-width: 200px;
  margin: 0 auto;
}

/* ── Services ─────────────────────────────────────────── */
.about-services {
  padding: 56px 0;
  border-bottom: 1px solid var(--border-l);
}
.about-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.about-service-card {
  padding: 20px 20px 22px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border-l);
  border-radius: 8px;
  transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.about-service-card:hover {
  border-color: rgba(238,125,0,.35);
  background: rgba(238,125,0,.04);
  transform: translateY(-2px);
}
.about-service-icon {
  width: 36px;
  height: 36px;
  background: rgba(238,125,0,.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}
.about-service-icon .icon { width: 18px; height: 18px; stroke: var(--accent); }
.about-service-card h3 {
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 7px;
}
.about-service-card p { font-size: 12px; color: var(--text-3); line-height: 1.6; margin: 0; }

/* ── Train ────────────────────────────────────────────── */
.about-train {
  padding: 56px 0;
  background: linear-gradient(135deg, var(--bg-3) 0%, var(--bg) 70%);
  border-bottom: 1px solid var(--border-l);
}
.about-train-inner {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 60px;
  align-items: center;
}
.about-train-title {
  font-family: var(--font-main);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--text);
  margin-bottom: 16px;
}
.about-train-title span { color: var(--accent); }
.about-train-text p { font-size: 14px; color: var(--text-3); line-height: 1.75; margin-bottom: 12px; }
.about-train-cta { margin-top: 10px; }

.about-train-track {
  display: flex;
  flex-direction: column;
  position: relative;
  padding-left: 24px;
}
.about-train-track::before {
  content: '';
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: linear-gradient(to bottom, var(--accent) 40%, rgba(238,125,0,.1));
}
.about-train-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  font-size: 13px;
  color: var(--text-4);
}
.about-train-item--done   { color: var(--text-2); }
.about-train-item--active { color: var(--accent); font-weight: 700; }
.about-train-dot {
  position: absolute;
  left: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(238,125,0,.3);
  background: var(--bg);
  flex-shrink: 0;
}
.about-train-item--done .about-train-dot   { background: var(--accent); border-color: var(--accent); }
.about-train-item--active .about-train-dot {
  background: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.2);
  animation: dotPulse 2s ease-in-out infinite;
}
@keyframes dotPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(238,125,0,.2); }
  50%       { box-shadow: 0 0 0 6px rgba(238,125,0,.08); }
}

/* ── Final CTA ────────────────────────────────────────── */
.about-cta {
  padding: 64px 0;
  text-align: center;
  border-bottom: 1px solid var(--border-l);
}
.about-cta-title {
  font-family: var(--font-main);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.25;
  color: var(--text);
  margin-bottom: 14px;
}
.about-cta-title span { color: var(--accent); }
.about-cta-sub {
  font-size: 14px;
  color: var(--text-3);
  max-width: 500px;
  margin: 0 auto 28px;
  line-height: 1.7;
}
.about-cta-note { margin-top: 16px; font-size: 12px; color: var(--text-4); }
.about-cta-note a { color: var(--accent); }

/* ── Footer ───────────────────────────────────────────── */
.about-footer {
  padding: 22px 0;
  text-align: center;
}
.about-footer-link { color: var(--accent); font-size: 13px; font-weight: 700; }
.about-footer-sep  { color: var(--text-4); margin: 0 8px; }
.about-footer-text { color: var(--text-4); font-size: 12px; }

/* ── Responsive ───────────────────────────────────────── */
@media (max-width: 900px) {
  .about-hero-title               { font-size: 26px; }
  .about-section-title,
  .about-train-title,
  .about-cta-title                { font-size: 22px; }
  .about-about-grid,
  .about-train-inner              { grid-template-columns: 1fr; gap: 36px; }
  .about-about-visual             { display: none; }
  .about-services-grid            { grid-template-columns: repeat(2, 1fr); }
  .about-provoke-grid             { flex-direction: column; gap: 12px; }
  .about-provoke-divider          { transform: rotate(90deg); }
  .about-container                { padding: 0 20px; }
  .about-hero                     { padding: 48px 0 40px; }
  .about-provoke, .about-about,
  .about-services, .about-train,
  .about-cta                      { padding: 40px 0; }
  .about-stats                    { gap: 20px; }
}

@media (max-width: 600px) {
  .about-hero-title    { font-size: 22px; }
  .about-services-grid { grid-template-columns: 1fr; }
  .about-stats         { flex-wrap: wrap; }
}

/* ============================================================
   Telegram Login Widget
   ============================================================ */
.tg-login-wrap {
  display: flex;
  justify-content: center;
  margin-top: 18px;
  transition: opacity 0.2s ease;
  filter: hue-rotate(183deg) saturate(1.3) brightness(1.05);
}
.tg-login-wrap.is-disabled {
  filter: hue-rotate(183deg) saturate(1.3) brightness(1.05) grayscale(1);
  pointer-events: none;
}
.tg-loader {
  text-align: center;
  margin-top: 12px;
  color: var(--text-4, #6b7280);
  font-size: 14px;
}
/* ── Mobile paywall responsiveness ────────────────────────── */
@media (max-width: 640px) {
  .paywall-modal {
    width: 90vw;
    max-width: none;
    padding: 16px;
    max-height: 90vh;
    overflow-y: auto;
  }
  .paywall-title {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .paywall-desc {
    font-size: 13px;
    line-height: 1.4;
    margin-bottom: 12px;
  }
  .paywall-promo-row,
  .paywall-promo-row .btn {
    font-size: 13px;
  }
  .paywall-promo-row .btn {
    width: 120px;
    min-width: 120px;
    padding: 8px 10px;
    flex-shrink: 0;
  }
  .paywall-promo-input {
    font-size: 13px;
    padding: 8px 10px;
  }
  .paywall-pay-note {
    font-size: 11px;
    margin-top: 8px;
  }
  .paywall-success-text {
    font-size: 16px;
  }
}

.tg-loader.hidden { display: none; }

/* ── Support ticket modal ───────────────────────────────── */
.support-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.support-modal[hidden] { display: none; }
.support-modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.75); backdrop-filter: blur(4px); }
.support-modal__panel {
  position: relative;
  width: min(520px, calc(100% - 32px));
  max-height: 85vh;
  overflow-y: auto;
  background: #151d21;
  border: 1px solid rgba(238,125,0,.3);
  border-radius: 14px;
  padding: 28px 28px 24px;
  color: #f0f0f0;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.support-modal__close {
  position: absolute; top: 14px; right: 14px;
  background: none; border: none; color: rgba(255,255,255,.5);
  font-size: 20px; cursor: pointer; padding: 4px 8px;
}
.support-modal__close:hover { color: var(--accent); }
.support-modal h2 { margin: 0 0 8px; font-size: 18px; color: var(--accent); }
.support-modal__hint { margin: 0 0 18px; font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.5; }
.support-field { display: block; margin-bottom: 14px; }
.support-field > span { display: block; font-size: 12px; color: rgba(255,255,255,.6); margin-bottom: 6px; }
.support-field > span em { color: var(--accent); font-style: normal; }
.support-field input,
.support-field textarea {
  width: 100%;
  background: #0e1113;
  border: 1px solid #2a2a2a;
  border-radius: 8px;
  color: #f0f0f0;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 13px;
  outline: none;
  resize: vertical;
}
.support-field input:focus,
.support-field textarea:focus { border-color: var(--accent); }
.support-actions { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
.support-status { font-size: 12px; color: rgba(255,255,255,.6); }
.support-status--ok  { color: #7fd17f; }
.support-status--err { color: #ff8888; }

/* MAX auth warning block (iPhone note) */
.max-auth-panel .max-auth-warn {
  margin: 10px 0 12px;
  padding: 10px 12px;
  background: rgba(238,125,0,.08);
  border: 1px solid rgba(238,125,0,.25);
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.5;
  color: rgba(255,255,255,.7);
  text-align: left;
}

/* MAX auth waiting pulse (3 dots) + steps list */
.max-auth-pulse {
  display: flex; justify-content: center; gap: 8px;
  margin: 0 0 14px;
}
.max-auth-pulse span {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--accent);
  opacity: .3;
  animation: maxDotPulse 1.2s ease-in-out infinite;
}
.max-auth-pulse span:nth-child(2) { animation-delay: .2s; }
.max-auth-pulse span:nth-child(3) { animation-delay: .4s; }
@keyframes maxDotPulse {
  0%, 80%, 100% { transform: scale(.8); opacity: .3; }
  40%           { transform: scale(1.3); opacity: 1; }
}

.max-auth-steps {
  list-style: none; padding: 0; margin: 14px 0;
  text-align: left;
}
.max-auth-steps li {
  display: flex; align-items: flex-start; gap: 10px;
  margin-bottom: 10px;
  font-size: 13px; line-height: 1.5;
  color: rgba(255,255,255,.8);
}
.max-auth-steps .step-num {
  flex: 0 0 22px;
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(238,125,0,.15);
  color: var(--accent);
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px;
  line-height: 1;
}

/* ── Admin pages ──────────────────────────────────────── */
.admin-page { max-width: 1100px; margin: 30px auto; padding: 0 20px; color: #f0f0f0; }
.admin-header { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #2a2a2a; padding-bottom:16px; margin-bottom:22px; }
.admin-header h1 { margin:0; font-size:22px; color:var(--accent); }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th, .admin-table td { padding:10px 12px; border-bottom:1px solid #1e2428; text-align:left; vertical-align:top; }
.admin-table th { color: rgba(255,255,255,.55); font-weight:600; text-transform:uppercase; font-size:10px; letter-spacing:.5px; }
.admin-table td a { color: var(--accent); text-decoration:none; }
.admin-table .st { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; font-weight:600; }
.st--queued { background: rgba(200,200,200,.15); color: #ccc; }
.st--draft  { background: rgba(238,125,0,.15); color: var(--accent); }
.st--sched  { background: rgba(100,150,255,.15); color: #6eb4ff; }
.st--pub    { background: rgba(100,220,120,.15); color: #7fd17f; }
.st--arch   { background: rgba(100,100,100,.15); color: #888; }
.admin-empty { text-align:center; padding:50px 20px; background:rgba(255,255,255,.03); border-radius:10px; }
.admin-form label { display:block; margin-bottom:14px; font-size:13px; color:rgba(255,255,255,.75); }
.admin-form label small { color:rgba(255,255,255,.4); font-weight:400; margin-left:6px; }
.admin-form input[type=text], .admin-form input[type=datetime-local], .admin-form input[type=number],
.admin-form select, .admin-form textarea {
  width:100%; background:#0e1113; border:1px solid #2a2a2a; border-radius:8px;
  color:#f0f0f0; padding:10px 12px; font-family:inherit; font-size:13px; outline:none; margin-top:4px;
}
.admin-form textarea { resize: vertical; }
.admin-form .field-row { display:flex; gap:14px; }
.admin-form .field-row label { flex:1; }
.admin-actions { display:flex; align-items:center; gap:12px; margin-top:18px; padding-top:18px; border-top:1px solid #2a2a2a; }
.gen-status { font-size:12px; color:rgba(255,255,255,.6); }

/* ── Public article page ──────────────────────────────── */
.article-page { max-width: 760px; margin: 40px auto; padding: 0 20px; color:#f0f0f0; line-height:1.7; }
.article-page h1 { font-size:28px; color:#fff; margin:10px 0 14px; border-bottom:2px solid var(--accent); padding-bottom:12px; }
.article-page h2 { font-size:20px; color:#fff; margin:28px 0 12px; }
.article-page h3 { font-size:16px; color:var(--accent); margin:20px 0 10px; text-transform:uppercase; letter-spacing:.5px; }
.article-page p { margin-bottom:14px; color:rgba(255,255,255,.82); }
.article-page ul, .article-page ol { padding-left:24px; margin-bottom:14px; }
.article-page li { margin-bottom:6px; color:rgba(255,255,255,.8); }
.article-page a { color:var(--accent); text-decoration:underline; }
.article-lead { font-size:16px; color:rgba(255,255,255,.85); margin-bottom:10px; padding:12px 14px; background:rgba(238,125,0,.06); border-left:3px solid var(--accent); border-radius:0 6px 6px 0; }
.article-meta { font-size:12px; color:rgba(255,255,255,.4); margin-bottom:20px; }
.breadcrumbs { font-size:12px; color:rgba(255,255,255,.4); margin-bottom:8px; }
.breadcrumbs a { color:rgba(255,255,255,.55); text-decoration:none; }
.article-faq { margin-top:40px; padding-top:24px; border-top:1px solid #2a2a2a; }
.article-faq h2 { font-size:18px; }
.faq-item { padding:10px 14px; background:rgba(255,255,255,.03); border:1px solid #1e2428; border-radius:8px; margin-bottom:8px; }
.faq-item summary { cursor:pointer; font-weight:600; }
.faq-item p { margin-top:8px; color:rgba(255,255,255,.75); }
.article-cta { margin:30px 0; padding:22px 24px; background:linear-gradient(135deg, rgba(238,125,0,.12), rgba(238,125,0,.04)); border:1px solid rgba(238,125,0,.3); border-radius:12px; text-align:center; }
.article-cta h3 { margin:0 0 6px; color:#fff; text-transform:none; letter-spacing:0; font-size:17px; }
.article-cta p { margin:0 0 14px; color:rgba(255,255,255,.7); }
.faq-list { list-style:none; padding:0; }
.faq-list li { padding:10px 12px; border-bottom:1px solid #1e2428; }
.faq-list li a { color:var(--accent); font-weight:600; }

/* Inline flat icons used inside text (headings / meta / badges) */
.ic-inline { width: 16px; height: 16px; vertical-align: -3px; margin-right: 6px; stroke: currentColor; fill: none; }
.ic-inline.ic-md { width: 20px; height: 20px; vertical-align: -4px; }
.ic-inline.ic-lg { width: 22px; height: 22px; vertical-align: -5px; }

.article-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.article-meta-sep { opacity: .4; }

/* Footer "Последние материалы" block — internal linking for SEO */
.footer-articles {
  max-width: 1100px;
  margin: 24px auto 0;
  padding: 18px 24px 24px;
  border-top: 1px solid #1e2428;
  color: rgba(255,255,255,.6);
  font-size: 12px;
}
.footer-articles h3 {
  margin: 0 0 10px; font-size: 11px; text-transform: uppercase;
  letter-spacing: 1px; color: rgba(255,255,255,.4);
}
.footer-articles ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.footer-articles a { color: rgba(238,125,0,.85); text-decoration: none; font-size: 12px; }
.footer-articles a:hover { color: var(--accent); text-decoration: underline; }

/* Article CTA button: orange background, text and icon always white */
.article-cta .btn-primary,
.article-cta .btn-primary:hover,
.article-cta .btn-primary:active,
.article-cta .btn-primary:focus,
.article-cta .btn-primary:visited {
  background: var(--accent);
  border-color: var(--accent);
  color: #ffffff !important;
  box-shadow: 0 2px 16px rgba(238,125,0,.35);
  transform: none;
  text-decoration: none;
}
.article-cta .btn-primary .icon,
.article-cta .btn-primary svg,
.article-cta .btn-primary svg * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none;
}

/* Admin templates catalogue */
.admin-templates { margin: 10px 0 30px; padding: 0; border: 1px solid #1e2428; border-radius: 10px; background: rgba(255,255,255,.02); }
.admin-templates > summary {
  list-style: none; cursor: pointer; padding: 14px 18px;
  display: flex; align-items: center; gap: 14px;
  font-size: 16px; color: var(--accent); font-weight: 600;
  border-radius: 10px;
}
.admin-templates > summary::-webkit-details-marker { display: none; }
.admin-templates > summary::before {
  content: '▸'; font-size: 12px; color: rgba(255,255,255,.4);
  transition: transform .15s ease; flex-shrink: 0;
}
.admin-templates[open] > summary::before { transform: rotate(90deg); }
.admin-templates[open] > summary { border-bottom: 1px solid #1e2428; border-radius: 10px 10px 0 0; }
.admin-templates > summary:hover { background: rgba(255,255,255,.03); }
.admin-templates > summary > .tpl-summary__title { flex: 1; }
.admin-templates > summary > .tpl-summary__progress {
  font-size: 12px; font-weight: 500; color: rgba(255,255,255,.55);
  padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.05);
}
.admin-templates > summary > .tpl-summary__progress--done {
  color: #ffd07a; background: rgba(238,125,0,.12);
}
.admin-templates > .admin-hint,
.admin-templates > .tpl-grid,
.admin-templates > .memo-grid,
.admin-templates > .memo-hint,
.admin-templates > .tpl-section-title { padding-left: 18px; padding-right: 18px; }
.admin-templates > .memo-grid { padding-top: 16px; }
.admin-templates > .memo-hint { padding-bottom: 4px; }
.admin-templates > .tpl-section-title {
  margin: 22px 0 0; padding-top: 16px; border-top: 1px solid #1e2428;
  font-size: 13px; color: var(--accent); font-weight: 600;
}
.admin-templates > .admin-hint { padding-top: 8px; }
.admin-templates > .tpl-grid { padding-bottom: 18px; }
.admin-hint { color: rgba(255,255,255,.55); font-size: 12px; margin: 0 0 14px; }
.tpl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.tpl-card {
  background: rgba(255,255,255,.03); border: 1px solid #1e2428; border-radius: 10px;
  padding: 12px 14px; display: flex; flex-direction: column; gap: 8px;
}
.tpl-card--done { opacity: .55; border-color: rgba(238,125,0,.3); }
.tpl-title { font-size: 13px; font-weight: 600; color: #fff; }
.tpl-slug  { font-size: 10px; color: rgba(255,255,255,.35); }
.tpl-card .btn { align-self: flex-start; padding: 4px 10px; font-size: 11px; }
.btn-sm { padding: 4px 10px !important; font-size: 11px !important; }

/* Admin memo panel */
.admin-memo {
  margin: 0 0 20px; padding: 14px 18px; border: 1px solid rgba(238,125,0,.25);
  border-radius: 10px; background: rgba(238,125,0,.05); color: rgba(255,255,255,.85);
}
.admin-memo summary { cursor: pointer; font-weight: 700; color: var(--accent); font-size: 13px; list-style: none; }
.admin-memo summary::before { content: "▸ "; display: inline-block; transition: transform .15s ease; }
.admin-memo[open] summary::before { content: "▾ "; }
.memo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 12px; }
.memo-card {
  background: rgba(0,0,0,.25); border: 1px solid #1e2428; border-radius: 8px; padding: 10px 12px;
}
.memo-card h4 { margin: 0 0 6px; color: #fff; font-size: 13px; }
.memo-card h4 code { background: rgba(238,125,0,.15); color: var(--accent); padding: 1px 5px; border-radius: 4px; font-size: 11px; }
.memo-card p { margin: 0; font-size: 12px; color: rgba(255,255,255,.75); line-height: 1.55; }
.memo-hint { margin: 12px 0 0; font-size: 11.5px; color: rgba(255,255,255,.55); font-style: italic; }

/* Admin action buttons split into two logical groups */
.admin-actions--split { flex-direction: column; align-items: stretch; gap: 14px; }
.actions-group { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 0; }
.actions-group--schedule {
  border-top: 1px dashed #2a2a2a;
  padding-top: 14px;
}
.actions-label {
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: rgba(255,255,255,.45); margin-right: 4px;
}
.inline-date { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: rgba(255,255,255,.7); margin: 0; }
.inline-date input { width: auto !important; min-width: 190px; padding: 6px 8px !important; font-size: 12px !important; margin: 0 !important; }

/* ═══════════════════════════════════════════════════════════════════════
   Mobile responsive sweep — all new UI (admin, articles, modals, footer)
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Admin pages (CMS) ─────────────────────────────────── */
@media (max-width: 768px) {
  .admin-page { margin: 16px auto; padding: 0 14px; }
  .admin-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-bottom: 12px;
    margin-bottom: 16px;
  }
  .admin-header h1 { font-size: 18px; }
  .admin-header > div { width: 100%; flex-wrap: wrap; }
  .admin-header .btn { flex: 1 1 auto; min-width: 0; padding: 8px 12px; font-size: 12px; }

  /* Memo */
  .admin-memo { padding: 12px 14px; }
  .admin-memo summary { font-size: 12px; }
  .memo-grid { grid-template-columns: 1fr; gap: 10px; }
  .memo-card { padding: 10px 12px; }
  .memo-card p { font-size: 11.5px; }

  /* Template grid — tighter on phones */
  .tpl-grid { grid-template-columns: 1fr; gap: 8px; }
  .tpl-card { padding: 10px 12px; }

  /* Admin table → card layout on phones */
  .admin-table thead { display: none; }
  .admin-table, .admin-table tbody, .admin-table tr, .admin-table td { display: block; width: 100%; }
  .admin-table tr {
    border: 1px solid #1e2428;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 10px;
    background: rgba(255,255,255,.02);
  }
  .admin-table td {
    padding: 4px 0;
    border-bottom: none;
    font-size: 13px;
  }
  .admin-table td:first-child { color: rgba(255,255,255,.4); font-size: 10px; text-transform: uppercase; letter-spacing: .5px; }

  /* Admin form */
  .admin-form .field-row { flex-direction: column; gap: 0; }
  .admin-form label { font-size: 12px; margin-bottom: 12px; }
  .admin-form input, .admin-form textarea, .admin-form select {
    font-size: 14px !important; padding: 10px !important;
  }
  .admin-form textarea { min-height: 100px; }

  .admin-actions { flex-direction: column; align-items: stretch; gap: 10px; }
  .actions-group { flex-direction: column; align-items: stretch; gap: 10px; padding: 10px 0; }
  .actions-group .btn { width: 100%; }
  .inline-date { flex-direction: column; align-items: flex-start; gap: 4px; }
  .inline-date input { width: 100% !important; min-width: 0 !important; }
  .gen-status { text-align: center; padding: 6px 0; }
}

/* ── Public article / method / FAQ pages ───────────────── */
@media (max-width: 768px) {
  .article-page { margin: 20px auto; padding: 0 16px; }
  .article-page h1 { font-size: 22px; margin-top: 4px; }
  .article-page h2 { font-size: 17px; margin: 22px 0 10px; }
  .article-page h3 { font-size: 14px; }
  .article-page p, .article-page li { font-size: 14px; }
  .article-lead { font-size: 14px; padding: 10px 12px; }
  .article-meta { flex-direction: row; gap: 8px; font-size: 11px; flex-wrap: wrap; }
  .breadcrumbs { font-size: 11px; word-break: break-word; }

  .article-faq h2 { font-size: 16px; }
  .faq-item { padding: 8px 12px; }
  .faq-item summary { font-size: 13px; line-height: 1.4; }
  .faq-item p { font-size: 13px; }

  .article-cta { padding: 16px 14px; margin: 24px 0; }
  .article-cta h3 { font-size: 15px; }
  .article-cta p { font-size: 13px; }
  .article-cta .btn { width: 100%; justify-content: center; }
}

/* ── Support modal ─────────────────────────────────────── */
@media (max-width: 640px) {
  .support-modal__panel {
    width: calc(100% - 20px);
    max-height: 92vh;
    padding: 22px 18px 18px;
    border-radius: 12px;
  }
  .support-modal h2 { font-size: 16px; }
  .support-modal__hint { font-size: 12px; }
  .support-field input, .support-field textarea { font-size: 14px; padding: 9px 10px; }
  .support-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .support-actions .btn { width: 100%; }
}

/* ── MAX auth panel (on /auth) ─────────────────────────── */
@media (max-width: 640px) {
  .max-auth-panel { padding: 14px 14px 12px; }
  .max-auth-panel h3 { font-size: 14px; }
  .max-auth-steps li { font-size: 12px; }
  .max-auth-steps .step-num { width: 20px; height: 20px; flex-basis: 20px; font-size: 11px; }
  .max-auth-panel .btn { width: 100%; }
  .max-auth-warn { font-size: 11px; padding: 8px 10px; }
}

/* ── VPN popup ─────────────────────────────────────────── */
@media (max-width: 640px) {
  .vpn-popup {
    left: 10px !important; right: 10px !important;
    bottom: 14px !important;
    width: calc(100% - 20px) !important;
    max-width: none !important;
    font-size: 12px !important;
    padding: 10px 12px !important;
  }
}

/* ── Footer articles block ─────────────────────────────── */
@media (max-width: 640px) {
  .footer-articles { padding: 14px 16px 18px; }
  .footer-articles h3 { font-size: 10px; margin-bottom: 8px; }
  .footer-articles ul { flex-direction: column; gap: 6px; }
  .footer-articles a { font-size: 12px; }
}

/* ── Global: buttons/links in footer wrap nicely ───────── */
@media (max-width: 640px) {
  footer { line-height: 1.8 !important; font-size: 11px !important; }
  footer a { display: inline-block; padding: 2px 0; }
}

/* ── Paywall modal: already has its own rules but tighten ─ */
@media (max-width: 640px) {
  .paywall-modal { padding: 18px !important; }
  .paywall-title { font-size: 17px !important; }
}

/* ── Admin CTA buttons in article page: 100% width ──────── */
@media (max-width: 480px) {
  .btn { padding: 10px 14px; font-size: 13px; }
}

/* "Publish now" link emphasis */
.publish-now-link { color: #7fd17f !important; font-weight: 600; }
.publish-now-link:hover { color: #95e995 !important; text-decoration: underline; }
.td-actions a { white-space: nowrap; }

.delete-link { color: #ff7b7b !important; }
.delete-link:hover { color: #ff4444 !important; text-decoration: underline; }

/* Article index lists (/methods, /articles) */
.article-index { list-style: none; padding: 0; margin: 30px 0; }
.article-index-item {
  margin-bottom: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid #1e2428;
  border-radius: 10px;
  transition: border-color .15s ease, background .15s ease;
}
.article-index-item:hover { border-color: rgba(238,125,0,.4); background: rgba(238,125,0,.05); }
.article-index-link { display: block; padding: 16px 18px; text-decoration: none; color: inherit; }
.article-index-link h3 { margin: 0 0 6px; font-size: 16px; color: #fff; }
.article-index-link p  { margin: 0 0 8px; font-size: 13px; color: rgba(255,255,255,.7); line-height: 1.55; }
.article-index-link time { font-size: 11px; color: rgba(255,255,255,.4); }
@media (max-width: 640px) {
  .article-index-link { padding: 13px 14px; }
  .article-index-link h3 { font-size: 14px; }
  .article-index-link p  { font-size: 12.5px; }
}

/* ── Article index card: remove underline, add "Read" button ── */
.article-index-link,
.article-index-link:hover,
.article-index-link:visited { text-decoration: none !important; }
.article-index-link h3,
.article-index-link p,
.article-index-link time { text-decoration: none; }
.article-index-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 10px;
}
.article-index-footer time { font-size: 11px; color: rgba(255,255,255,.4); }
.article-read-btn {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(238,125,0,.1);
  color: var(--accent);
  border: 1px solid rgba(238,125,0,.4);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  transition: all .15s ease;
}
.article-index-item:hover .article-read-btn {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* ═══════════════════════════════════════════════════════════════════════
   CRM page styles
   ═══════════════════════════════════════════════════════════════════════ */
.crm-funnel {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin: 10px 0 18px;
}
.funnel-card {
  flex: 1 1 130px; min-width: 130px;
  padding: 12px 10px; text-align: center;
  background: rgba(255,255,255,.03);
  border: 1px solid #1e2428; border-radius: 10px;
}
.funnel-card--final { border-color: rgba(127,209,127,.4); background: rgba(127,209,127,.06); }
.fc-num   { font-size: 22px; font-weight: 800; color: #fff; line-height: 1; }
.fc-label { font-size: 11px; color: rgba(255,255,255,.55); margin-top: 4px; }
.fc-conv  { font-size: 10px; color: var(--accent); margin-top: 2px; font-weight: 600; }
.funnel-arrow { color: rgba(255,255,255,.2); font-size: 18px; flex: 0 0 auto; }

.crm-legend {
  margin: 12px 0 14px; padding: 10px 14px;
  background: rgba(0,0,0,.2); border: 1px solid #1e2428; border-radius: 8px;
  color: rgba(255,255,255,.6); font-size: 11.5px; line-height: 1.6;
}
.crm-dot {
  display: inline-block; width: 10px; height: 10px; border-radius: 50%;
  background: rgba(255,255,255,.15); margin: 0 2px; vertical-align: middle;
}
.crm-dot.on { background: #7fd17f; box-shadow: 0 0 4px rgba(127,209,127,.6); }

.crm-filter {
  width: 100%; padding: 9px 12px; margin-bottom: 14px;
  background: #0e1113; border: 1px solid #2a2a2a; border-radius: 8px;
  color: #f0f0f0; font-size: 13px; outline: none;
}
.crm-filter:focus { border-color: var(--accent); }

.crm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.crm-table th, .crm-table td {
  padding: 10px 12px; border-bottom: 1px solid #1e2428;
  vertical-align: middle; text-align: left;
}
.crm-table th {
  color: rgba(255,255,255,.5); font-weight: 600;
  text-transform: uppercase; font-size: 10px; letter-spacing: .5px;
}
.crm-table tr:hover { background: rgba(238,125,0,.03); }
.td-lead .lead-name { color: #fff; font-weight: 600; }
.td-lead .lead-ids  { font-size: 10px; color: rgba(255,255,255,.4); margin-top: 2px; }
.chan-badge {
  display: inline-block; padding: 2px 8px; border-radius: 10px;
  font-size: 10px; font-weight: 700;
}
.chan-tg   { background: rgba(41,140,255,.15); color: #6eb4ff; }
.chan-max  { background: rgba(238,125,0,.15); color: var(--accent); }
.progress-dots { white-space: nowrap; }
.td-stats { color: rgba(255,255,255,.75); }
.td-activity .muted { font-size: 10px; color: rgba(255,255,255,.4); }
.td-actions a { color: var(--accent); text-decoration: none; white-space: nowrap; }

/* Mobile CRM */
@media (max-width: 768px) {
  .crm-funnel { gap: 4px; }
  .funnel-card { min-width: 100px; padding: 8px 6px; }
  .fc-num { font-size: 17px; }
  .fc-label { font-size: 9.5px; }
  .funnel-arrow { display: none; }
  .crm-table thead { display: none; }
  .crm-table, .crm-table tbody, .crm-table tr, .crm-table td { display: block; width: 100%; }
  .crm-table tr {
    border: 1px solid #1e2428; border-radius: 8px;
    padding: 10px 12px; margin-bottom: 10px;
    background: rgba(255,255,255,.02);
  }
  .crm-table td { padding: 4px 0; border-bottom: none; }
  .crm-table td.td-lead { margin-bottom: 4px; }
}

/* CRM stages table */
.crm-stages th, .crm-stages td { text-align: center; }
.crm-stages th:first-child, .crm-stages td:first-child,
.crm-stages th:last-child,  .crm-stages td:last-child { text-align: left; }
.stage-cell { color: rgba(255,255,255,.3); font-size: 16px; font-weight: 700; }
.stage-cell--here {
  color: #7fd17f;
  background: rgba(127,209,127,.12);
  box-shadow: inset 0 0 0 1px rgba(127,209,127,.35);
  position: relative;
}
.stage-cell--here::after {
  content: "тут"; position: absolute; top: 0; right: 2px;
  font-size: 8px; color: #7fd17f; opacity: .7; font-weight: 600;
}
.crm-flag {
  display: inline-block; padding: 1px 6px; border-radius: 10px;
  font-size: 9px; font-weight: 800; letter-spacing: .3px;
}
.crm-flag--blk { background: rgba(255,100,100,.2); color: #ff8080; }
.crm-flag--off { background: rgba(130,130,130,.2); color: #aaa; }

/* CRM push panel */
.crm-push {
  background: rgba(0,0,0,.25);
  border: 1px solid #1e2428;
  border-radius: 10px;
  padding: 14px 16px;
  margin: 10px 0 20px;
}
.crm-push h3 { margin: 0 0 10px; font-size: 14px; color: var(--accent); text-transform: uppercase; letter-spacing: .5px; }
.push-form { display: flex; flex-direction: column; gap: 10px; }
.push-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.push-row label { margin: 0; font-size: 12px; color: rgba(255,255,255,.7); flex: 1 1 auto; }
.push-row select {
  width: 100%; padding: 8px 10px;
  background: #0e1113; border: 1px solid #2a2a2a; border-radius: 6px;
  color: #f0f0f0; font-size: 13px; margin-top: 4px; outline: none;
}
.push-check { flex: 0 0 auto !important; display: flex; align-items: center; gap: 6px; }
.push-check input { width: auto; margin: 0; }
#push-text {
  width: 100%; padding: 10px;
  background: #0e1113; border: 1px solid #2a2a2a; border-radius: 8px;
  color: #f0f0f0; font-size: 13px; resize: vertical; outline: none;
}
#push-status { font-size: 12px; color: rgba(255,255,255,.6); }

@media (max-width: 768px) {
  .crm-stages th, .crm-stages td { padding: 6px 4px; font-size: 12px; }
  .stage-cell { font-size: 14px; }
  .stage-cell--here::after { display: none; }
  .push-row { flex-direction: column; align-items: stretch; }
}

/* Status tabs (used in admin articles list + CRM) */
.status-tabs {
  display: flex; gap: 6px; margin: 14px 0 14px;
  flex-wrap: wrap;
}
.st-tab {
  background: rgba(255,255,255,.04);
  border: 1px solid #1e2428;
  color: rgba(255,255,255,.7);
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  transition: all .12s ease;
}
.st-tab small { color: rgba(255,255,255,.4); font-weight: 400; margin-left: 3px; }
.st-tab:hover { border-color: rgba(238,125,0,.35); color: #fff; }
.st-tab--active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff !important;
}
.st-tab--active small { color: rgba(255,255,255,.8); }

/* ── Share widget (floating) ─────────────────────────── */
.share-widget {
  position: fixed;
  right: 18px; bottom: 78px;
  z-index: 900;
}
.share-btn {
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--accent); color: #fff; border: none;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; box-shadow: 0 4px 14px rgba(238,125,0,.5);
  transition: transform .15s ease, box-shadow .15s ease;
}
.share-btn:hover { transform: scale(1.08); box-shadow: 0 6px 20px rgba(238,125,0,.7); }
.share-btn svg { width: 20px; height: 20px; }
.share-menu {
  position: absolute; right: 0; bottom: 54px;
  min-width: 210px;
  background: #151d21;
  border: 1px solid rgba(238,125,0,.3);
  border-radius: 12px;
  padding: 6px;
  box-shadow: 0 12px 40px rgba(0,0,0,.6);
  flex-direction: column;
  display: none;           /* hidden by default — JS adds .is-open */
}
.share-menu.is-open { display: flex; }
.share-menu a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px;
  color: #f0f0f0; text-decoration: none;
  font-size: 13px; border-radius: 8px;
  transition: background .12s ease;
  cursor: pointer;
}
.share-menu a:hover { background: rgba(238,125,0,.15); color: var(--accent); }
.share-menu a svg { width: 18px; height: 18px; flex-shrink: 0; opacity: .85; }

@media (max-width: 640px) {
  .share-widget { right: 12px; bottom: 12px; }
  .share-btn { width: 42px; height: 42px; }
  .share-btn svg { width: 18px; height: 18px; }
}


/* Microphone dictation (Web Speech API) */
.answer-input-wrap { position: relative; }
/* Sprint H7: padding для mic-кнопки 44px + 6+6 отступ */
.answer-input-wrap .answer-input { padding-right: 60px; }
.mic-btn {
  /* Sprint H7 (2026-04-30): mic 36 → 44, тач-цель Apple HIG */
  position: absolute; top: 6px; right: 6px;
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--text-3);
  cursor: pointer;
  transition: color .15s, background .15s, border-color .15s, transform .15s;
}
.mic-btn:hover { color: var(--accent); border-color: var(--accent); }
.mic-btn[hidden] { display: none !important; }
.mic-btn.recording {
  color: #fff;
  background: rgba(238,80,80,0.92);
  border-color: rgba(238,80,80,0.92);
  animation: micPulse 1.4s ease-in-out infinite;
}
@keyframes micPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(238,80,80,0.5); }
  50%      { box-shadow: 0 0 0 8px rgba(238,80,80,0); }
}


/* Footer legal info — wrap to two lines on mobile */
@media (max-width: 560px) {
  .legal-line--name { display: block; }
  .legal-line--name + .legal-sep { display: none; }
  .legal-line--ids { display: block; }
}


/* Mic status under textarea */
.mic-status {
  font-size: 13px; min-height: 18px; margin-top: 6px;
  color: rgba(255,255,255,.55);
  transition: color .15s;
}
.mic-status--rec { color: #ffb067; }
.mic-status--err { color: #ff8b8b; }


/* Flat icon prefix for mic-status */
.mic-status--rec::before {
  content: ''; display: inline-block; vertical-align: -2px; margin-right: 6px;
  width: 14px; height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 11a1 1 0 1 0-2 0 5 5 0 0 1-10 0 1 1 0 1 0-2 0 7 7 0 0 0 6 6.92V20H8a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2h-3v-2.08A7 7 0 0 0 19 11z'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 11a1 1 0 1 0-2 0 5 5 0 0 1-10 0 1 1 0 1 0-2 0 7 7 0 0 0 6 6.92V20H8a1 1 0 1 0 0 2h8a1 1 0 1 0 0-2h-3v-2.08A7 7 0 0 0 19 11z'/></svg>") center/contain no-repeat;
}
.mic-status--err::before {
  content: ''; display: inline-block; vertical-align: -2px; margin-right: 6px;
  width: 14px; height: 14px;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 1 22h22L12 2zm1 16h-2v-2h2v2zm0-4h-2V9h2v5z'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 1 22h22L12 2zm1 16h-2v-2h2v2zm0-4h-2V9h2v5z'/></svg>") center/contain no-repeat;
}


/* CRM broadcast composer */
.crm-broadcast-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px;
}
.crm-broadcast-col { display: flex; flex-direction: column; }
.crm-broadcast-lbl {
  font-size: 12px; color: rgba(255,255,255,.55); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px;
}
.crm-broadcast-textarea {
  width: 100%; background: rgba(0,0,0,.3); border: 1px solid rgba(255,255,255,.12);
  color: #fff; padding: 11px 13px; border-radius: 8px;
  font-size: 14px; font-family: inherit; resize: vertical; min-height: 180px;
  transition: border-color .15s;
}
.crm-broadcast-textarea:focus { outline: none; border-color: rgba(238,125,0,.6); }
.crm-broadcast-status {
  font-size: 12px; min-height: 18px; margin-top: 6px;
  color: rgba(255,255,255,.55);
}
.crm-broadcast-status--ok  { color: #67e08b; }
.crm-broadcast-status--err { color: #ff8b8b; }
@media (max-width: 720px) {
  .crm-broadcast-grid { grid-template-columns: 1fr; }
}


/* CRM history modal */
.crm-history-modal[hidden] { display: none; }
.crm-history-modal {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
}
.crm-history-modal-backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,.65);
}
.crm-history-modal-card {
  position: relative; z-index: 2;
  background: #1a1f24; color: #fff;
  width: min(720px, 92vw); max-height: 84vh;
  border-radius: 14px; border: 1px solid rgba(255,255,255,.12);
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.6);
}
.crm-history-modal-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.08);
}
.crm-history-modal-head h3 { margin: 0; font-size: 15px; color: #fff; }
.crm-history-close {
  background: transparent; border: none; color: rgba(255,255,255,.55);
  font-size: 24px; line-height: 1; cursor: pointer; padding: 0 6px;
}
.crm-history-close:hover { color: #fff; }
.crm-history-modal-body { overflow-y: auto; padding: 8px 0; }
.crm-history-item {
  padding: 10px 18px; border-bottom: 1px solid rgba(255,255,255,.05);
}
.crm-history-row {
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  font-size: 11px; color: rgba(255,255,255,.45); text-transform: uppercase; letter-spacing: 0.4px;
}
.crm-history-tag { color: #ffb067; font-weight: 600; }
.crm-history-target { font-size: 13px; color: rgba(255,255,255,.85); margin: 4px 0 6px; }
.crm-history-preview {
  font-size: 13px; color: rgba(255,255,255,.6);
  background: rgba(255,255,255,.03); border-left: 2px solid rgba(238,125,0,.45);
  padding: 6px 10px; border-radius: 4px;
}


/* CRM unified composer */
.composer-card { border-color: rgba(238,125,0,.35); }
.composer-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px;
}
.composer-col { display: flex; flex-direction: column; }
.composer-lbl {
  font-size: 11px; color: rgba(255,255,255,.55);
  margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px;
}
.composer-select, .composer-textarea {
  width: 100%; background: rgba(0,0,0,.3);
  border: 1px solid rgba(255,255,255,.12);
  color: #fff; padding: 10px 12px; border-radius: 8px;
  font-size: 14px; font-family: inherit;
  transition: border-color .15s;
}
.composer-textarea { resize: vertical; min-height: 130px; }
.composer-select:focus, .composer-textarea:focus {
  outline: none; border-color: rgba(238,125,0,.55);
}
.composer-or {
  text-align: center; font-size: 11px; color: rgba(255,255,255,.35);
  margin: 8px 0 6px;
}
.composer-status {
  font-size: 12px; min-height: 18px; margin-top: 6px;
  color: rgba(255,255,255,.55);
}
.composer-status--ok  { color: #67e08b; }
.composer-status--err { color: #ff8b8b; }

.composer-recipients {
  margin-top: 18px; padding: 14px;
  border: 1px dashed rgba(255,255,255,.1);
  border-radius: 10px;
  background: rgba(255,255,255,.02);
}
.composer-rcp-row {
  display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px;
}
.composer-radio {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 14px; color: rgba(255,255,255,.85); cursor: pointer;
}
.composer-radio input { accent-color: #ee7d00; }

.composer-stages {
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px;
}
.composer-stages[hidden] { display: none !important; }
.composer-stage-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 10px; border-radius: 999px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  font-size: 13px; color: rgba(255,255,255,.75);
  cursor: pointer; user-select: none;
  transition: all .15s;
}
.composer-stage-chip:hover { background: rgba(255,255,255,.08); }
.composer-stage-chip:has(input:checked) {
  background: color-mix(in srgb, var(--chip-color, #ee7d00) 22%, transparent);
  border-color: var(--chip-color, #ee7d00);
  color: #fff;
}
.composer-stage-chip input { accent-color: var(--chip-color, #ee7d00); }

.composer-actions {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin-top: 16px; padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.composer-marketing {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; color: rgba(255,255,255,.7); cursor: pointer;
}
.composer-marketing input { accent-color: #ee7d00; }
.composer-rcp-count {
  margin-left: auto; font-size: 13px; color: #ffb067; font-weight: 600;
}
.composer-card .btn-primary {
  background: rgba(238,125,0,.85); border-color: rgba(238,125,0,.85);
}
.composer-card .btn-primary:disabled {
  background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1);
  color: rgba(255,255,255,.3); cursor: not-allowed;
}

@media (max-width: 720px) {
  .composer-grid { grid-template-columns: 1fr; }
  .composer-actions { flex-direction: column; align-items: stretch; }
  .composer-rcp-count { margin-left: 0; text-align: center; }
}


/* CRM composer v3 additions */
.composer-tpl-row { display: flex; gap: 8px; align-items: center; }
.btn-icon-mini {
  width: 32px; height: 32px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  color: rgba(255,255,255,.5); cursor: pointer;
  flex-shrink: 0;
}
.btn-icon-mini:hover:not(:disabled) { color: #ff8b8b; border-color: rgba(255,80,80,.4); }
.btn-icon-mini:disabled { opacity: .3; cursor: not-allowed; }

.composer-stages-row {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 8px;
  background: rgba(0,0,0,.2);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
}
.composer-stage-chip--all { font-weight: 600; }
.composer-stage-chip--all:has(input:checked) {
  background: rgba(238,125,0,.25);
  border-color: rgba(238,125,0,.65);
  color: #fff;
}

.btn-link {
  background: transparent; border: none; color: #ffb067; cursor: pointer;
  text-decoration: underline; padding: 2px 0;
}
.btn-link:hover { color: #ffd095; }

/* mobile-cabinet-v2 — компактный хедер личного кабинета на мобиле */
@media (max-width: 640px) {
  .survey-user .user-email {
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
  }
  .survey-user .user-email img {
    width: 24px !important;
    height: 24px !important;
    margin-right: 4px !important;
  }
  /* Админ-чипы на мобиле — компактные, но видимые */
  .survey-user a[href="/admin/articles"] {
    font-size: 11px !important; padding: 3px 6px !important; margin-right: 6px !important;
    border: 1px solid rgba(238,125,0,.4); border-radius: 6px;
  }
}
@media (max-width: 380px) {
  .survey-user .user-email {
    max-width: 0;
    padding: 0;
  }
  /* В очень узком окне — только аватар без имени */
  .survey-user .user-email span,
  .survey-user .user-email::after { display: none; }
}
/* composer-v4 */

/* composer-v4 — выравнивание, поднятая send-кнопка, save-button под постом */
.composer-grid { align-items: stretch; }
.composer-col { display: flex; flex-direction: column; gap: 0; }
.composer-row-top {
  /* Верхний ряд: dropdown слева и stages справа = одна высота */
  min-height: 56px;
  align-items: center;
}
.composer-textarea--main {
  /* prompt и готовый пост — одинаковая высота */
  min-height: 220px;
  flex: 1;
}
.composer-action-btn {
  margin-top: 8px;
  align-self: flex-start;
}
.composer-post-foot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-top: 8px; flex-wrap: wrap;
}
.composer-hint { font-size: 12px; color: rgba(255,255,255,.4); }
.composer-save-btn {
  font-size: 13px; padding: 8px 14px;
}

.composer-sendbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin-top: 18px; padding: 14px 16px;
  background: linear-gradient(90deg, rgba(238,125,0,.08), rgba(238,125,0,.02));
  border: 1px solid rgba(238,125,0,.35);
  border-radius: 12px;
  flex-wrap: wrap;
}
.composer-sendbar .composer-rcp-count {
  margin: 0; font-size: 14px; color: #ffb067; font-weight: 600;
}
.composer-sendbar-actions {
  display: flex; gap: 10px; align-items: center;
}
.composer-send-btn {
  font-size: 15px; padding: 12px 24px; font-weight: 600;
  letter-spacing: 0.3px;
}

@media (max-width: 720px) {
  .composer-row-top { min-height: 0; }
  .composer-textarea--main { min-height: 160px; }
  .composer-sendbar { flex-direction: column; align-items: stretch; text-align: center; }
}
/* composer-v5 */

/* composer-v5 — три кнопки в ряд, individual-selection highlight */
.composer-buttons-row {
  display: flex; gap: 10px; margin-top: 10px;
  flex-wrap: wrap;
}
.composer-btn-send {
  flex: 1.4;
  font-size: 15px; font-weight: 700;
  padding: 12px 16px;
  background: #ee7d00; border-color: #ee7d00;
  letter-spacing: .3px;
  box-shadow: 0 2px 12px rgba(238,125,0,.25);
}
.composer-btn-send:hover:not(:disabled) {
  background: #ff8c1a; border-color: #ff8c1a;
}
.composer-btn-equal {
  flex: 1;
  font-size: 13px; padding: 12px 14px;
}
.composer-btn-equal:disabled,
.composer-btn-send:disabled {
  background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1);
  color: rgba(255,255,255,.3); cursor: not-allowed;
  box-shadow: none;
}
.composer-rcp-count { font-size: 13px; color: #ffb067; font-weight: 600; }

@media (max-width: 540px) {
  .composer-buttons-row { flex-direction: column; }
  .composer-btn-send, .composer-btn-equal { flex: none; }
}

/* Selected kanban card */
.kan-card--selected {
  outline: 2px solid #ee7d00;
  outline-offset: 2px;
  background: rgba(238,125,0,.08);
}
/* composer-v5b */
/* composer-v5b — выравнивание колонок: одинаковая высота row-top, единый ритм */
.composer-grid { align-items: stretch; }
.composer-col > .composer-lbl:first-child { min-height: 16px; }
.composer-row-top { min-height: 60px; align-items: center; }
.composer-textarea--main { min-height: 220px; flex: 1; }
/* composer-v5c */
/* composer-v5c — "Кому отправить" в одну строку как dropdown */
.composer-row-top { min-height: 44px !important; height: 44px; align-items: center; }
.composer-stages-row {
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  height: 44px;
  padding: 4px 8px;
  white-space: nowrap;
  scrollbar-width: thin;
}
.composer-stages-row::-webkit-scrollbar { height: 4px; }
.composer-stages-row::-webkit-scrollbar-thumb { background: rgba(238,125,0,.4); border-radius: 2px; }
.composer-stage-chip {
  flex-shrink: 0;
  padding: 4px 10px;
  font-size: 12px;
}
.composer-tpl-row { height: 44px; }
.composer-select { height: 44px; padding: 0 12px; }
@media (max-width: 720px) {
  .composer-row-top { height: auto !important; min-height: 44px !important; }
}
/* composer-v5d — count под кнопками + выравнивание колонок */
.composer-rcp-count--below {
  margin-top: 10px;
  text-align: center;
  font-size: 14px;
  color: #ffb067;
  font-weight: 600;
  min-height: 20px;
  padding: 6px 12px;
  background: rgba(238,125,0,.06);
  border: 1px solid rgba(238,125,0,.18);
  border-radius: 8px;
}
.composer-post-foot { justify-content: flex-end; }
/* Левая колонка: статус прижимаем под кнопкой как на правой */
.composer-status {
  margin-top: 10px;
  min-height: 32px;
  padding: 6px 12px;
}
.composer-action-btn { margin-top: 8px; align-self: stretch; text-align: center; justify-content: center; }
/* Колонки растягиваются по сетке + textarea заполняет свободное место */
.composer-grid { align-items: stretch; }
.composer-col { display: flex; flex-direction: column; }
.composer-textarea--main { flex: 1; min-height: 220px; }
/* composer-v5e — одинаковая высота textarea (готовый пост == промпт) */
.composer-textarea--main {
  flex: 0 0 auto;
  height: 220px;
  min-height: 220px;
  resize: vertical;
}
/* composer-v5f — toast возле кнопки «Сохранить как шаблон» */
.composer-tpl-toast {
  margin-top: 10px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid transparent;
  animation: composerToastIn .25s ease-out;
}
.composer-tpl-toast--ok {
  background: rgba(103,224,139,.10);
  border-color: rgba(103,224,139,.35);
  color: #67e08b;
}
.composer-tpl-toast--err {
  background: rgba(255,139,139,.10);
  border-color: rgba(255,139,139,.35);
  color: #ff8b8b;
}
@keyframes composerToastIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   ROINEXT BRAND v1 — Typography & visual override (2026-04-26)
   Источник истины: roinext.marketing
   Откат: cp style.css.bak.20260426-pre-brand → style.css
   ============================================================ */
:root {
  --font-system: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", sans-serif;
  --font-main:   var(--font-system);
  --font-body:   var(--font-system);
  --radius:      4px;
  --radius-sm:   2px;
  --border:      rgba(255,255,255,0.06);
  --border-l:    rgba(255,255,255,0.06);
  --muted:       rgba(255,255,255,0.55);
  --dim:         rgba(255,255,255,0.35);
  --success:     #4ade80;
  --error:       #f87171;
  --bg-grad:     radial-gradient(ellipse at top, #192328 0%, #0e1113 70%);
}

/* Body — 14/22 / weight 400 */
body {
  font-family: var(--font-system) !important;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 22px !important;
  letter-spacing: normal;
}

/* Все элементы наследуют системный шрифт */
button, input, textarea, select { font-family: var(--font-system); }

/* Заголовки */
h1 { font-weight: 700; font-size: 36px; line-height: 1.1; letter-spacing: normal; }
h2 { font-weight: 700; font-size: 28px; line-height: 1.2; letter-spacing: normal; }
h3 { font-weight: 700; font-size: 22px; line-height: 1.25; }
h4, h5, h6 { font-weight: 600; line-height: 1.3; }

/* Большие KPI-цифры */
.kpi-value, .stat-value, .bal-kpi-value, .balance-kpi__value {
  font-weight: 700;
  font-size: 38px;
  letter-spacing: normal;
}

/* Маленькие акцентные подзаголовки — 300 (оставляем там, где они уже стоят как ".eyebrow"/".subtitle") */
.eyebrow, .accent-subtitle, .small-accent { font-weight: 300; }

/* Кнопки CTA — прямоугольные, uppercase, weight 600 */
.btn, .btn-primary, .btn-secondary {
  border-radius: 4px;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-family: var(--font-system);
}
.btn-primary { font-weight: 600; }

/* Запрет анемичных весов (защита от чужих правил) */
*[style*="font-weight: 100"],
*[style*="font-weight:100"],
*[style*="font-weight: 200"],
*[style*="font-weight:200"] { font-weight: 400 !important; }

/* Geometry — flat 1px/4px радиус везде, мягкие границы */
.bal-card, .composer-card, .kan-col, .crm-history-modal-card,
.composer-select, .composer-textarea, input[type="text"], input[type="email"],
input[type="password"], input[type="datetime-local"], input[type="number"],
textarea, select {
  border-radius: 4px;
  border-color: rgba(255,255,255,0.06);
  border-width: 1px;
}

/* Ссылки в body — accent (#ee7d00), не highlight жёлтый */
a { color: var(--accent); }
a:hover { color: #ff8c1a; }

/* Letter-spacing для всех uppercase меток */
.uppercase, .label-up, [data-uppercase], .composer-lbl,
.bal-card h3, .kan-title, .admin-header h1 {
  text-transform: uppercase;
  letter-spacing: 1.5px;
}

/* ROINEXT BRAND v1.1 — мощные заголовки (Linear/Notion vibe) */
h1 {
  font-weight: 800;
  letter-spacing: -0.02em;
}
h2 {
  font-weight: 800;
  letter-spacing: -0.015em;
}
h3 {
  font-weight: 700;
  letter-spacing: -0.01em;
}
.kpi-value, .stat-value, .bal-kpi-value, .balance-kpi__value {
  letter-spacing: -0.02em;
}

/* ============================================================
   ROINEXT BRAND v1.2 — патч-фиксы после аудита (2026-04-26)
   ============================================================ */

/* 1. Border чуть видимее (0.10 вместо 0.06) */
:root {
  --border:   rgba(255,255,255,0.10);
  --border-l: rgba(255,255,255,0.06);
}

/* 2. Инпуты — белый текст и оранжевый caret вместо жёлтого */
.field-group input,
.field-group textarea,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="datetime-local"],
textarea,
select,
.composer-select,
.composer-textarea {
  color: var(--text) !important;
  caret-color: var(--accent);
}
.field-group input:-webkit-autofill,
.field-group input:-webkit-autofill:hover,
.field-group input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--text) !important;
  caret-color: var(--accent);
}

/* 3. Убрать UPPERCASE с заголовков админки/карточек — оставить только в CTA-кнопках */
.admin-header h1,
.bal-card h3,
.kan-title {
  text-transform: none !important;
  letter-spacing: -0.01em !important;
}

/* 4. Доуборка вторичных кнопок — uppercase + tracking + 4px radius */
.tab-btn,
.nav-btn,
.auth-method-btn {
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
  font-size: 12px;
  border-radius: 4px;
  font-family: var(--font-system);
}

/* 5. Иконочные кнопки — flat 4px */
.btn-icon-mini, .btn-icon {
  border-radius: 4px;
}

/* 6. Тело статей — 16px для длинных лонгридов */
.article-body, .article-content, article p, article li {
  font-size: 16px;
  line-height: 1.65;
}

/* 7. CRM composer — 3 кнопки в ряд: уплотнить без переносов */
.composer-buttons-row .composer-btn-send {
  font-size: 13px;
  letter-spacing: 0.5px;
  padding: 12px 14px;
}
.composer-buttons-row .composer-btn-equal {
  font-size: 11px;
  letter-spacing: 0.8px;
  padding: 12px 10px;
}
.composer-buttons-row .composer-btn-equal svg.icon-sm {
  width: 12px; height: 12px;
}

/* Балансовые карточки — лёгкая тень для отделения, раз граница тонкая */
.bal-card, .composer-card, .kan-col {
  box-shadow: 0 1px 0 rgba(255,255,255,0.04), 0 8px 24px rgba(0,0,0,0.18);
}

/* ═══════════════════════════════════════════════════════════════
   Admin dashboard (Metrika overview)
   ═══════════════════════════════════════════════════════════════ */
.kpi-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px; margin: 16px 0 0;
}
.kpi-card {
  background: rgba(255,255,255,.03); border: 1px solid #1e2428; border-radius: 10px;
  padding: 14px 16px; display: flex; flex-direction: column; gap: 4px;
}
.kpi-num { font-size: 24px; font-weight: 700; color: var(--accent); line-height: 1.1; }
.kpi-lbl { font-size: 11px; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: .4px; }

.dashboard-bars {
  display: flex; align-items: flex-end; gap: 6px;
  padding: 18px 16px; margin: 0;
  border: 1px solid #1e2428; border-radius: 10px; background: rgba(255,255,255,.02);
  min-height: 120px; overflow-x: auto;
}
.dashboard-bars .bar {
  flex: 1 1 auto; min-width: 32px; max-width: 60px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.dashboard-bars .bar-fill {
  display: block; width: 70%; min-height: 2px;
  background: linear-gradient(180deg, var(--accent) 0%, rgba(238,125,0,.5) 100%);
  border-radius: 3px 3px 0 0;
}
.dashboard-bars .bar em { font-size: 11px; color: #fff; font-style: normal; font-weight: 600; }
.dashboard-bars .bar small { font-size: 9px; color: rgba(255,255,255,.45); }

.dashboard-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px; margin: 24px 0 0;
}
.dashboard-block {
  background: rgba(255,255,255,.02); border: 1px solid #1e2428; border-radius: 10px;
  padding: 14px 18px;
}
.dashboard-block h3 { margin: 0 0 10px; font-size: 13px; color: var(--accent); font-weight: 600; }

.dashboard-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.dashboard-tbl tr { border-bottom: 1px solid rgba(255,255,255,.04); }
.dashboard-tbl tr:last-child { border-bottom: none; }
.dashboard-tbl td { padding: 6px 4px; color: rgba(255,255,255,.85); vertical-align: top; }
.dashboard-tbl td.num { text-align: right; color: var(--accent); font-weight: 600; white-space: nowrap; }
.dashboard-tbl td.muted, .dashboard-tbl .muted { color: rgba(255,255,255,.4); font-style: italic; }
.dashboard-tbl a { color: rgba(255,255,255,.85); text-decoration: none; }
.dashboard-tbl a:hover { color: var(--accent); }
.dashboard-tbl--wide { background: rgba(255,255,255,.02); border: 1px solid #1e2428; border-radius: 10px; }
.dashboard-tbl--wide td { padding: 8px 14px; }

.admin-alert { padding: 10px 14px; border-radius: 8px; margin: 12px 0; font-size: 13px; }
.admin-alert--warn { background: rgba(255,180,0,.08); border: 1px solid rgba(255,180,0,.25); color: #ffd07a; }

@media (max-width: 768px) {
  .kpi-row { grid-template-columns: repeat(2, 1fr); }
  .kpi-num { font-size: 20px; }
  .dashboard-bars .bar { min-width: 24px; }
}

/* ============================================================
   THEME SWITCHER v1 — light/dark toggle (2026-04-26)
   data-theme="light" on <html> flips palette site-wide.
   Toggle UI is rendered only inside admin nav (_admin_nav.php).
   ============================================================ */
[data-theme="light"] {
  --bg:          #fafafa;
  --bg-2:        #ffffff;
  --bg-3:        #f3f4f5;
  --bg-grad:     radial-gradient(ellipse at top, #ffffff 0%, #f3f4f5 70%);
  --accent:      #ee7d00;
  --accent-d:    #c96b00;
  --accent-l:    rgba(238,125,0,.10);
  --highlight:   #c96b00;
  --text:        #0e1113;
  --text-2:      rgba(14,17,19,.72);
  --text-3:      rgba(14,17,19,.50);
  --text-4:      rgba(14,17,19,.30);
  --border:      rgba(14,17,19,.12);
  --border-l:    rgba(14,17,19,.08);
  --muted:       rgba(14,17,19,.55);
  --dim:         rgba(14,17,19,.35);
  --error:       #dc2626;
  --success:     #16a34a;
  --shadow:      0 8px 28px rgba(14,17,19,.10);
  --shadow-lg:   0 16px 48px rgba(14,17,19,.14);
}

[data-theme="light"] body {
  background: var(--bg);
  background-image: var(--bg-grad);
  color: var(--text);
}
[data-theme="light"] a { color: var(--accent); }
[data-theme="light"] a:hover { color: var(--accent-d); }

/* Admin nav surfaces */
[data-theme="light"] .admin-nav         { background: rgba(14,17,19,.04); border-color: rgba(14,17,19,.10); }
[data-theme="light"] .admin-nav-tabs    { background: rgba(14,17,19,.05); border-color: rgba(14,17,19,.06); }
[data-theme="light"] .admin-nav-home,
[data-theme="light"] .admin-nav-tab     { color: rgba(14,17,19,.60); }
[data-theme="light"] .admin-nav-home:hover     { background: rgba(14,17,19,.06); color: var(--text); }
[data-theme="light"] .admin-nav-tab:hover      { background: rgba(14,17,19,.05); color: var(--text); }
[data-theme="light"] .admin-nav-tab--active    { color: #fff; }

/* Tables, cards, inputs that hardcode rgba(255,255,255,*) overlays */
[data-theme="light"] .dashboard-tbl,
[data-theme="light"] .dashboard-tbl--wide { background: #fff; border-color: var(--border); }
[data-theme="light"] .dashboard-tbl th,
[data-theme="light"] .dashboard-tbl td,
[data-theme="light"] .dashboard-tbl a    { color: var(--text); border-color: var(--border-l); }
[data-theme="light"] .dashboard-tbl td.muted,
[data-theme="light"] .dashboard-tbl .muted { color: var(--text-3); }
[data-theme="light"] .dashboard-tbl a:hover { color: var(--accent); }

[data-theme="light"] .bal-card,
[data-theme="light"] .composer-card,
[data-theme="light"] .kan-col,
[data-theme="light"] .crm-history-modal-card,
[data-theme="light"] .seo-systems .seo-sys,
[data-theme="light"] .seo-rank-tbl,
[data-theme="light"] .lk-card,
[data-theme="light"] .lk-tile,
[data-theme="light"] .lk-panel,
[data-theme="light"] .stat-card,
[data-theme="light"] .modal-content,
[data-theme="light"] .article-card,
[data-theme="light"] .article-row {
  background: #ffffff;
  border-color: var(--border);
  color: var(--text);
}

[data-theme="light"] .composer-select,
[data-theme="light"] .composer-textarea,
[data-theme="light"] .field-group input,
[data-theme="light"] .field-group textarea,
[data-theme="light"] input[type="text"],
[data-theme="light"] input[type="email"],
[data-theme="light"] input[type="number"],
[data-theme="light"] input[type="search"],
[data-theme="light"] input[type="url"],
[data-theme="light"] input[type="password"],
[data-theme="light"] input[type="datetime-local"],
[data-theme="light"] textarea,
[data-theme="light"] select {
  background: #ffffff;
  border-color: var(--border);
  color: var(--text);
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder { color: var(--text-3); }

[data-theme="light"] .btn-secondary       { color: var(--text-2); border-color: var(--border); }
[data-theme="light"] .btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
[data-theme="light"] .btn-ghost           { color: var(--text-3); border-color: var(--border-l); }
[data-theme="light"] .btn-ghost:hover     { color: var(--text-2); border-color: var(--border); }

[data-theme="light"] .admin-alert--warn { background: rgba(255,180,0,.12); border-color: rgba(255,180,0,.32); color: #8a5a00; }

/* Theme-toggle widget in admin nav */
.theme-toggle {
  display: inline-flex;
  padding: 2px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 8px;
}
[data-theme="light"] .theme-toggle {
  background: rgba(14,17,19,.05);
  border-color: rgba(14,17,19,.12);
}
.theme-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 26px;
  color: var(--text-3);
  border-radius: 6px;
  background: none; border: 0; cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.theme-btn svg { width: 14px; height: 14px; stroke-width: 1.7; }
.theme-btn:hover { color: var(--text); }
.theme-btn.active { background: rgba(255,255,255,.08); color: var(--accent); }
[data-theme="light"] .theme-btn.active { background: rgba(238,125,0,.12); color: var(--accent); }

/* ============================================================
   THEME SWITCHER v1.1 — broad light-theme inversions
   Catches common hardcoded rgba(255,255,255,*) across admin pages
   ============================================================ */

/* Body & headings */
[data-theme="light"] h1,
[data-theme="light"] h2,
[data-theme="light"] h3,
[data-theme="light"] h4,
[data-theme="light"] h5,
[data-theme="light"] h6 { color: var(--text); }

/* Tables — admin lists (articles, balance, crm, dashboard, seo) */
[data-theme="light"] table          { background: #fff; color: var(--text); border-color: var(--border); }
[data-theme="light"] thead          { background: rgba(14,17,19,.04); }
[data-theme="light"] thead th       { color: var(--text-2); border-color: var(--border); }
[data-theme="light"] tbody td       { color: var(--text); border-color: var(--border-l); }
[data-theme="light"] tbody tr:hover { background: rgba(14,17,19,.03); }
[data-theme="light"] td code        { background: rgba(14,17,19,.05); color: var(--text); padding: 1px 6px; border-radius: 3px; }

/* Status / type badges & generic .badge / .pill / .chip */
[data-theme="light"] .badge,
[data-theme="light"] .pill,
[data-theme="light"] .chip,
[data-theme="light"] .tag {
  color: var(--text-2);
  background: rgba(14,17,19,.06);
  border: 1px solid rgba(14,17,19,.10);
}

/* Generic admin links inside tables */
[data-theme="light"] td a,
[data-theme="light"] .td-actions a { color: var(--accent); }
[data-theme="light"] td a:hover     { color: var(--accent-d); }
[data-theme="light"] .delete-link   { color: var(--error); }

/* Composer / forms shared bits */
[data-theme="light"] .composer-card,
[data-theme="light"] .composer-card * { color: var(--text); }
[data-theme="light"] .composer-lbl,
[data-theme="light"] .field-label,
[data-theme="light"] label             { color: var(--text-2); }

/* Sub-tabs / pager / nav-like overlays — generic catch */
[data-theme="light"] .seo-subnav,
[data-theme="light"] .subnav,
[data-theme="light"] .tabs-bar          { background: rgba(14,17,19,.04); border-color: rgba(14,17,19,.10); }
[data-theme="light"] .seo-subnav__tab,
[data-theme="light"] .subnav__tab,
[data-theme="light"] .tabs-bar__tab     { color: rgba(14,17,19,.60); }
[data-theme="light"] .seo-subnav__tab:hover,
[data-theme="light"] .subnav__tab:hover,
[data-theme="light"] .tabs-bar__tab:hover { color: var(--text); background: rgba(14,17,19,.05); }
[data-theme="light"] .seo-subnav__tab--active,
[data-theme="light"] .subnav__tab--active,
[data-theme="light"] .tabs-bar__tab--active { color: #fff; }

[data-theme="light"] .pager             { background: rgba(14,17,19,.04); border-color: rgba(14,17,19,.10); }
[data-theme="light"] .pager__btn        { color: rgba(14,17,19,.72); background: rgba(14,17,19,.04); border-color: rgba(14,17,19,.10); }
[data-theme="light"] .pager__btn:hover  { color: var(--text); background: rgba(14,17,19,.07); border-color: rgba(238,125,0,.45); }
[data-theme="light"] .pager__btn--active{ color: #fff; }
[data-theme="light"] .pager__gap        { color: rgba(14,17,19,.40); }
[data-theme="light"] .pager__info       { color: rgba(14,17,19,.50); }

/* SEO factory + balance / dashboard cards */
[data-theme="light"] .bal-card,
[data-theme="light"] .bal-kpi,
[data-theme="light"] .balance-kpi,
[data-theme="light"] .stat-card,
[data-theme="light"] .lk-card,
[data-theme="light"] .lk-tile,
[data-theme="light"] .lk-panel,
[data-theme="light"] .seo-sys,
[data-theme="light"] .crm-card,
[data-theme="light"] .kan-col,
[data-theme="light"] .kan-card,
[data-theme="light"] .article-row {
  background: #ffffff;
  border-color: var(--border);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(14,17,19,.04);
}
[data-theme="light"] .bal-card h3,
[data-theme="light"] .lk-card h3,
[data-theme="light"] .seo-sys h3,
[data-theme="light"] .stat-card h3,
[data-theme="light"] .kan-title { color: var(--text); }

/* Modals */
[data-theme="light"] .modal,
[data-theme="light"] .modal-backdrop,
[data-theme="light"] .ideas-backdrop { background: rgba(14,17,19,.45); }
[data-theme="light"] .modal-content,
[data-theme="light"] .ideas-modal,
[data-theme="light"] .crm-history-modal-card { background: #ffffff; color: var(--text); border-color: var(--border); }

/* Dashboard table specific (already styled in stylesheet head) */
[data-theme="light"] .dashboard-tbl                 { background: #ffffff; border-color: var(--border); }
[data-theme="light"] .dashboard-tbl th              { color: var(--text-2); border-color: var(--border); background: rgba(14,17,19,.03); }
[data-theme="light"] .dashboard-tbl td              { color: var(--text); border-color: var(--border-l); }
[data-theme="light"] .dashboard-tbl td.muted        { color: var(--text-3); }
[data-theme="light"] .dashboard-tbl a               { color: var(--text); }
[data-theme="light"] .dashboard-tbl--wide           { background: #ffffff; border-color: var(--border); }

/* Inline white text that survived */
[data-theme="light"] [style*="color:rgba(255,255,255"],
[data-theme="light"] [style*="color: rgba(255,255,255"],
[data-theme="light"] [style*="color:#fff"],
[data-theme="light"] [style*="color: #fff"] {
  color: var(--text-2) !important;
}
[data-theme="light"] [style*="background:rgba(255,255,255"],
[data-theme="light"] [style*="background: rgba(255,255,255"] {
  background: rgba(14,17,19,.04) !important;
}

/* ============================================================
   THEME SWITCHER v1.2 — buttons in light theme
   --text flips to dark in light, but accent buttons need white text
   ============================================================ */

/* Primary / accent buttons keep white text on orange in any theme */
[data-theme="light"] .btn-primary,
[data-theme="light"] .btn-pay,
[data-theme="light"] .nav-item.active,
[data-theme="light"] .seo-subnav__tab--active,
[data-theme="light"] .pager__btn--active,
[data-theme="light"] .admin-nav-tab--active,
[data-theme="light"] .pri-btn,
[data-theme="light"] [class*="--primary"],
[data-theme="light"] button[type="submit"]:not(.btn-secondary):not(.btn-ghost):not(.lk-mini) {
  color: #ffffff;
}
[data-theme="light"] .btn-primary:hover,
[data-theme="light"] .btn-pay:not(:disabled):hover { color: #ffffff; }

/* Secondary / ghost buttons in light theme — visible borders */
[data-theme="light"] .btn-secondary {
  color: var(--text);
  border-color: var(--border);
  background: #ffffff;
}
[data-theme="light"] .btn-secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: #ffffff;
}
[data-theme="light"] .btn-ghost {
  color: var(--text-2);
  border-color: var(--border-l);
  background: transparent;
}
[data-theme="light"] .btn-ghost:hover {
  color: var(--text);
  border-color: var(--border);
  background: rgba(14,17,19,.04);
}

/* Mini admin action buttons (SEO factory: ↻ ⏸ ▶ ×, lk-mini, act-*) */
[data-theme="light"] .lk-mini,
[data-theme="light"] .act-rank-check,
[data-theme="light"] .act-rank-toggle,
[data-theme="light"] .act-rank-delete,
[data-theme="light"] .btn-icon-mini,
[data-theme="light"] .btn-mini,
[data-theme="light"] .icon-btn {
  color: var(--text-2);
  background: rgba(14,17,19,.04);
  border: 1px solid rgba(14,17,19,.10);
}
[data-theme="light"] .lk-mini:hover,
[data-theme="light"] .act-rank-check:hover,
[data-theme="light"] .act-rank-toggle:hover,
[data-theme="light"] .act-rank-delete:hover,
[data-theme="light"] .btn-icon-mini:hover,
[data-theme="light"] .btn-mini:hover,
[data-theme="light"] .icon-btn:hover {
  color: var(--text);
  background: rgba(14,17,19,.07);
  border-color: rgba(14,17,19,.18);
}
[data-theme="light"] .act-rank-delete:hover { color: var(--error); border-color: rgba(220,38,38,.45); }

/* Publish-now / delete inline links */
[data-theme="light"] .publish-now-link { color: var(--success) !important; }
[data-theme="light"] .publish-now-link:hover { color: #15803d !important; }
[data-theme="light"] .delete-link { color: var(--error) !important; }
[data-theme="light"] .delete-link:hover { color: #b91c1c !important; }

/* Generic <button> without specific class — readable surface */
[data-theme="light"] button:not([class]) {
  color: var(--text);
  background: rgba(14,17,19,.04);
  border: 1px solid rgba(14,17,19,.10);
  border-radius: 4px;
  padding: 6px 12px;
}

/* ============================================================
   THEME SWITCHER v1.3 — public site header + footer
   ============================================================ */
.site-header-theme { margin-left: auto; margin-right: 8px; flex-shrink: 0; }
@media (max-width: 720px) {
  .site-header-theme { margin-left: 4px; margin-right: 4px; }
  .site-header-theme .theme-btn { width: 26px; height: 24px; }
}
@media (max-width: 400px) {
  .site-header-theme { margin-left: 2px; margin-right: 0; padding: 1px; }
  .site-header-theme .theme-btn { width: 22px; height: 22px; }
  .site-header-theme .theme-btn svg { width: 12px; height: 12px; }
}

[data-theme="light"] .site-header {
  background: rgba(255,255,255,.85);
  border-bottom-color: rgba(14,17,19,.08);
}
[data-theme="light"] .site-header-link        { color: rgba(14,17,19,.70); }
[data-theme="light"] .site-header-link:hover  { color: var(--text); background: rgba(14,17,19,.04); }
[data-theme="light"] .site-header-link--active { color: var(--accent-d); background: rgba(238,125,0,.10); }
[data-theme="light"] .site-header-cta {
  background: rgba(238,125,0,.12);
  border-color: rgba(238,125,0,.45);
  color: var(--accent-d);
}
[data-theme="light"] .site-header-cta:hover { background: rgba(238,125,0,.22); }

/* White brand logos → invert to dark in light theme */
[data-theme="light"] .site-header-logo-img { filter: invert(1) hue-rotate(180deg); }

/* Footer */
[data-theme="light"] footer {
  color: rgba(14,17,19,.55) !important;
  border-top-color: rgba(14,17,19,.08) !important;
  background: transparent;
}
[data-theme="light"] footer a { color: var(--accent-d) !important; }
[data-theme="light"] footer a:hover { color: var(--accent) !important; }

/* Footer-articles block */
[data-theme="light"] .footer-articles { background: rgba(14,17,19,.03); border-color: rgba(14,17,19,.08); }
[data-theme="light"] .footer-articles h3 { color: var(--text); }
[data-theme="light"] .footer-articles a   { color: var(--text-2); }
[data-theme="light"] .footer-articles a:hover { color: var(--accent); }

/* Share widget — keep it visible in light */
[data-theme="light"] .share-btn { background: var(--accent); color: #fff; }
[data-theme="light"] .share-menu {
  background: #ffffff;
  border: 1px solid var(--border);
  box-shadow: 0 8px 24px rgba(14,17,19,.10);
  color: var(--text);
}
[data-theme="light"] .share-menu a { color: var(--text); }
[data-theme="light"] .share-menu a:hover { background: rgba(14,17,19,.04); }

/* Public hero / feature blocks — common patterns */
[data-theme="light"] .feature-card,
[data-theme="light"] .hero-card,
[data-theme="light"] .method-card,
[data-theme="light"] .article-grid-card,
[data-theme="light"] .faq-item,
[data-theme="light"] .home-section,
[data-theme="light"] .about-card {
  background: #ffffff;
  border-color: var(--border);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(14,17,19,.04);
}
[data-theme="light"] .feature-title,
[data-theme="light"] .method-title,
[data-theme="light"] .article-grid-card h3,
[data-theme="light"] .faq-item h3 { color: var(--text); }
[data-theme="light"] .feature-text,
[data-theme="light"] .method-text,
[data-theme="light"] .faq-item p { color: var(--text-2); }

/* Article public reading view */
[data-theme="light"] .article-body,
[data-theme="light"] .article-public { color: var(--text); }
[data-theme="light"] .article-body p,
[data-theme="light"] .article-public p { color: var(--text); }
[data-theme="light"] .article-meta { color: var(--text-3); }
[data-theme="light"] blockquote {
  background: rgba(14,17,19,.04);
  border-left-color: var(--accent);
  color: var(--text);
}

/* Auth / survey screens — keep dark-first if used; just safety overrides */
[data-theme="light"] .auth-card,
[data-theme="light"] .survey-card { background: #ffffff; color: var(--text); border-color: var(--border); }

/* ============================================================
   GLOW & PULSE v1 — ambient halos and live-dot, ported from HOOK
   ============================================================ */

/* Live pulsing dot — drop <span class="live-dot"></span> anywhere */
.live-dot {
  position: relative;
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--accent);
  vertical-align: middle;
  margin-right: 8px;
  animation: livePulseDot 1.6s ease-in-out infinite;
}
.live-dot::after {
  content: '';
  position: absolute; inset: -5px;
  border-radius: 50%;
  border: 1px solid var(--accent);
  animation: livePulseRing 1.8s ease-out infinite;
  pointer-events: none;
}
@keyframes livePulseDot { 0%,100% { opacity:1; } 50% { opacity:.35; } }
@keyframes livePulseRing { 0% { transform: scale(.6); opacity:.9; } 100% { transform: scale(2.4); opacity:0; } }

/* "LIVE" pill — drop <span class="live-pill">● LIVE</span> */
.live-pill {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 700; letter-spacing: 1.2px;
  padding: 3px 9px;
  color: var(--success);
  border: 1px solid rgba(76,175,80,.35);
  border-radius: 999px;
  background: rgba(76,175,80,.08);
}
[data-theme="light"] .live-pill {
  color: #16a34a;
  border-color: rgba(22,163,74,.35);
  background: rgba(22,163,74,.08);
}

/* Halo utility — soft tinted glow under important containers */
.has-glow {
  position: relative;
  box-shadow: 0 30px 80px -30px rgba(238,125,0,.30), 0 0 0 1px rgba(238,125,0,.10) inset;
}
[data-theme="light"] .has-glow {
  box-shadow: 0 30px 80px -30px rgba(238,125,0,.22), 0 0 0 1px rgba(238,125,0,.18) inset;
}
.has-glow--green { box-shadow: 0 30px 80px -30px rgba(74,222,128,.30), 0 0 0 1px rgba(74,222,128,.12) inset; }
.has-glow--blue  { box-shadow: 0 30px 80px -30px rgba(96,165,250,.30), 0 0 0 1px rgba(96,165,250,.12) inset; }

/* Animated featured glow — pulsing, for one «hero» card per page */
.featured-glow {
  animation: featuredGlow 3.4s ease-in-out infinite alternate;
}
@keyframes featuredGlow {
  from { box-shadow: 0 0 0 1px rgba(238,125,0,.45), 0 14px 36px -14px rgba(238,125,0,.22); }
  to   { box-shadow: 0 0 0 1px rgba(238,125,0,.55), 0 22px 60px -12px rgba(238,125,0,.50); }
}
[data-theme="light"] .featured-glow {
  animation-name: featuredGlowLight;
}
@keyframes featuredGlowLight {
  from { box-shadow: 0 0 0 1px rgba(238,125,0,.40), 0 14px 36px -14px rgba(238,125,0,.18); }
  to   { box-shadow: 0 0 0 1px rgba(238,125,0,.55), 0 22px 50px -12px rgba(238,125,0,.30); }
}

/* Cursor-tracked accent radial — for cards with `.spot-glow` (uses --mx,--my from JS) */
.spot-glow { position: relative; overflow: hidden; isolation: isolate; }
.spot-glow::before {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%), rgba(238,125,0,.12), transparent 40%);
  opacity: 0;
  transition: opacity .4s ease;
  pointer-events: none;
  z-index: -1;
}
.spot-glow:hover::before { opacity: 1; }

/* Auto-apply gentle halos to existing important UI ───────────── */
/* Public: accent product card */
.home-product-card--accent {
  box-shadow: 0 18px 60px -24px rgba(238,125,0,.45), 0 0 0 1px rgba(238,125,0,.18) inset;
  position: relative;
}
[data-theme="light"] .home-product-card--accent {
  box-shadow: 0 18px 60px -24px rgba(238,125,0,.30), 0 0 0 1px rgba(238,125,0,.20) inset;
}

/* Admin: KPI + stat tiles get subtle accent halo on hover */
.bal-kpi, .balance-kpi, .stat-card, .lk-tile {
  transition: box-shadow .25s ease, transform .25s ease;
}
.bal-kpi:hover, .balance-kpi:hover, .stat-card:hover, .lk-tile:hover {
  box-shadow: 0 22px 60px -22px rgba(238,125,0,.30), 0 0 0 1px rgba(238,125,0,.18) inset;
  transform: translateY(-1px);
}
[data-theme="light"] .bal-kpi:hover,
[data-theme="light"] .balance-kpi:hover,
[data-theme="light"] .stat-card:hover,
[data-theme="light"] .lk-tile:hover {
  box-shadow: 0 22px 50px -22px rgba(238,125,0,.20), 0 0 0 1px rgba(238,125,0,.22) inset;
}

/* SEO factory cards — each gets soft halo so they feel «active» */
.seo-systems .seo-sys {
  position: relative;
  transition: box-shadow .3s ease;
}
.seo-systems .seo-sys:hover {
  box-shadow: 0 24px 60px -22px rgba(238,125,0,.28), 0 0 0 1px rgba(238,125,0,.18) inset;
}
[data-theme="light"] .seo-systems .seo-sys:hover {
  box-shadow: 0 24px 50px -22px rgba(238,125,0,.18), 0 0 0 1px rgba(238,125,0,.22) inset;
}

/* Paywall promo + CTA — animated featured glow */
.paywall-promo-row .btn-primary,
.about-hero-actions .btn-primary {
  animation: featuredGlow 3.4s ease-in-out infinite alternate;
}
[data-theme="light"] .paywall-promo-row .btn-primary,
[data-theme="light"] .about-hero-actions .btn-primary {
  animation-name: featuredGlowLight;
}

/* About-hero label — gets a live-dot pulse */
.about-hero-label::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  margin-right: 8px;
  vertical-align: middle;
  box-shadow: 0 0 0 0 var(--accent);
  animation: livePulseDot 1.6s ease-in-out infinite;
  position: relative;
}

/* Reduce-motion: respect user preference */
@media (prefers-reduced-motion: reduce) {
  .live-dot, .live-dot::after,
  .featured-glow, .paywall-promo-row .btn-primary, .about-hero-actions .btn-primary,
  .about-hero-label::before {
    animation: none !important;
  }
}

/* ─────────────────────────────────────────────────────────────────
   LIGHT THEME — PUBLIC PAGES (home, about, faq, contact, article, rules, survey)
   v67 · catches inline-defined classes that bypass CSS variables
   ───────────────────────────────────────────────────────────────── */

/* ── HOME PAGE (templates/home.php inline styles) ─────────── */
[data-theme="light"] .home-page { color: var(--text); }
[data-theme="light"] .home-hero-micro { color: var(--text-3); }

[data-theme="light"] .home-product-card,
[data-theme="light"] .home-step,
[data-theme="light"] .home-small-card {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .home-product-card:hover {
  border-color: rgba(238,125,0,.55);
  box-shadow: 0 10px 32px rgba(15,20,30,.10), 0 0 0 1px rgba(238,125,0,.15) inset;
}
[data-theme="light"] .home-product-card--accent {
  background: linear-gradient(165deg, rgba(238,125,0,.10) 0%, rgba(238,125,0,.04) 60%, transparent 100%);
  border-color: rgba(238,125,0,.40);
}
[data-theme="light"] .home-product-card h3,
[data-theme="light"] .home-step h3,
[data-theme="light"] .home-small-card h3 { color: var(--text); }
[data-theme="light"] .home-product-sub { color: var(--text-2); }
[data-theme="light"] .home-product-list { color: var(--text-3); }
[data-theme="light"] .home-step p { color: var(--text-2); }
[data-theme="light"] .home-small-card p { color: var(--text-3); }
[data-theme="light"] .home-cta-sub { color: var(--text-2); }
[data-theme="light"] .home-cta-micro { color: var(--text-4); }
[data-theme="light"] .home-section--tint {
  background: linear-gradient(180deg, rgba(238,125,0,.05) 0%, rgba(255,255,255,0) 100%);
}
[data-theme="light"] .home-topright-login {
  background: rgba(238,125,0,.10);
  border-color: rgba(238,125,0,.45);
  color: #c25e00;
}
[data-theme="light"] .home-topright-login:hover { background: rgba(238,125,0,.18); }

/* ── ABOUT PAGE (.about-* — these come from main CSS but reference vars) ─ */
[data-theme="light"] .about-page { color: var(--text); }
[data-theme="light"] .about-provoke-card,
[data-theme="light"] .about-service-card,
[data-theme="light"] .about-train-track {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .about-provoke-card--bright {
  background: linear-gradient(165deg, rgba(238,125,0,.10) 0%, rgba(238,125,0,.03) 100%);
  border-color: rgba(238,125,0,.32);
}
[data-theme="light"] .about-section-label--light { color: var(--text-3); }
[data-theme="light"] .about-stat-num,
[data-theme="light"] .about-service-card h3,
[data-theme="light"] .about-cta-title,
[data-theme="light"] .about-train-title,
[data-theme="light"] .about-hero-title { color: var(--text); }
[data-theme="light"] .about-hero-sub,
[data-theme="light"] .about-cta-sub,
[data-theme="light"] .about-train-text p,
[data-theme="light"] .about-about-text p { color: var(--text-2); }
[data-theme="light"] .about-cta-note,
[data-theme="light"] .about-about-caption { color: var(--text-3); }

/* ── FAQ PAGE (templates/faq_index.php inline styles) ─────── */
[data-theme="light"] .faq-citable {
  background: linear-gradient(135deg, rgba(238,125,0,.08) 0%, rgba(238,125,0,.02) 100%);
  border-color: rgba(238,125,0,.32);
  color: var(--text);
}
[data-theme="light"] .faq-citable strong { color: #c25e00; }
[data-theme="light"] .faq-item {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .faq-item[open],
[data-theme="light"] .faq-item:hover { border-color: rgba(238,125,0,.45); }
[data-theme="light"] .faq-question { color: var(--text); }
[data-theme="light"] .faq-q-chevron {
  background: rgba(238,125,0,.18);
  color: #c25e00;
}
[data-theme="light"] .faq-item[open] .faq-q-chevron { background: rgba(238,125,0,.32); }
[data-theme="light"] .faq-answer { color: var(--text-2); }
[data-theme="light"] .faq-cta {
  background: linear-gradient(145deg, rgba(238,125,0,.10), rgba(238,125,0,.03));
  border-color: rgba(238,125,0,.30);
}
[data-theme="light"] .faq-cta p { color: var(--text-2); }
[data-theme="light"] .faq-more-link { color: #c25e00; }
[data-theme="light"] .faq-more-link:hover { color: #ee7d00; }

/* ── CONTACT PAGE (templates/contact.php inline styles) ───── */
[data-theme="light"] .lead-form {
  background: rgba(238,125,0,.05);
  border-color: rgba(238,125,0,.32);
}
[data-theme="light"] .lead-field { color: var(--text-2); }
[data-theme="light"] .lead-field input,
[data-theme="light"] .lead-field textarea {
  background: #ffffff;
  border-color: rgba(15,20,30,.18);
  color: var(--text);
}
[data-theme="light"] .lead-field input:focus,
[data-theme="light"] .lead-field textarea:focus { border-color: rgba(238,125,0,.7); }
[data-theme="light"] .lead-note { color: var(--text-3); }
[data-theme="light"] .lead-note a { color: #c25e00; }
[data-theme="light"] .lead-services h2 { color: var(--text); }
[data-theme="light"] .lead-svc {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .lead-svc strong { color: #c25e00; }
[data-theme="light"] .lead-svc p { color: var(--text-2); }
[data-theme="light"] .lead-status--ok  { color: #2e7d32; }
[data-theme="light"] .lead-status--err { color: #c62828; }

/* ── ARTICLE LIST / RULES / SURVEY (sparse inline patterns) ─ */
[data-theme="light"] .article-meta { color: var(--text-3) !important; }

/* Catch-all for inline style="color:rgba(255,255,255,X)" patterns
   used in templates. CSS attribute selectors win when paired with !important.   */
[data-theme="light"] [style*="color:rgba(255,255,255"],
[data-theme="light"] [style*="color: rgba(255,255,255"],
[data-theme="light"] [style*="color:#fff"],
[data-theme="light"] [style*="color: #fff"] { color: var(--text-2) !important; }

/* But content inside the orange CTA buttons stays white */
[data-theme="light"] .btn-primary[style*="color:#fff"],
[data-theme="light"] .btn-primary[style*="color: #fff"] { color: #ffffff !important; }

/* Inline backgrounds rgba(255,255,255,X) → light surface */
[data-theme="light"] [style*="background:rgba(255,255,255"],
[data-theme="light"] [style*="background: rgba(255,255,255"] {
  background: rgba(15,20,30,.025) !important;
}

/* Inline background-image gradients with white stops aren't fixed here —
   they're rare and can be addressed per-case. */

/* ── ARTICLE READING VIEW: ensure content text reads dark ── */
[data-theme="light"] .article-public,
[data-theme="light"] .article-public p,
[data-theme="light"] .article-public li,
[data-theme="light"] .article-public td,
[data-theme="light"] .article-public th { color: var(--text); }
[data-theme="light"] .article-public h1,
[data-theme="light"] .article-public h2,
[data-theme="light"] .article-public h3,
[data-theme="light"] .article-public h4 { color: var(--text); }
[data-theme="light"] .article-public blockquote {
  background: rgba(238,125,0,.05);
  border-left-color: var(--accent);
  color: var(--text-2);
}
[data-theme="light"] .article-public code,
[data-theme="light"] .article-public pre {
  background: rgba(15,20,30,.05);
  color: var(--text);
  border: 1px solid rgba(15,20,30,.10);
}
[data-theme="light"] .article-public a { color: #c25e00; }

/* ── REPORT PAGE: report cards readable on light ──────────── */
[data-theme="light"] .report-card,
[data-theme="light"] .report-section {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}
[data-theme="light"] .report-section h2,
[data-theme="light"] .report-section h3,
[data-theme="light"] .report-card h3 { color: var(--text); }
[data-theme="light"] .report-section p,
[data-theme="light"] .report-section li,
[data-theme="light"] .report-card p { color: var(--text-2); }

/* ── SURVEY (templates/survey.php) ─────────────────────── */
[data-theme="light"] .survey-question,
[data-theme="light"] .survey-card,
[data-theme="light"] .survey-progress {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}
[data-theme="light"] .survey-question p,
[data-theme="light"] .survey-help { color: var(--text-2); }

/* ═════════════════════════════════════════════════════════════════════════
   UNIFIED BUTTONS + CABINET/ADMIN LIGHT THEME · v68
   This block is appended last so it wins the cascade over earlier rules.
   ═════════════════════════════════════════════════════════════════════════ */

/* ── 1. UNIFIED BUTTONS  ─────────────────────────────────────────────
   Single source of truth: radius 10px, weight 600, sentence-case, soft hover.
   Earlier rules at lines 161 and 3518 set 4-px / uppercase / 12px — overridden here.
*/
.btn,
button.btn,
a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 22px;
  border-radius: 10px;
  font-family: var(--font-system, var(--font-main));
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .2px;
  text-transform: none;
  line-height: 1.2;
  white-space: nowrap;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s, box-shadow .15s, transform .15s;
}
.btn-sm { padding: 8px 14px !important; font-size: 12px !important; border-radius: 8px !important; }
.btn-lg { padding: 13px 26px !important; font-size: 15px !important; border-radius: 10px !important; }
.btn-xl { padding: 15px 32px !important; font-size: 16px !important; border-radius: 12px !important; letter-spacing: .3px !important; }
.btn-full { width: 100%; }

/* Variant: PRIMARY (orange-filled) */
.btn-primary {
  background: var(--accent);
  color: #ffffff !important;
  border-color: var(--accent);
  box-shadow: 0 4px 14px rgba(238,125,0,.30);
}
.btn-primary:hover {
  background: var(--accent-d, #d36c00);
  border-color: var(--accent-d, #d36c00);
  color: #ffffff !important;
  box-shadow: 0 6px 22px rgba(238,125,0,.45);
  transform: translateY(-1px);
  text-decoration: none;
}
.btn-primary:active { transform: translateY(0); }

/* Variant: SECONDARY (bordered) */
.btn-secondary {
  background: transparent;
  color: var(--text-2);
  border-color: var(--border);
}
.btn-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(238,125,0,.06);
  text-decoration: none;
}

/* Variant: GHOST (faint border, faint text) */
.btn-ghost {
  background: transparent;
  color: var(--text-3);
  border-color: var(--border-l, rgba(255,255,255,.10));
}
.btn-ghost:hover {
  border-color: var(--border, rgba(255,255,255,.18));
  color: var(--text-2);
  background: rgba(255,255,255,.03);
  text-decoration: none;
}

/* Disabled state */
.btn:disabled,
.btn[disabled] {
  opacity: .45;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* PAY button (.btn-pay) — keep distinct paywall styling but match radius */
.btn-pay {
  border-radius: 10px;
  font-family: var(--font-system, var(--font-main));
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .2px;
  text-transform: none;
}

/* Icon-mini buttons stay 8px (smaller surface) */
.btn-icon-mini,
.btn-icon { border-radius: 8px; }

/* Light-theme button tuning */
[data-theme="light"] .btn-secondary {
  color: var(--text);
  border-color: rgba(15,20,30,.18);
}
[data-theme="light"] .btn-secondary:hover {
  background: rgba(238,125,0,.08);
  border-color: var(--accent);
  color: var(--accent);
}
[data-theme="light"] .btn-ghost {
  color: var(--text);
  border-color: rgba(15,20,30,.28);
  background: rgba(255,255,255,.6);
}
[data-theme="light"] .btn-ghost:hover {
  background: rgba(238,125,0,.06);
  color: var(--accent);
  border-color: var(--accent);
}

/* ── 2. CABINET — survey + report (post-login) ───────────────────────── */
[data-theme="light"] .survey-page,
[data-theme="light"] .report-page,
[data-theme="light"] .lk-page { color: var(--text); }

[data-theme="light"] .survey-card,
[data-theme="light"] .survey-question-card,
[data-theme="light"] .survey-progress-card,
[data-theme="light"] .lk-card,
[data-theme="light"] .lk-section,
[data-theme="light"] .report-card,
[data-theme="light"] .report-section,
[data-theme="light"] .report-block {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}

[data-theme="light"] .survey-question h2,
[data-theme="light"] .survey-question h3,
[data-theme="light"] .lk-card h2,
[data-theme="light"] .lk-card h3,
[data-theme="light"] .report-section h2,
[data-theme="light"] .report-section h3,
[data-theme="light"] .report-card h2,
[data-theme="light"] .report-card h3 { color: var(--text); }

[data-theme="light"] .survey-help,
[data-theme="light"] .survey-question p,
[data-theme="light"] .lk-card p,
[data-theme="light"] .report-section p,
[data-theme="light"] .report-card p,
[data-theme="light"] .lk-meta { color: var(--text-2); }

[data-theme="light"] .survey-progress-bar,
[data-theme="light"] .lk-progress-track {
  background: rgba(15,20,30,.08);
}
[data-theme="light"] .survey-progress-fill,
[data-theme="light"] .lk-progress-fill {
  background: var(--accent);
}

/* Form fields in cabinet — light surface */
[data-theme="light"] input[type="text"],
[data-theme="light"] input[type="email"],
[data-theme="light"] input[type="password"],
[data-theme="light"] input[type="number"],
[data-theme="light"] input[type="datetime-local"],
[data-theme="light"] input[type="search"],
[data-theme="light"] input[type="tel"],
[data-theme="light"] input[type="url"],
[data-theme="light"] textarea,
[data-theme="light"] select {
  background: #ffffff;
  border-color: rgba(15,20,30,.18);
  color: var(--text);
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder { color: var(--text-3); }
[data-theme="light"] input:focus,
[data-theme="light"] textarea:focus,
[data-theme="light"] select:focus {
  border-color: var(--accent);
  outline: none;
}

/* Survey answer chips/options */
[data-theme="light"] .survey-option,
[data-theme="light"] .survey-choice,
[data-theme="light"] .answer-option {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}
[data-theme="light"] .survey-option:hover,
[data-theme="light"] .survey-choice:hover,
[data-theme="light"] .answer-option:hover {
  background: rgba(238,125,0,.06);
  border-color: rgba(238,125,0,.40);
}
[data-theme="light"] .survey-option.selected,
[data-theme="light"] .answer-option.selected {
  background: rgba(238,125,0,.12);
  border-color: var(--accent);
  color: var(--text);
}

/* ── 3. ADMIN — generic class catch-all (CRM, SEO, BALANCE, DASHBOARD) ──── */
[data-theme="light"] .admin-page,
[data-theme="light"] .admin-crm-page,
[data-theme="light"] .admin-balance-page,
[data-theme="light"] .admin-dashboard-page,
[data-theme="light"] .admin-articles-page { color: var(--text); }

[data-theme="light"] .admin-header h1,
[data-theme="light"] .admin-page h1,
[data-theme="light"] .admin-page h2,
[data-theme="light"] .admin-page h3 { color: var(--text); }

/* CRM Kanban */
[data-theme="light"] .kan-col,
[data-theme="light"] .crm-sumcard,
[data-theme="light"] .crm-card,
[data-theme="light"] .composer-card,
[data-theme="light"] .composer-tpl-card,
[data-theme="light"] .tpl-card {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}
[data-theme="light"] .kan-col-name,
[data-theme="light"] .crm-sumcard-num,
[data-theme="light"] .tpl-title { color: var(--text); }
[data-theme="light"] .crm-sumcard-label,
[data-theme="light"] .tpl-slug,
[data-theme="light"] .composer-meta { color: var(--text-3); }
[data-theme="light"] .kan-col--selected,
[data-theme="light"] .crm-sumcard:hover { border-color: rgba(238,125,0,.45); }
[data-theme="light"] .kan-col-body::-webkit-scrollbar-thumb { background: rgba(15,20,30,.12); }
[data-theme="light"] .kan-col-body::-webkit-scrollbar-thumb:hover { background: rgba(15,20,30,.20); }

[data-theme="light"] .composer-stages-row,
[data-theme="light"] .composer-tpl-row {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.08);
}
[data-theme="light"] .composer-stage-chip,
[data-theme="light"] .composer-stage-chip--all {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.10);
  color: var(--text-2);
}
[data-theme="light"] .composer-stage-chip:has(input:checked),
[data-theme="light"] .composer-stage-chip--all:has(input:checked) {
  background: rgba(238,125,0,.18);
  border-color: rgba(238,125,0,.55);
  color: var(--text);
}

/* SEO admin */
[data-theme="light"] .seo-subnav {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.08);
}
[data-theme="light"] .seo-subnav__tab { color: var(--text-2); }
[data-theme="light"] .seo-subnav__tab:hover {
  color: var(--text);
  background: rgba(15,20,30,.04);
}
[data-theme="light"] .seo-subnav__tab--active {
  color: #ffffff;
  background: var(--accent);
}
[data-theme="light"] .seo-kpi,
[data-theme="light"] .seo-card,
[data-theme="light"] .seo-block {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.08);
  color: var(--text);
}
[data-theme="light"] .seo-kpi__label,
[data-theme="light"] .seo-kpi__sub,
[data-theme="light"] .seo-meta,
[data-theme="light"] .seo-card__slug,
[data-theme="light"] .seo-hint { color: var(--text-3); }
[data-theme="light"] .seo-card__lead { color: var(--text-2); }
[data-theme="light"] .seo-bar { background: rgba(15,20,30,.10); }
[data-theme="light"] .seo-tag--manual { background: rgba(15,20,30,.08); color: var(--text); }

/* Balance admin */
[data-theme="light"] .bal-card,
[data-theme="light"] .bal-section,
[data-theme="light"] .bal-row {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
  color: var(--text);
}
[data-theme="light"] .bal-num,
[data-theme="light"] .bal-title { color: var(--text); }
[data-theme="light"] .bal-label,
[data-theme="light"] .bal-meta { color: var(--text-3); }

/* CRM history modal */
[data-theme="light"] .crm-history-modal-card {
  background: #ffffff;
  border-color: rgba(15,20,30,.12);
  color: var(--text);
  box-shadow: 0 20px 60px rgba(15,20,30,.20);
}

/* Admin memo */
[data-theme="light"] .admin-memo {
  background: rgba(238,125,0,.06);
  border-color: rgba(238,125,0,.32);
  color: var(--text);
}
[data-theme="light"] .memo-card {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.10);
}

/* Catch any remaining inline rgba(255,255,255,*) backgrounds in admin */
[data-theme="light"] .admin-page [style*="background:rgba(255,255,255"],
[data-theme="light"] .admin-page [style*="background: rgba(255,255,255"],
[data-theme="light"] .kan-col-body [style*="background:rgba(255,255,255"],
[data-theme="light"] .composer-card [style*="background:rgba(255,255,255"] {
  background: rgba(15,20,30,.025) !important;
}

/* Tables in admin readable on light */
[data-theme="light"] table { color: var(--text); }
[data-theme="light"] table th { color: var(--text-2); border-color: rgba(15,20,30,.10); }
[data-theme="light"] table td { border-color: rgba(15,20,30,.06); color: var(--text); }
[data-theme="light"] table tr:hover td { background: rgba(238,125,0,.04); }

/* Status badges remain colored */
[data-theme="light"] .status-published,
[data-theme="light"] .status-draft,
[data-theme="light"] .status-active,
[data-theme="light"] .status-inactive { color: var(--text); }

/* ============================================================
   THEME SWITCHER v1.4 — admin tables/tabs/details/pills
   Specifically targets gaps reported in CRM and Articles list
   ============================================================ */

/* Admin tables */
[data-theme="light"] .admin-table th,
[data-theme="light"] .admin-table td { border-bottom: 1px solid rgba(15,20,30,.08); color: var(--text); }
[data-theme="light"] .admin-table th { color: var(--text-3); }
[data-theme="light"] .admin-table td a { color: var(--accent); }
[data-theme="light"] .admin-table tr { background: transparent; }
[data-theme="light"] .admin-table tbody tr:hover { background: rgba(15,20,30,.025); }

/* Status pills */
[data-theme="light"] .admin-table .st { background: rgba(15,20,30,.06); color: var(--text); }
[data-theme="light"] .st--queued { background: rgba(15,20,30,.10); color: #555; }
[data-theme="light"] .st--draft  { background: rgba(238,125,0,.16); color: #b45c00; }
[data-theme="light"] .st--sched  { background: rgba(60,130,230,.14); color: #225ea8; }
[data-theme="light"] .st--pub    { background: rgba(40,180,80,.16); color: #1e7c2f; }
[data-theme="light"] .st--arch   { background: rgba(15,20,30,.10); color: #666; }

/* Status tabs row */
[data-theme="light"] .status-tabs { background: transparent; }
[data-theme="light"] .st-tab {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.10);
  color: var(--text-2);
}
[data-theme="light"] .st-tab small { color: var(--text-3); }
[data-theme="light"] .st-tab:hover { color: var(--text); border-color: rgba(238,125,0,.45); }
[data-theme="light"] .st-tab--active { color: #fff; }
[data-theme="light"] .st-tab--active small { color: rgba(255,255,255,.85); }

/* Empty state */
[data-theme="light"] .admin-empty {
  background: rgba(15,20,30,.025);
  border: 1px solid rgba(15,20,30,.08);
  color: var(--text);
}

/* Templates expandable */
[data-theme="light"] .admin-templates {
  background: rgba(15,20,30,.02);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .admin-templates > summary { color: var(--text); }
[data-theme="light"] .admin-templates > summary:hover { background: rgba(15,20,30,.04); }
[data-theme="light"] .admin-templates[open] > summary { border-bottom-color: rgba(15,20,30,.10); }
[data-theme="light"] .admin-templates > summary > .tpl-summary__progress { color: var(--text-3); }
[data-theme="light"] .admin-templates > summary > .tpl-summary__progress--done { color: var(--accent); }
[data-theme="light"] .tpl-section-title { color: var(--text); }

/* Hints inside admin */
[data-theme="light"] .admin-hint,
[data-theme="light"] .memo-hint { color: var(--text-3); }

/* CRM inline white sub-blocks left over */
[data-theme="light"] .kan-col-toggle { color: var(--text-3); }
[data-theme="light"] .kan-col-toggle:hover { color: var(--accent); background: rgba(238,125,0,.10); }
[data-theme="light"] .kan-empty { color: var(--text-3); }
[data-theme="light"] .kan-card-check { background: rgba(15,20,30,.04); border-color: rgba(238,125,0,.5); }
[data-theme="light"] .kan-card-check.disabled,
[data-theme="light"] .kan-col-checkall.disabled { border-color: rgba(15,20,30,.20); }
[data-theme="light"] .kan-col-body::-webkit-scrollbar-thumb { background: rgba(15,20,30,.12); }

/* CRM composer card sub-text */
[data-theme="light"] .composer-card label,
[data-theme="light"] .composer-card .composer-meta { color: var(--text-2); }
[data-theme="light"] .composer-card input,
[data-theme="light"] .composer-card textarea,
[data-theme="light"] .composer-card select {
  background: #fff; color: var(--text); border-color: rgba(15,20,30,.16);
}
[data-theme="light"] .composer-card input::placeholder,
[data-theme="light"] .composer-card textarea::placeholder { color: var(--text-3); }

/* Pager already styled but keep info readable */
[data-theme="light"] .td-when { color: var(--text-3); }


/* ============================================================
   THEME SWITCHER v1.5 — public article LIST (/methods, /articles)
   These are .article-index pages, NOT .article-public single view
   ============================================================ */
[data-theme="light"] .article-page { color: var(--text); }
[data-theme="light"] .article-page h1 { color: var(--text); border-bottom-color: var(--accent); }
[data-theme="light"] .article-page h2 { color: var(--text); }
[data-theme="light"] .article-page h3 { color: var(--accent); }
[data-theme="light"] .article-page p,
[data-theme="light"] .article-page li { color: var(--text-2); }
[data-theme="light"] .article-page a { color: var(--accent); }

[data-theme="light"] .article-lead {
  color: var(--text);
  background: rgba(238,125,0,.07);
  border-left-color: var(--accent);
}
[data-theme="light"] .breadcrumbs { color: var(--text-3); }
[data-theme="light"] .breadcrumbs a { color: var(--text-2); }

/* List items as cards */
[data-theme="light"] .article-index-item {
  background: rgba(15,20,30,.025);
  border-color: rgba(15,20,30,.10);
}
[data-theme="light"] .article-index-item:hover {
  background: rgba(238,125,0,.06);
  border-color: rgba(238,125,0,.45);
}
[data-theme="light"] .article-index-link { color: var(--text); }
[data-theme="light"] .article-index-link h3 { color: var(--text); }
[data-theme="light"] .article-index-link p { color: var(--text-2); }
[data-theme="light"] .article-index-link time { color: var(--text-3); }

/* CTA card at bottom */
[data-theme="light"] .article-cta {
  background: linear-gradient(135deg, rgba(238,125,0,.10), rgba(238,125,0,.03));
  border-color: rgba(238,125,0,.40);
}
[data-theme="light"] .article-cta h3 { color: var(--text); }
[data-theme="light"] .article-cta p  { color: var(--text-2); }


/* ============================================================
   THEME SWITCHER v1.6 — logo inversion in light theme
   ============================================================ */
[data-theme="light"] .site-header-logo-img,
[data-theme="light"] .slogo,
[data-theme="light"] .slogo-roinext,
[data-theme="light"] .slogo-neiro,
[data-theme="light"] img[src*="neiro-white"],
[data-theme="light"] img[src*="roinext-white"] {
  filter: invert(1) brightness(.85);
}

/* ============================================================
   THEME SWITCHER v1.7 — survey textarea, vpn popup, logo hue-fix
   ============================================================ */

/* Сurvey/cabinet answer textarea is dark-blue in dark theme — flip in light */
[data-theme="light"] .answer-input {
  background: #ffffff;
  color: var(--text);
  border-color: rgba(15,20,30,.16);
}
[data-theme="light"] .answer-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.15);
}
[data-theme="light"] .answer-input::placeholder { color: var(--text-3); }
[data-theme="light"] .answer-counter { color: var(--text-3); }

/* Survey paywall promo input + email input */
[data-theme="light"] .paywall-promo-input {
  background: #ffffff;
  color: var(--text);
  border-color: rgba(15,20,30,.16);
}
[data-theme="light"] .paywall-promo-input::placeholder { color: var(--text-3); }

/* VPN popup notification */
[data-theme="light"] .vpn-popup {
  background: rgba(255,255,255,.96);
  border-color: rgba(238,125,0,.55);
  box-shadow: 0 8px 32px rgba(15,20,30,.18);
}
[data-theme="light"] .vpn-popup__text { color: var(--text); }
[data-theme="light"] .vpn-popup__close { color: var(--text-3); }
[data-theme="light"] .vpn-popup__close:hover { color: var(--text); }

/* Survey/report headers in light theme — bg + user-email + admin chips */
[data-theme="light"] .survey-page,
[data-theme="light"] .report-page { color: var(--text); }
[data-theme="light"] .survey-header,
[data-theme="light"] .report-header { border-bottom-color: rgba(15,20,30,.10); }
[data-theme="light"] .user-email { color: var(--text-2); }
[data-theme="light"] .logout-link { color: var(--text-3); }
[data-theme="light"] .logout-link:hover { color: var(--text); }

/* Logo: preserve orange brand, only flip white→black via invert+hue-rotate */
[data-theme="light"] .site-header-logo-img,
[data-theme="light"] .slogo,
[data-theme="light"] .slogo-roinext,
[data-theme="light"] .slogo-neiro,
[data-theme="light"] img[src*="neiro-white"],
[data-theme="light"] img[src*="roinext-white"] {
  filter: invert(1) hue-rotate(180deg);
}

/* Auth page light overrides */
[data-theme="light"] .auth-page { color: var(--text); }
[data-theme="light"] .auth-last-used { color: var(--text-3); }


/* ============================================================
   THEME SWITCHER v1.8 — survey/report headers in light theme
   ============================================================ */
[data-theme="light"] .survey-header,
[data-theme="light"] .report-header {
  background: rgba(255,255,255,.85);
  border-bottom-color: rgba(15,20,30,.08);
}
[data-theme="light"] .survey-header::after,
[data-theme="light"] .report-header::after {
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: .35;
}
[data-theme="light"] .survey-logo,
[data-theme="light"] .report-logo { color: var(--accent); }

/* Survey background decorative icon — soften in light theme */
[data-theme="light"] .survey-bg-icon { color: rgba(15,20,30,.04); }

/* Category tabs (Marketing/Infrastructure/NEIRO PENDAL) */
[data-theme="light"] .category-tabs { background: transparent; border-bottom-color: rgba(15,20,30,.08); }
[data-theme="light"] .tab-btn { color: var(--text-2); }
[data-theme="light"] .tab-btn:hover { color: var(--text); background: rgba(15,20,30,.04); }
[data-theme="light"] .tab-btn.active { color: var(--accent); }
[data-theme="light"] .tab-progress { color: var(--text-3); }


/* ── v1.9 — Related materials block on article pages ──────────────── */
.article-related {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #2a2a2a;
}
.article-related h2 {
  font-size: 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  color: #fff;
}
.article-related .ic-inline { color: var(--accent); }
.related-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}
.related-list li { margin: 0; }
.related-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.02);
  color: #f0f0f0;
  text-decoration: none;
  transition: background .15s, border-color .15s, transform .15s;
}
.related-list a:hover {
  background: rgba(255,255,255,.05);
  border-color: var(--accent);
  transform: translateX(2px);
}
.related-list .related-title { color: #f0f0f0; }
.related-list .icon-muted { color: rgba(255,255,255,.4); flex-shrink: 0; }

[data-theme="light"] .article-related { border-top-color: rgba(15,20,30,.08); }
[data-theme="light"] .article-related h2 { color: var(--text); }
[data-theme="light"] .related-list a {
  background: rgba(15,20,30,.02);
  border-color: rgba(15,20,30,.08);
  color: var(--text);
}
[data-theme="light"] .related-list a:hover {
  background: rgba(15,20,30,.04);
  border-color: var(--accent);
}
[data-theme="light"] .related-list .related-title { color: var(--text); }
[data-theme="light"] .related-list .icon-muted { color: var(--text-3); }

/* ── v2.0 — Survey question card / complete card / save toast in light theme ── */
[data-theme="light"] .question-card,
[data-theme="light"] .complete-card {
  background: #ffffff;
  border-color: rgba(15,20,30,.10);
  box-shadow: 0 4px 20px rgba(15,20,30,.06);
  color: var(--text);
}
[data-theme="light"] .question-text { color: var(--text); }
[data-theme="light"] .question-num  { color: var(--text-3); }
[data-theme="light"] .question-category {
  background: rgba(238,125,0,.10);
  color: var(--accent);
  border-color: rgba(238,125,0,.30);
}
[data-theme="light"] .complete-card p { color: var(--text-2); }
[data-theme="light"] .save-status {
  background: rgba(255,255,255,.95);
  color: var(--text);
  border: 1px solid rgba(15,20,30,.10);
  box-shadow: 0 4px 20px rgba(15,20,30,.08);
}
[data-theme="light"] .nav-btn { color: var(--text); border-color: rgba(15,20,30,.14); }
[data-theme="light"] .nav-btn:hover:not(:disabled) {
  background: rgba(15,20,30,.04);
  border-color: rgba(15,20,30,.22);
}
[data-theme="light"] .nav-btn.nav-next {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

/* ── v2.1 — Header compactness: prevent toggle gap shoving CTA right ── */
.site-header-theme { margin-left: 6px !important; margin-right: 6px !important; }
@media (max-width: 720px) {
  .site-header-theme { margin-left: 2px !important; margin-right: 2px !important; }
  .site-header-theme .theme-btn { width: 26px; height: 24px; }
}
@media (max-width: 400px) {
  .site-header-theme { margin-left: 0 !important; margin-right: 0 !important; padding: 1px; }
  .site-header-theme .theme-btn { width: 22px; height: 22px; }
  .site-header-theme .theme-btn svg { width: 12px; height: 12px; }
}

/* ================================================================== */
/* ──  LIGHT-THEME POLISH v1 (header tint, darker text, card depth)  ── */
/* ================================================================== */

/* 1. Darker text — нечитаемая «серость» убирается */
[data-theme="light"] {
  --text-2: rgba(14,17,19,.88);
  --text-3: rgba(14,17,19,.66);
  --text-4: rgba(14,17,19,.42);
  --muted:  rgba(14,17,19,.70);
}

/* 2. Auth method buttons (Telegram/MAX/VK) — light readable */
[data-theme="light"] .auth-method-btn {
  background: rgba(255,255,255,.95);
  border-color: rgba(14,17,19,.14);
  color: var(--text);
  box-shadow: 0 2px 6px rgba(14,17,19,.05);
}
[data-theme="light"] .auth-method-btn--telegram,
[data-theme="light"] .auth-method-btn--max,
[data-theme="light"] .auth-method-btn--vk {
  background: linear-gradient(135deg, rgba(238,125,0,.06) 0%, rgba(238,125,0,.01) 100%);
  border-color: rgba(238,125,0,.50);
  color: var(--text);
  box-shadow: 0 2px 8px rgba(14,17,19,.06);
}
[data-theme="light"] .auth-method-btn--telegram:hover,
[data-theme="light"] .auth-method-btn--max:hover,
[data-theme="light"] .auth-method-btn--vk:hover {
  background: linear-gradient(135deg, #ee7d00 0%, #ff9420 100%);
  color: #fff;
  border-color: #ee7d00;
  box-shadow: 0 8px 20px rgba(238,125,0,.35);
}
[data-theme="light"] .auth-method-btn--max .max-logo { filter: none; }

/* 3. Header — лёгкий оттенок + тень, чтобы отделялся от полотна */
[data-theme="light"] .site-header {
  background: rgba(247,248,250,.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(14,17,19,.10);
  box-shadow: 0 2px 12px rgba(14,17,19,.05);
}

/* 4. Глобальная подложка карточек/форм + тень */
[data-theme="light"] .home-product-card,
[data-theme="light"] .home-step,
[data-theme="light"] .home-small-card,
[data-theme="light"] .auth-card,
[data-theme="light"] .survey-card,
[data-theme="light"] .survey-question-card,
[data-theme="light"] .question-card,
[data-theme="light"] .complete-card,
[data-theme="light"] .lk-card,
[data-theme="light"] .lk-tile,
[data-theme="light"] .report-card,
[data-theme="light"] .article-card,
[data-theme="light"] .article-card-inner,
[data-theme="light"] .article-related,
[data-theme="light"] .paywall-card,
[data-theme="light"] .paywall-promo-row,
[data-theme="light"] .max-auth-panel,
[data-theme="light"] .admin-card,
[data-theme="light"] .tpl-card {
  background: #ffffff;
  border: 1px solid rgba(14,17,19,.10);
  box-shadow: 0 4px 14px rgba(14,17,19,.06), 0 1px 3px rgba(14,17,19,.04);
}
[data-theme="light"] .home-product-card:hover,
[data-theme="light"] .home-small-card:hover,
[data-theme="light"] .article-card:hover,
[data-theme="light"] .lk-card:hover,
[data-theme="light"] .tpl-card:hover {
  border-color: rgba(238,125,0,.45);
  box-shadow: 0 10px 28px rgba(14,17,19,.10), 0 0 0 1px rgba(238,125,0,.18) inset;
}

/* Form fields — чёткий контур */
[data-theme="light"] input[type="text"],
[data-theme="light"] input[type="email"],
[data-theme="light"] input[type="search"],
[data-theme="light"] input[type="number"],
[data-theme="light"] input[type="password"],
[data-theme="light"] input[type="tel"],
[data-theme="light"] input[type="url"],
[data-theme="light"] textarea,
[data-theme="light"] select {
  background: #ffffff;
  border: 1px solid rgba(14,17,19,.18);
  color: var(--text);
  box-shadow: inset 0 1px 2px rgba(14,17,19,.04);
}
[data-theme="light"] input:focus,
[data-theme="light"] textarea:focus,
[data-theme="light"] select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(238,125,0,.15);
}

/* Footer тоже отделить */
[data-theme="light"] .site-footer,
[data-theme="light"] .footer-recent,
[data-theme="light"] .footer-legal {
  background: rgba(247,248,250,.85);
  border-top: 1px solid rgba(14,17,19,.10);
}

/* ============================================================
   THEME SWITCHER v1.4 — admin_balance hardcoded inline overrides
   admin_balance.php uses inline color: rgba(255,255,255,*) and
   class-scoped .bal-form input[type=text] with hardcoded #fff —
   we override all of that for light theme here.   (2026-04-27)
   ============================================================ */

/* Inline white text → dark for any element style */
[data-theme="light"] [style*="color:rgba(255,255,255"],
[data-theme="light"] [style*="color: rgba(255,255,255"],
[data-theme="light"] [style*="color:#fff"],
[data-theme="light"] [style*="color: #fff"],
[data-theme="light"] [style*="color:#e0e0e0"],
[data-theme="light"] [style*="color: #e0e0e0"] {
  color: var(--text) !important;
}

/* Inline dark backgrounds → light surface */
[data-theme="light"] [style*="background:rgba(0,0,0"],
[data-theme="light"] [style*="background: rgba(0,0,0"],
[data-theme="light"] [style*="background:#0f1217"],
[data-theme="light"] [style*="background: #0f1217"] {
  background: rgba(14,17,19,.04) !important;
  border-color: var(--border) !important;
}

/* Balance page: form labels + inputs hardcoded with dark theme */
[data-theme="light"] .admin-balance h1,
[data-theme="light"] .admin-balance h3,
[data-theme="light"] .admin-balance h2 { color: var(--text) !important; }
[data-theme="light"] .bal-form label { color: var(--text-2) !important; }
[data-theme="light"] .bal-form input[type="text"],
[data-theme="light"] .bal-form select,
[data-theme="light"] .bal-form input[type="date"],
[data-theme="light"] .bal-form input[type="number"] {
  background: #ffffff !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
[data-theme="light"] .bal-form input:focus,
[data-theme="light"] .bal-form select:focus { border-color: var(--accent) !important; }

[data-theme="light"] .bal-sub             { color: var(--text-2) !important; }
[data-theme="light"] .bal-table td:first-child { color: var(--text-2) !important; }
[data-theme="light"] .bal-bar-val         { color: var(--text-2) !important; }
[data-theme="light"] .bal-bar-label       { color: var(--text-3) !important; }
[data-theme="light"] .bal-history th      { color: var(--text-3) !important; border-bottom-color: var(--border-l) !important; }
[data-theme="light"] .bal-history tr:nth-child(odd) td { background: rgba(14,17,19,.02) !important; }
[data-theme="light"] .bal-mflow           { background: #ffffff !important; border-color: var(--border) !important; }
[data-theme="light"] .bal-mflow--income   { background: rgba(60,180,90,.06) !important; border-color: rgba(60,180,90,.40) !important; }
[data-theme="light"] .bal-mflow--cost     { border-color: rgba(220,60,60,.30) !important; }
[data-theme="light"] .bal-mflow--profit   { background: linear-gradient(140deg, rgba(238,125,0,.18), rgba(238,125,0,.04)) !important; border-color: rgba(238,125,0,.55) !important; }
[data-theme="light"] .bal-mflow-label,
[data-theme="light"] .bal-mflow-sub,
[data-theme="light"] .bal-mstat-label,
[data-theme="light"] .bal-typebox-label,
[data-theme="light"] .bal-typebox-sub     { color: var(--text-3) !important; }
[data-theme="light"] .bal-mflow-val,
[data-theme="light"] .bal-mstat-val,
[data-theme="light"] .bal-typebox-val     { color: var(--text) !important; }

/* Granularity toggle (день/неделя/месяц/год) */
[data-theme="light"] .bal-gran-toggle     { background: rgba(14,17,19,.04) !important; border-color: var(--border-l) !important; }
[data-theme="light"] .bal-gran-btn        { color: var(--text-3) !important; }
[data-theme="light"] .bal-gran-btn:hover  { color: var(--text) !important; }
[data-theme="light"] .bal-gran-btn--active{ color: #fff !important; background: var(--accent) !important; }

/* Bal-tooltip (chart hover) */
[data-theme="light"] #bal-tooltip {
  background: #ffffff !important;
  color: var(--text) !important;
  border-color: var(--accent) !important;
  box-shadow: 0 8px 24px rgba(14,17,19,.12) !important;
}

/* Tip-popup over balance hints */
[data-theme="light"] .tip-popup           { background: #ffffff !important; color: var(--text) !important; border-color: var(--border) !important; }
[data-theme="light"] .tip-popup p,
[data-theme="light"] .tip-popup em        { color: var(--text-2) !important; }

/* Articles page: inline thead colors, faq-index */
[data-theme="light"] .article-meta        { color: var(--text-3) !important; }

/* Auth & survey paywall white-on-rgba(255,255,255) inputs (already covered upstream — safety net) */
[data-theme="light"] .auth-card input,
[data-theme="light"] .auth-card textarea  { background: #ffffff !important; color: var(--text) !important; border-color: var(--border) !important; }

/* ============================================================
   THEME SWITCHER v1.5 — admin_balance hex inline + bal-mflow colors
   Fixes light-on-light text in promo cards / consumption flow.
   (2026-04-27 part 2)
   ============================================================ */

/* Hex inline colors used in admin_balance.php that vanish on white */
[data-theme="light"] [style*="color:#67e08b"],
[data-theme="light"] [style*="color: #67e08b"] { color: #15803d !important; }   /* green   → dark green */
[data-theme="light"] [style*="color:#ff8b8b"],
[data-theme="light"] [style*="color: #ff8b8b"] { color: #b91c1c !important; }   /* pink    → dark red */
[data-theme="light"] [style*="color:#ffb067"],
[data-theme="light"] [style*="color: #ffb067"] { color: #c96b00 !important; }   /* peach   → dark orange */
[data-theme="light"] [style*="color:#ffb6a0"],
[data-theme="light"] [style*="color: #ffb6a0"] { color: #b91c1c !important; }   /* peach   → dark red */
[data-theme="light"] [style*="color:#7da7ff"],
[data-theme="light"] [style*="color: #7da7ff"] { color: #1d4ed8 !important; }   /* light blue → dark blue */

/* bal-mflow: typography + accent colors for income/cost/profit */
[data-theme="light"] .bal-mflow--income .bal-mflow-val { color: #15803d !important; }
[data-theme="light"] .bal-mflow--cost   .bal-mflow-val { color: #b91c1c !important; }
[data-theme="light"] .bal-mflow--profit .bal-mflow-val { color: #c96b00 !important; }

/* Big top number (Credit balance) and orange peach alert */
[data-theme="light"] .bal-big   { color: #c96b00 !important; }
[data-theme="light"] .bal-alert { color: #b91c1c !important; background: rgba(220,80,40,.08) !important; border-color: rgba(220,80,40,.45) !important; }

/* Master код card has custom inline rgba blue — we explicitly cover its parents */
[data-theme="light"] .bal-mflow[style*="rgba(150,150,255"] {
  background: rgba(96,165,250,.06) !important;
  border-color: rgba(96,165,250,.40) !important;
}

/* Table cells inside .bal-history that explicitly set rgba white (already caught
   by inline regex catch, this just doubles the contrast) */
[data-theme="light"] .bal-history td,
[data-theme="light"] .bal-history th { color: var(--text) !important; }

/* Promo стат-таблица — generic table headers and cells — make sure they're dark */
[data-theme="light"] .admin-balance table thead th { color: var(--text-2) !important; }
[data-theme="light"] .admin-balance table tbody td { color: var(--text) !important; }

/* "OK" button in date-range submit (inline style:#ee7d00 + white) — keep as is — already legible */

/* Ensure bal-card itself wins against later inline-defined .bal-card */
[data-theme="light"] .bal-card,
[data-theme="light"] .bal-card--accent {
  background: #ffffff !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
[data-theme="light"] .bal-card--accent {
  background: linear-gradient(140deg, rgba(238,125,0,.08), rgba(238,125,0,.02)) !important;
  border-color: rgba(238,125,0,.45) !important;
}

/* .bal-table cells */
[data-theme="light"] .bal-table td:first-child { color: var(--text-2) !important; }
[data-theme="light"] .bal-table td             { border-bottom-color: var(--border-l) !important; color: var(--text) !important; }

/* Inline rgba(120,140,255,*) (Master код background) */
[data-theme="light"] [style*="rgba(120,140,255"] {
  background: rgba(96,165,250,.06) !important;
}
[data-theme="light"] [style*="rgba(150,150,255"] {
  border-color: rgba(96,165,250,.45) !important;
}

/* ============================================================
   THEME SWITCHER v1.6 — SVG chart grid + history zebra
   Light-theme legibility for line chart, history table.
   (2026-04-27 part 3)
   ============================================================ */

/* SVG line chart: grid lines and Y/X labels are stroked with
   rgba(255,255,255,*) which becomes invisible on light. Override
   via CSS stroke / fill on the elements. */
[data-theme="light"] .bal-linechart line   { stroke: rgba(14,17,19,.10) !important; }
[data-theme="light"] .bal-linechart text   { fill:   rgba(14,17,19,.55) !important; }
[data-theme="light"] .bal-linechart circle { stroke: #ffffff !important; }

/* Bal-history table: keep zebra striping in light theme too */
[data-theme="light"] .bal-history th        { color: var(--text-2) !important; border-bottom: 1px solid var(--border) !important; background: rgba(14,17,19,.03) !important; }
[data-theme="light"] .bal-history td        { color: var(--text) !important; }
[data-theme="light"] .bal-history tr:nth-child(odd) td  { background: rgba(14,17,19,.03) !important; }
[data-theme="light"] .bal-history tr:nth-child(even) td { background: #ffffff !important; }

/* Bal-bars (Расход по месяцам): без сетки (был ложный фикс — пользователь
   имел в виду сетку SVG-чарта Потребление по дням, не bar-chart). */

/* Hard double-down on Чистая прибыль / Убыток value visibility */
[data-theme="light"] .bal-mflow--profit .bal-mflow-val,
[data-theme="light"] [class*="bal-mflow--profit"] .bal-mflow-val { color: #c96b00 !important; }
[data-theme="light"] .bal-mflow--cost   .bal-mflow-val { color: #b91c1c !important; }
[data-theme="light"] .bal-mflow--income .bal-mflow-val { color: #15803d !important; }

/* Bal-mflow gradient cards too pale in light — strengthen */
[data-theme="light"] .bal-mflow--profit {
  background: linear-gradient(140deg, rgba(238,125,0,.14), rgba(238,125,0,.04)) !important;
  border-color: rgba(238,125,0,.55) !important;
}

/* "OK" inline submit button in date range — stays orange (not affected) */

/* Buttons — secondary submit and granularity toggles in promo region */
[data-theme="light"] .bal-form button[type="submit"],
[data-theme="light"] .bal-card button[type="submit"]:not(.btn-secondary):not(.btn-ghost) {
  color: #ffffff !important;
}

/* General fallback: any text descended from .bal-card that isn't already styled
   should fall to var(--text) — guarantees no white-on-white. */
[data-theme="light"] .bal-card,
[data-theme="light"] .bal-card * { color: inherit; }
[data-theme="light"] .bal-card h1,
[data-theme="light"] .bal-card h2,
[data-theme="light"] .bal-card h3,
[data-theme="light"] .bal-card h4,
[data-theme="light"] .bal-card p:not([style*="color"]),
[data-theme="light"] .bal-card td,
[data-theme="light"] .bal-card th,
[data-theme="light"] .bal-card div:not([class*="--profit"]):not([class*="--cost"]):not([class*="--income"]) {
  color: var(--text);
}

/* ============================================================
   THEME SWITCHER v1.7 — усилить сетку SVG-чарта "Потребление по дням"
   В тёмной теме сетка горизонтальных линий рисуется stroke="rgba(255,255,255,.06)" — она
   тонко видна. В светлой теме CSS-override (v1.6) дал .10 прозрачности — может быть мало.
   Делаем сетку чуть контрастнее + различаем горизонтальные (4 линии) и вертикальные (6 линий)
   через nth-child. И помечаем подписи Y/X более чётко.
   (2026-04-27 part 4)
   ============================================================ */
[data-theme="light"] .bal-linechart line { stroke: rgba(14,17,19,.14) !important; stroke-width: 1 !important; }
[data-theme="light"] .bal-linechart text { fill:   rgba(14,17,19,.65) !important; font-weight: 500; }
[data-theme="light"] .bal-linechart circle { stroke: #ffffff !important; stroke-width: 1.5 !important; }

/* Маркер легенды (точка цвета линии) — в light оставляем сами цвета линий, но
   круги/точки на чарте обводим белым контуром, чтобы они выделялись на сетке. */

/* ============================================================
   THEME SWITCHER v1.8 — фон SVG-чарта Потребление по дням/неделям
   В тёмной — rgba(0,0,0,.15) почти не виден (тёмное на тёмном).
   В светлой — это заметная серая плашка. Делаем еле заметным серым.
   (2026-04-27 part 5)
   ============================================================ */
[data-theme="light"] .bal-linechart {
  background: rgba(14,17,19,.025) !important;  /* ~2.5% — еле заметный серый */
  border-radius: 8px !important;
}

/* ============================================================
   THEME SWITCHER v1.9 — оставшиеся непокрытые места по аудиту
   _admin_tips.php / admin_articles_seo.php / admin_crm.php (kanban)
   admin_balance.php (.tip-popup code) / auth.php / home.php
   (2026-04-28)
   ============================================================ */

/* ── _admin_tips.php — модалки подсказок над кнопками админки ── */
[data-theme="light"] .tip-modal,
[data-theme="light"] .tip-msg {
  background: #ffffff !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
[data-theme="light"] .tip-modal h3,
[data-theme="light"] .tip-msg h3,
[data-theme="light"] .tip-msg--error h3 { color: var(--text) !important; }
[data-theme="light"] .tip-msg p,
[data-theme="light"] .tip-msg strong   { color: var(--text-2) !important; }
[data-theme="light"] .tip-msg-close    { color: var(--text-3) !important; }
[data-theme="light"] .tip-msg-close:hover { color: var(--text) !important; }
[data-theme="light"] .tip-modal-backdrop,
[data-theme="light"] .tip-msg-backdrop { background: rgba(14,17,19,.45) !important; }

/* ── admin_articles_seo.php — popovers, inputs, модалки ── */
[data-theme="light"] .rj-menu-wrapper,
[data-theme="light"] .rj-popover,
[data-theme="light"] .lk-mini__input-wrap,
[data-theme="light"] .seo-modal {
  background: #ffffff !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 8px 24px rgba(14,17,19,.10) !important;
}
[data-theme="light"] .rj-menu-wrapper *,
[data-theme="light"] .rj-popover *      { color: var(--text); }
[data-theme="light"] .rj-input,
[data-theme="light"] .lk-mini__input    {
  background: #ffffff !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
}
[data-theme="light"] .rj-input::placeholder,
[data-theme="light"] .lk-mini__input::placeholder { color: var(--text-3) !important; }

/* ── admin_crm.php — кастомный UI карточки юзера + kanban ── */
[data-theme="light"] .cu-h,
[data-theme="light"] .cu-v        { color: var(--text) !important; }
[data-theme="light"] .cu-k,
[data-theme="light"] .cu-tbl th   { color: var(--text-3) !important; }
[data-theme="light"] .cu-tbl td   { color: var(--text) !important; }

[data-theme="light"] .kan-card-name      { color: var(--text) !important; }
[data-theme="light"] .kan-card-chan--max,
[data-theme="light"] .kan-card-chan--tg  { color: var(--accent) !important; }
[data-theme="light"] .kan-flag--block,
[data-theme="light"] .kan-flag--err      { color: #b91c1c !important; }
[data-theme="light"] .kan-flag--success,
[data-theme="light"] .kan-flag--ok       { color: #15803d !important; }

/* CRM help-popup и broadcast с дарк-кодом + оранжевым ── */
[data-theme="light"] .crm-help-popup,
[data-theme="light"] .crm-help-popup *   { color: var(--text); }
[data-theme="light"] .crm-help-popup strong,
[data-theme="light"] .crm-help-popup code,
[data-theme="light"] .crm-broadcast-code,
[data-theme="light"] .tip-popup code     {
  background: rgba(238,125,0,.08) !important;
  color: #c25e00 !important;
  border: 1px solid rgba(238,125,0,.20) !important;
  padding: 1px 5px;
  border-radius: 3px;
}

/* ── auth.php — faded white promo span ── */
[data-theme="light"] .auth-card span[style*="rgba(255,255,255"] {
  color: var(--text-3) !important;
}

/* ── home.php — pastel orange link ── */
[data-theme="light"] .home-link-primary  { color: var(--accent-d) !important; }
[data-theme="light"] .home-link-primary:hover { color: var(--accent) !important; }

/* ── Финальный каноничный override: любой <code> элемент во всём админ-UI
       с тёмным фоном + светлым текстом — переключаем на светлую плашку. ── */
[data-theme="light"] code,
[data-theme="light"] pre {
  background: rgba(14,17,19,.05);
  color: var(--text);
  border: 1px solid var(--border-l);
}

/* ── Generic safety: любые inline styles с rgba(255,255,255,.2-.7) на элементах
       внутри admin-* страниц — приглушённый тёмный текст ── */
[data-theme="light"] .admin-balance [style*="rgba(255,255,255"],
[data-theme="light"] .admin-crm     [style*="rgba(255,255,255"],
[data-theme="light"] .admin-articles [style*="rgba(255,255,255"],
[data-theme="light"] .admin-dashboard [style*="rgba(255,255,255"] {
  color: var(--text-2) !important;
}

/* ═══════════════════════════════════════════════════════════════
   LIGHT THEME · v2.0 — admin_articles_list/edit + admin_dashboard
   2026-04-28: после повторного аудита — закрываем .admin-page,
   .admin-section, .admin-form (labels/inputs), .memo-card вложенный
   текст, .admin-hint, .admin-alert.
   ═══════════════════════════════════════════════════════════════ */

/* admin_dashboard.php использует .admin-section вместо .admin-page */
[data-theme="light"] .admin-section {
  color: var(--text);
}
[data-theme="light"] .admin-section h1,
[data-theme="light"] .admin-section h2,
[data-theme="light"] .admin-section h3,
[data-theme="light"] .admin-section h4 { color: var(--text); }

/* admin-hint (приглушённая подсказка под заголовком) */
[data-theme="light"] .admin-hint {
  color: var(--text-2);
}

/* admin-alert (warning плашка) */
[data-theme="light"] .admin-alert,
[data-theme="light"] .admin-alert--warn {
  color: var(--text);
}

/* admin-form: лейблы, инпуты, селекты, textarea */
[data-theme="light"] .admin-form label {
  color: var(--text-2);
}
[data-theme="light"] .admin-form label small {
  color: var(--text-3);
}
[data-theme="light"] .admin-form input[type="text"],
[data-theme="light"] .admin-form input[type="datetime-local"],
[data-theme="light"] .admin-form input[type="number"],
[data-theme="light"] .admin-form select,
[data-theme="light"] .admin-form textarea {
  background: rgba(14,17,19,.04);
  border: 1px solid var(--border-l);
  color: var(--text);
}
[data-theme="light"] .admin-form input::placeholder,
[data-theme="light"] .admin-form textarea::placeholder {
  color: var(--text-3);
}
[data-theme="light"] .admin-form input:focus,
[data-theme="light"] .admin-form select:focus,
[data-theme="light"] .admin-form textarea:focus {
  border-color: var(--accent);
}

/* memo-card → внутри уже стилизовано в v1.x, но вложенные h4/p ещё с #fff/.75 */
[data-theme="light"] .memo-card h4 {
  color: var(--text);
}
[data-theme="light"] .memo-card p {
  color: var(--text-2);
}
[data-theme="light"] .memo-card h4 code {
  background: rgba(238,125,0,.12);
  color: var(--accent-d);
}

/* KPI-карточки на дашборде (kpi-row, kpi-card) */
[data-theme="light"] .kpi-card {
  background: rgba(14,17,19,.025);
  border: 1px solid var(--border-l);
  color: var(--text);
}
[data-theme="light"] .kpi-num { color: var(--text); }
[data-theme="light"] .kpi-lbl { color: var(--text-3); }

/* Расширяем generic safety net на .admin-page и .admin-section */
[data-theme="light"] .admin-page [style*="rgba(255,255,255"],
[data-theme="light"] .admin-section [style*="rgba(255,255,255"] {
  color: var(--text-2) !important;
}

/* admin_articles_list: td-when (мелкая дата в строке таблицы) */
[data-theme="light"] .td-when { color: var(--text-3); }


/* ============================================================
   LIGHT THEME — defensive audit overrides (2026-04-28)
   Catches every hardcoded white text that pre-dates the light theme:
   - inline style="color:#fff" / "color:rgba(255,255,255,...)" via attr selector
   - legacy class rules (.article-page, .admin-table, .admin-form, etc.)
   - inline rules in layout.php <style> block (.site-header-link)
   Rule: dark text on light pages, dark text on light buttons.
   ============================================================ */

/* 1. Inline-style sweep — beats inline because of !important */
[data-theme="light"] [style*="color:#fff"],
[data-theme="light"] [style*="color: #fff"],
[data-theme="light"] [style*="color:white"],
[data-theme="light"] [style*="color: white"],
[data-theme="light"] [style*="color:rgba(255,255,255,.85)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.82)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.8)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.78)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.75)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.72)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.7)"] {
  color: var(--text) !important;
}
[data-theme="light"] [style*="color:rgba(255,255,255,.65)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.6)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.55)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.5)"],
[data-theme="light"] [style*="color: rgba(255,255,255,.55)"],
[data-theme="light"] [style*="color: rgba(255,255,255,.5)"] {
  color: var(--text-2) !important;
}
[data-theme="light"] [style*="color:rgba(255,255,255,.45)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.4)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.35)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.3)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.28)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.25)"],
[data-theme="light"] [style*="color:rgba(255,255,255,.2)"] {
  color: var(--text-3) !important;
}

/* 2. Article public page (.article-page) — hardcoded white at lines 2441+ */
[data-theme="light"] .article-page h1,
[data-theme="light"] .article-page h2,
[data-theme="light"] .article-page h3 { color: var(--text); }
[data-theme="light"] .article-page p,
[data-theme="light"] .article-page li { color: var(--text-2); }
[data-theme="light"] .article-lead { color: var(--text); background: rgba(238,125,0,.08); }
[data-theme="light"] .article-meta,
[data-theme="light"] .article-meta time,
[data-theme="light"] .breadcrumbs { color: var(--text-3); }
[data-theme="light"] .breadcrumbs a { color: var(--text-2); }
[data-theme="light"] .breadcrumbs a:hover { color: var(--accent); }
[data-theme="light"] .faq-item summary { color: var(--text); }
[data-theme="light"] .faq-item p { color: var(--text-2); }
[data-theme="light"] .article-cta { background: rgba(238,125,0,.06); border-color: rgba(238,125,0,.20); }
[data-theme="light"] .article-cta h3 { color: var(--text); }
[data-theme="light"] .article-cta p { color: var(--text-2); }
[data-theme="light"] .article-anchor-line { color: var(--text) !important; background: rgba(238,125,0,.08) !important; }

/* 3. Article index / list pages */
[data-theme="light"] .article-index-link h3 { color: var(--text); }
[data-theme="light"] .article-index-link p  { color: var(--text-2); }
[data-theme="light"] .article-index-link time,
[data-theme="light"] .article-index-footer time { color: var(--text-3); }

/* 4. Admin tables / forms */
[data-theme="light"] .admin-table th { color: var(--text-3); }
[data-theme="light"] .admin-table td { color: var(--text); }
[data-theme="light"] .admin-table td:first-child { color: var(--text-3); }
[data-theme="light"] .admin-form label { color: var(--text-2); }
[data-theme="light"] .admin-form label small { color: var(--text-3); }
[data-theme="light"] .admin-hint,
[data-theme="light"] .gen-status,
[data-theme="light"] .inline-date,
[data-theme="light"] .admin-alert { color: var(--text-2); }

/* 5. Templates / memos / support modal */
[data-theme="light"] .tpl-title { color: var(--text); }
[data-theme="light"] .tpl-slug,
[data-theme="light"] .memo-hint { color: var(--text-3); }
[data-theme="light"] .memo-card { background: rgba(238,125,0,.04); color: var(--text); }
[data-theme="light"] .memo-card h4 { color: var(--text); }
[data-theme="light"] .memo-card p { color: var(--text-2); }
[data-theme="light"] .support-modal__hint,
[data-theme="light"] .support-field > span,
[data-theme="light"] .support-status { color: var(--text-2); }

/* 6. Site header — kill inline white from layout.php */
[data-theme="light"] .site-header-link        { color: rgba(14,17,19,.72) !important; }
[data-theme="light"] .site-header-link:hover  { color: var(--text) !important; background: rgba(14,17,19,.04) !important; }
[data-theme="light"] .site-header-link--active{ color: var(--accent-d) !important; background: rgba(238,125,0,.10) !important; }
[data-theme="light"] .site-header-cta         { color: var(--accent-d) !important; background: rgba(238,125,0,.10) !important; border-color: rgba(238,125,0,.45) !important; }
[data-theme="light"] .site-header-cta:hover   { background: rgba(238,125,0,.18) !important; }

/* 7. Footer */
[data-theme="light"] footer[style] { color: var(--text-3) !important; border-top-color: var(--border-l) !important; }

/* 8. Survey / paywall / auth — hint text */
[data-theme="light"] .auth-last-used,
[data-theme="light"] .paywall-hint,
[data-theme="light"] #paywall-poll-status { color: var(--text-3) !important; }
[data-theme="light"] .home-section-lead { color: var(--text-2) !important; }

/* 9. Buttons — defensive: any .btn-ghost / .btn-secondary inside light section
      stays dark-text + light-bg even if a later dark-only rule fires. */
[data-theme="light"] .btn-ghost,
[data-theme="light"] a.btn-ghost { color: var(--text) !important; border-color: rgba(15,20,30,.22) !important; background: rgba(255,255,255,.7) !important; }
[data-theme="light"] .btn-ghost:hover,
[data-theme="light"] a.btn-ghost:hover { color: var(--accent-d) !important; background: rgba(238,125,0,.06) !important; border-color: var(--accent) !important; }
[data-theme="light"] .btn-secondary { color: var(--text) !important; border-color: rgba(15,20,30,.22) !important; }
[data-theme="light"] .btn-secondary:hover { color: var(--accent-d) !important; border-color: var(--accent) !important; background: rgba(238,125,0,.06) !important; }

/* 10. Promo / payment CTA-like white-text exceptions
       (.btn-primary stays orange-bg + white-text — explicitly DO NOT override) */
/* ничего */

/* 11. Tooltip box (admin) — keep dark bg + white text intentionally */
[data-theme="light"] .tip-pop { color: #fff !important; }
[data-theme="light"] #bal-tooltip { color: #fff !important; }

/* 12. Inline-styled `color:#fff` button intentionally (admin OK button) — exclude */
[data-theme="light"] button[style*="background:#ee7d00"][style*="color:#fff"] { color: #fff !important; }


/* ============================================================
   LIGHT THEME — CRM (admin_crm.php) extra overrides 2026-04-28
   Покрывает inline <style> блок и JS-вставленный HTML, которые
   старше светлой темы.
   ============================================================ */

/* User-detail modal — кружочки/строчки на светлом фоне */
[data-theme="light"] .cu-block {
  background: rgba(238,125,0,.04) !important;
  border: 1px solid rgba(15,20,30,.06) !important;
}
[data-theme="light"] .cu-row + .cu-row { border-top-color: rgba(15,20,30,.06) !important; }
[data-theme="light"] .cu-h { border-top-color: rgba(15,20,30,.10) !important; color: var(--text) !important; }
[data-theme="light"] .cu-tbl th { color: var(--text-3) !important; border-bottom-color: rgba(15,20,30,.12) !important; }
[data-theme="light"] .cu-tbl td { color: var(--text) !important; border-bottom-color: rgba(15,20,30,.06) !important; }
[data-theme="light"] .cu-tbl-q tr:nth-child(odd) td { background: rgba(238,125,0,.03) !important; }
[data-theme="light"] .cu-tbl tr:hover td { background: rgba(238,125,0,.06) !important; }
[data-theme="light"] .cu-sess { background: rgba(238,125,0,.04) !important; }
[data-theme="light"] .cu-sess summary { color: var(--text-2) !important; }
[data-theme="light"] .cu-sess summary:hover,
[data-theme="light"] .cu-sess[open] summary { color: var(--accent-d) !important; }

/* Stage-info modal halves */
[data-theme="light"] .si-half-title { color: var(--text) !important; }
[data-theme="light"] .si-half-body--empty p:first-child strong { color: var(--accent-d) !important; }

/* Kanban карточки — meta-строка с источником входа (TG / MAX / created_at) */
[data-theme="light"] .kan-card-meta { color: var(--text-2) !important; }
[data-theme="light"] .kan-card-name { color: var(--text) !important; }
[data-theme="light"] .kan-col-name  { color: var(--text) !important; }
[data-theme="light"] .kan-card { background: #fff !important; border-color: rgba(15,20,30,.10) !important; }
[data-theme="light"] .kan-card:hover { background: rgba(238,125,0,.04) !important; }
[data-theme="light"] .kan-card input[type="checkbox"] + .kan-card-name { color: var(--text) !important; }

/* Composer — disabled / hint / счётчик */
[data-theme="light"] .composer-hint { color: var(--text-3) !important; }
[data-theme="light"] .composer-rcp-count { color: var(--accent-d) !important; }
[data-theme="light"] .composer-btn-equal:disabled,
[data-theme="light"] .composer-btn-send:disabled {
  background: rgba(15,20,30,.04) !important;
  border-color: rgba(15,20,30,.10) !important;
  color: rgba(15,20,30,.30) !important;
}
[data-theme="light"] .composer-status--ok  { color: #15803d !important; }
[data-theme="light"] .composer-status--err { color: #b91c1c !important; }
[data-theme="light"] .composer-stage-chip { color: var(--text-2) !important; }
[data-theme="light"] .composer-stage-chip:hover { background: rgba(238,125,0,.06) !important; }

/* Композер: оранжевая sendbar остаётся оранжевой, но текст внутри читаемый */
[data-theme="light"] .composer-sendbar .composer-rcp-count { color: var(--accent-d) !important; }

/* JS-вставленные ячейки в модалке истории (template literal с inline style):
   td style="...color:#fff" — уже ловится attribute selector, но добавим явное. */
[data-theme="light"] .crm-history-modal-card td[style*="color:#fff"] { color: var(--text) !important; }
[data-theme="light"] .crm-history-modal-card td[style*="color:rgba(255,255,255"] { color: var(--text-2) !important; }
[data-theme="light"] .crm-history-modal-card .cu-row span[style*="color:#ff8b8b"] { color: #b91c1c !important; }
[data-theme="light"] .crm-history-modal-card .cu-row span[style*="color:#ffb067"] { color: var(--accent-d) !important; }

/* «История» / «Шаблоны» поп-ап у композера — header buttons */
[data-theme="light"] .crm-history-modal-card .crm-history-close { color: var(--text-2) !important; }
[data-theme="light"] .crm-history-modal-card .crm-history-close:hover { color: var(--accent-d) !important; }

/* В админ-странице любые мелкие вспомогательные h4 / small с inline color:#fff */
[data-theme="light"] h4[style*="color:#fff"],
[data-theme="light"] h4[style*="color: #fff"],
[data-theme="light"] small[style*="color:rgba(255,255,255"] { color: var(--text) !important; }

/* ============================================================
   Sprint P (2026-05-01): UX анкеты — radio / checkbox / select
   ============================================================ */

.answer-host { width: 100%; }

.radio-group, .checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.choice-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 18px;
  background: var(--bg-2, #1a1d24);
  border: 2px solid var(--bg-3, #2a2e38);
  border-radius: 12px;
  cursor: pointer;
  transition: all .15s ease;
  min-height: 52px;
  position: relative;
}
.choice-item:hover {
  border-color: var(--accent, #ff6a00);
  background: var(--bg-3, #2a2e38);
}
.choice-item input[type=radio],
.choice-item input[type=checkbox] {
  width: 20px;
  height: 20px;
  margin: 0;
  flex-shrink: 0;
  accent-color: var(--accent, #ff6a00);
  cursor: pointer;
  margin-top: 1px;
}
.choice-box {
  font-size: 15px;
  color: var(--text-1, #fff);
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
}
.choice-item:has(input:checked) {
  border-color: var(--accent, #ff6a00);
  background: rgba(255, 106, 0, 0.08);
}
.choice-item:has(input:checked) .choice-box {
  color: var(--accent, #ff6a00);
  font-weight: 500;
}
.choice-other-input {
  width: 100%;
  margin-top: 8px;
  padding: 10px 14px;
  background: var(--bg-1, #0e1014);
  border: 1px solid var(--bg-3, #2a2e38);
  border-radius: 8px;
  color: var(--text-1, #fff);
  font-size: 15px;
  outline: none;
}
.choice-other-input:focus { border-color: var(--accent, #ff6a00); }

.answer-select {
  width: 100%;
  padding: 14px 18px;
  background: var(--bg-2, #1a1d24);
  border: 2px solid var(--bg-3, #2a2e38);
  border-radius: 12px;
  color: var(--text-1, #fff);
  font-size: 16px;
  cursor: pointer;
  outline: none;
  appearance: none;
  background-image: url(data:image/svg+xml,%3Csvg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox=0 0 24 24 fill=none stroke=%23999 stroke-width=2.5%3E%3Cpath d=M6 9l6 6 6-6/%3E%3C/svg%3E);
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 44px;
}
.answer-select:focus { border-color: var(--accent, #ff6a00); }

[data-theme=light] .choice-item {
  background: #fff;
  border-color: #e5e7eb;
}
[data-theme=light] .choice-item:hover {
  border-color: var(--accent, #ff6a00);
  background: #fafbff;
}
[data-theme=light] .choice-item:has(input:checked) {
  border-color: var(--accent, #ff6a00);
  background: rgba(255, 106, 0, 0.04);
}
[data-theme=light] .choice-box { color: #1c2024; }
[data-theme=light] .answer-select {
  background-color: #fff;
  border-color: #e5e7eb;
  color: #1c2024;
}
[data-theme=light] .choice-other-input {
  background: #fff;
  border-color: #e5e7eb;
  color: #1c2024;
}

/* Sprint P expansion: range slider + number input */
.range-group { display: flex; flex-direction: column; gap: 12px; padding: 8px 4px; }
.answer-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  background: var(--bg-3, #2a2e38);
  border-radius: 4px;
  outline: none;
  cursor: pointer;
}
.answer-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 28px; height: 28px;
  background: var(--accent, #ff6a00);
  border-radius: 50%;
  cursor: pointer;
  border: 4px solid var(--bg-1, #0e1014);
  box-shadow: 0 4px 12px rgba(255,106,0,0.4);
  transition: transform 0.15s;
}
.answer-range::-webkit-slider-thumb:hover { transform: scale(1.15); }
.answer-range::-moz-range-thumb {
  width: 28px; height: 28px;
  background: var(--accent, #ff6a00);
  border-radius: 50%;
  cursor: pointer;
  border: 4px solid var(--bg-1, #0e1014);
}
.range-display {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 4px;
  font-size: 32px;
  font-weight: 700;
  color: var(--accent, #ff6a00);
}
.range-display .range-unit {
  font-size: 18px;
  opacity: 0.8;
}
.range-display--hidden {
  display: none;
}
.range-bounds {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-3, #999);
  padding: 0 4px;
}
.range-group--balance .range-bounds {
  gap: 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--text-1, #fff);
}
.range-group--balance .range-bounds span {
  max-width: 48%;
}
.range-group--balance .range-bounds span:last-child {
  text-align: right;
}

.number-group {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg-2, #1a1d24);
  border: 2px solid var(--bg-3, #2a2e38);
  border-radius: 12px;
  padding: 4px 18px 4px 4px;
}
.number-group:focus-within { border-color: var(--accent, #ff6a00); }
.answer-number {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 14px 18px;
  font-size: 20px;
  color: var(--text-1, #fff);
  font-weight: 500;
}
.number-unit {
  font-size: 16px;
  color: var(--text-3, #999);
  white-space: nowrap;
}
[data-theme="light"] .answer-range { background: #e5e7eb; }
[data-theme="light"] .answer-range::-webkit-slider-thumb { border-color: #fff; }
[data-theme="light"] .number-group { background: #fff; border-color: #e5e7eb; }
[data-theme="light"] .answer-number { color: #1c2024; }

/* Sprint AB-row-layout (2026-05-01): radio/checkbox в строку (если коротких опций) */
.radio-group, .checkbox-group {
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 10px;
}
.radio-group .choice-item,
.checkbox-group .choice-item {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
}
@media (max-width: 600px) {
  .radio-group .choice-item,
  .checkbox-group .choice-item { flex: 1 1 100%; min-width: 0; }
}

/* Sprint AB-select-color (2026-05-01): фирменная dark тема для option в выпадающем */
.answer-select option {
  background: #1a1d24;
  color: #fff;
  padding: 10px 14px;
}
.answer-select option:hover,
.answer-select option:checked {
  background: rgba(255, 106, 0, 0.15);
  color: #ff6a00;
}
[data-theme="light"] .answer-select option {
  background: #fff;
  color: #1c2024;
}
[data-theme="light"] .answer-select option:hover,
[data-theme="light"] .answer-select option:checked {
  background: rgba(255, 106, 0, 0.08);
  color: #ff6a00;
}

/* ============================================================
   Sprint AB-mobile-compact (2026-05-01) — survey fits in viewport
   on mobile portrait. Question card centered, decorative journey-track
   hidden, paddings reduced. ВСЕ вопросы помещаются в один экран.
   ============================================================ */
@media (max-width: 640px) and (orientation: portrait) {
  /* Survey-page занимает ровно высоту вьюпорта (без скролла) */
  .survey-page {
    min-height: 100dvh;
    height: 100dvh;
    overflow: hidden;
  }
  /* Header — компактнее */
  .survey-header { height: 48px; padding: 0 12px; }
  /* Tabs — компактные, без uppercase, без счётчика */
  .category-tabs { padding: 0 8px; }
  .tab-btn {
    padding: 10px 8px;
    font-size: 11px;
    letter-spacing: 0;
    text-transform: none;
    gap: 4px;
  }
  .question-meta {
    gap: 8px;
    flex-wrap: wrap;
  }
  .question-report-btn {
    width: 100%;
    justify-content: center;
    min-height: 38px;
    font-size: 11px;
  }
  .tab-btn .tab-progress { font-size: 10px; padding: 1px 6px; }
  /* Journey-track скрыт на мобиле — это декоративный обзор пути */
  .journey-track { display: none !important; }
  /* Survey-main центрирует вопрос вертикально и абсорбирует свободное место */
  .survey-main {
    flex: 1;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    overflow-y: auto;
  }
  /* Question-card компактнее */
  .question-card { padding: 18px 16px !important; max-width: 100%; }
  .question-text { font-size: 17px !important; min-height: 0 !important; line-height: 1.35; }
  .question-meta { font-size: 11px; margin-bottom: 10px; }
  .answer-input { min-height: 48px; }
  /* Кнопки навигации — sticky внизу карточки */
  .question-nav { margin-top: 14px; }
  .nav-dots { display: none; }
}

/* ── Tablet portrait (641-900px) — щадящий режим ── */
@media (min-width: 641px) and (max-width: 900px) and (orientation: portrait) {
  .journey-track { padding: 8px 16px 6px; }
  .journey-label { display: none; }
  .journey-step.active .journey-label { display: block; }
  .survey-main { padding: 20px 16px; }
}

/* ============================================================
   Method illustrations · CL-NEIRO-METHOD-ILLUSTRATIONS-PHASE1
   Generic helpers for /methods/{slug} pages.
   ============================================================ */
.method-explain {
  margin: 28px 0;
}
.method-explain__chart {
  background: #151d21;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 16px;
  overflow-x: auto;
}
.method-explain__chart svg {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.method-explain__cells {
  display: grid;
  gap: 10px 12px;
  border-radius: 8px;
}
.method-explain__cells--bcg,
.method-explain__cells--2x2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.method-explain__cell {
  min-height: 110px;
  padding: 16px;
  color: #111;
  background: #FFE9D6;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
}
.method-explain__cell strong {
  font-size: 1.05rem;
  line-height: 1.2;
}
.method-explain__cell span {
  font-size: .92rem;
  line-height: 1.35;
  opacity: .82;
}
.method-explain__cell--star {
  background: #FF7A1A;
  color: #fff;
}
.method-explain__cell--cash {
  background: #B84800;
  color: #fff;
}
.method-explain__cell--question {
  background: #FFE9D6;
}
.method-explain__cell--check {
  background: #FFB873;
}
.method-explain__cell--pos {
  background: #d4f5dd;
}
.method-explain__cell--neg {
  background: #fcd7d4;
}
.method-explain__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}
.method-explain__list li {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  padding: 12px 14px;
  color: rgba(255,255,255,.8);
}
.method-explain__list li strong {
  display: inline-block;
  width: 22px;
  height: 22px;
  line-height: 22px;
  text-align: center;
  border-radius: 4px;
  background: var(--accent, #FF7A1A);
  color: #fff;
  font-weight: 700;
  margin-right: 8px;
}
.method-explain__steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  counter-reset: step;
}
.method-explain__steps li {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  padding: 6px 12px 6px 32px;
  position: relative;
  color: rgba(255,255,255,.8);
  font-size: .9rem;
}
.method-explain__steps li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  background: var(--accent, #FF7A1A);
  color: #fff;
  border-radius: 50%;
  font-weight: 700;
  font-size: .75rem;
}
.method-explain__caption {
  color: rgba(255,255,255,.62);
  font-size: .9rem;
  margin: 12px 0 0 0;
}
[data-theme="light"] .method-explain__chart {
  background: #fafafa;
  border-color: rgba(0,0,0,.08);
}
[data-theme="light"] .method-explain__list li,
[data-theme="light"] .method-explain__steps li {
  background: #f6f6f6;
  border-color: rgba(0,0,0,.08);
  color: #2a2a2a;
}
[data-theme="light"] .method-explain__caption {
  color: #555;
}
@media (max-width: 640px) {
  .method-explain__cells--bcg,
  .method-explain__cells--2x2 {
    grid-template-columns: minmax(0, 1fr);
  }
  .method-explain__chart {
    padding: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .method-explain *,
  .method-explain *::before {
    animation: none !important;
    transition: none !important;
  }
}
