/* ── Общая палитра ──────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,900&family=Spline+Sans:wght@400;500;600&display=swap');

:root {
  --ink:    #1a1410;
  --ink2:   #2a2018;
  --cream:  #f7f1e7;
  --cream2: #efe6d6;
  --amber:  #e8902b;
  --amber-d:#c9741a;
  --line:   rgba(247,241,231,0.12);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  min-height: 100vh;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(232,144,43,0.10), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(232,144,43,0.06), transparent 60%),
    var(--ink);
  color: var(--cream);
  font-family: 'Spline Sans', sans-serif;
}

/* ── Страница авторизации (/auth/index) ─────────────────────── */
.auth-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  min-height: 100vh;
}

.auth-logo {
  font-family: 'Fraunces', serif;
  font-size: 28px;
  font-weight: 900;
  color: var(--cream);
  margin-bottom: 40px;
  letter-spacing: -0.5px;
}
.auth-logo span { color: var(--amber); }

.auth-card {
  background: var(--cream);
  color: var(--ink);
  border-radius: 20px;
  padding: 36px 40px 40px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.4);
}

.auth-tabs {
  display: flex;
  gap: 4px;
  background: var(--cream2);
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 28px;
}
.auth-tab {
  flex: 1;
  padding: 9px;
  border: none;
  border-radius: 8px;
  background: transparent;
  font-family: 'Spline Sans', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #6b5b42;
  cursor: pointer;
  transition: all .18s;
}
.auth-tab.active {
  background: var(--ink);
  color: var(--cream);
  font-weight: 600;
}

.auth-form { display: none; flex-direction: column; gap: 16px; }
.auth-form.active { display: flex; }

.auth-form label {
  font-size: 13px;
  font-weight: 600;
  color: #5a4a32;
  margin-bottom: 4px;
  display: block;
}
.auth-form input[type=email],
.auth-form input[type=password] {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid #d4c9b5;
  border-radius: 10px;
  font-family: 'Spline Sans', sans-serif;
  font-size: 15px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: border-color .18s;
}
.auth-form input:focus { border-color: var(--amber); }

.auth-btn {
  width: 100%;
  padding: 13px;
  background: var(--amber);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-family: 'Spline Sans', sans-serif;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 4px;
  transition: background .18s, opacity .18s;
}
.auth-btn:hover { background: var(--amber-d); }
.auth-btn:disabled { opacity: 0.6; cursor: default; }

.auth-error {
  background: #fde8e8;
  color: #c0392b;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  display: none;
}
.auth-error.show { display: block; }

.auth-bonus {
  text-align: center;
  font-size: 13px;
  color: #7a6545;
  margin-top: 16px;
}
.auth-bonus b { color: var(--amber-d); }

/* ── Виджет генератора (перенос из React MarketGen) ───────────── */
        .mg-root {
          --ink:#1a1410;--ink2:#2a2018;--cream:#f7f1e7;--cream2:#efe6d6;--amber:#e8902b;--amber-d:#c9741a;--line:rgba(247,241,231,0.12);
          min-height:100vh;
          background:radial-gradient(1200px 600px at 80% -10%,rgba(232,144,43,.10),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(232,144,43,.06),transparent 60%),var(--ink);
          color:var(--cream);font-family:'Spline Sans',sans-serif;padding:0 0 80px;box-sizing:border-box;
        }
        .mg-root * { box-sizing:border-box; }
        .mg-wrap { max-width:1080px;margin:0 auto;padding:0 28px; }
        .mg-header { padding:20px 0 16px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:16px; }
        .mg-logo { font-family:'Fraunces',serif;font-weight:900;font-size:30px;letter-spacing:-.02em;line-height:1;color:var(--cream);text-decoration:none; }
        .mg-logo span { color:var(--amber); }
        .mg-tagline { font-size:14px;opacity:.7;max-width:360px; }
        .mg-credits { font-size:13px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(247,241,231,.04); }
        .mg-credits b { color:var(--amber); }
        .mg-hero { padding:28px 0 32px; }
        .mg-hero h1 { font-family:'Fraunces',serif;font-weight:900;font-size:clamp(30px,5vw,50px);line-height:1.04;letter-spacing:-.03em;margin:0 0 16px;max-width:740px; }
        .mg-hero h1 em { font-style:italic;color:var(--amber); }
        .mg-hero p { font-size:17px;opacity:.8;max-width:560px;margin:0; }
        .mg-grid { display:grid;grid-template-columns:1fr 1fr;gap:28px; }
        @media(max-width:880px){ .mg-grid{grid-template-columns:1fr;} }
        .mg-card { background:var(--cream);color:var(--ink);border-radius:18px;padding:28px; }
        .mg-card h2 { font-family:'Fraunces',serif;font-weight:600;font-size:20px;margin:0 0 20px;letter-spacing:-.01em; }
        .mg-label { font-size:13px;font-weight:600;margin:16px 0 7px;display:block; }
        .mg-label:first-of-type { margin-top:0; }
        .mg-input,.mg-textarea { width:100%;border:1.5px solid var(--cream2);background:#fff;border-radius:10px;padding:11px 13px;font-size:14px;font-family:inherit;color:var(--ink);transition:border-color .15s; }
        .mg-input:focus,.mg-textarea:focus { outline:none;border-color:var(--amber); }
        .mg-textarea { resize:vertical;min-height:78px;line-height:1.5; }
        .mg-hint { font-size:12px;opacity:.5;margin-top:5px; }
        .mg-chips { display:flex;flex-wrap:wrap;gap:8px; }
        .mg-chip { border:1.5px solid var(--cream2);background:#fff;color:var(--ink);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;font-family:inherit;transition:all .15s;font-weight:500; }
        .mg-chip:hover { border-color:var(--amber); }
        .mg-chip.active { background:var(--ink);color:var(--cream);border-color:var(--ink); }
        .mg-gen { margin-top:24px;width:100%;border:none;cursor:pointer;background:var(--amber);color:var(--ink);font-weight:600;font-size:15px;padding:14px;border-radius:11px;font-family:inherit;transition:background .15s,transform .05s; }
        .mg-gen:hover:not(:disabled){background:var(--amber-d);} .mg-gen:active:not(:disabled){transform:translateY(1px);} .mg-gen:disabled{opacity:.45;cursor:not-allowed;}
        .mg-out { min-height:200px; }
        .mg-empty { height:100%;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:.55;gap:12px; }
        .mg-empty-mark { font-family:'Fraunces',serif;font-size:46px;font-weight:900;color:var(--amber); }
        .mg-block { margin-bottom:20px; } .mg-block:last-child{margin-bottom:0;}
        .mg-block-head { display:flex;justify-content:space-between;align-items:center;margin-bottom:8px; }
        .mg-block-title { font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.6; }
        .mg-copy { border:none;background:none;cursor:pointer;font-family:inherit;font-size:12px;color:var(--amber-d);font-weight:600;padding:2px 4px; }
        .mg-copy:hover { text-decoration:underline; }
        .mg-result-title { font-family:'Fraunces',serif;font-size:18px;font-weight:600;line-height:1.3; }
        .mg-result-desc { font-size:14px;line-height:1.6; }
        .mg-bullets { list-style:none;padding:0;margin:0;font-size:14px;line-height:1.8; }
        .mg-tags { display:flex;flex-wrap:wrap;gap:6px; }
        .mg-tag { background:var(--cream2);border-radius:6px;padding:4px 9px;font-size:12px; }
        .mg-loading { display:flex;align-items:center;gap:10px;padding:40px 0;justify-content:center;opacity:.7;font-size:14px; }
        .mg-dot { width:8px;height:8px;border-radius:50%;background:var(--amber);animation:mgpulse 1s infinite; }
        .mg-dot:nth-child(2){animation-delay:.15s} .mg-dot:nth-child(3){animation-delay:.3s}
        @keyframes mgpulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
        .mg-paywall { margin-top:16px;background:var(--ink);color:var(--cream);border-radius:14px;padding:22px;text-align:center; }
        .mg-paywall h3 { font-family:'Fraunces',serif;margin:0 0 6px;font-size:18px; }
        .mg-paywall p { margin:0 0 14px;font-size:13px;opacity:.75; }
        .mg-buy { background:var(--amber);border:none;color:var(--ink);font-weight:600;padding:11px 22px;border-radius:9px;cursor:pointer;font-family:inherit;font-size:14px; }

        /* Форма авторизации (для гостей) */
        .mg-guest-grid { display:grid;grid-template-columns:1fr 420px;gap:40px;align-items:start;padding:54px 0; }
        @media(max-width:860px){ .mg-guest-grid{grid-template-columns:1fr;} }
        .mg-auth-wrap { display:flex;justify-content:flex-start; }
        .mg-auth-card { background:var(--cream);color:var(--ink);border-radius:20px;padding:36px 40px 40px;width:100%;max-width:420px;box-shadow:0 24px 60px rgba(0,0,0,.4); }
        .mg-auth-tabs { display:flex;gap:4px;background:var(--cream2);border-radius:10px;padding:4px;margin-bottom:28px; }
        .mg-auth-tab { flex:1;padding:9px;border:none;border-radius:8px;background:transparent;font-family:'Spline Sans',sans-serif;font-size:14px;font-weight:500;color:#6b5b42;cursor:pointer;transition:all .18s; }
        .mg-auth-tab.active { background:var(--ink);color:var(--cream);font-weight:600; }
        .mg-auth-fields { display:flex;flex-direction:column;gap:16px; }
        .mg-auth-label { font-size:13px;font-weight:600;color:#5a4a32;margin-bottom:4px;display:block; }
        .mg-auth-input { width:100%;padding:11px 14px;border:1.5px solid #d4c9b5;border-radius:10px;font-family:'Spline Sans',sans-serif;font-size:15px;color:var(--ink);background:#fff;outline:none;transition:border-color .18s; }
        .mg-auth-input:focus { border-color:var(--amber); }
        .mg-auth-btn { width:100%;padding:13px;background:var(--amber);color:#fff;border:none;border-radius:10px;font-family:'Spline Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px;transition:background .18s,opacity .18s; }
        .mg-auth-btn:hover { background:var(--amber-d); }
        .mg-auth-btn:disabled { opacity:.6;cursor:default; }
        .mg-auth-error { background:#fde8e8;color:#c0392b;border-radius:8px;padding:10px 14px;font-size:13px; }
        .mg-auth-bonus { text-align:center;font-size:13px;color:#7a6545;margin-top:16px; }
        .mg-auth-bonus b { color:var(--amber-d); }
        .mg-logout { background:none;border:1px solid var(--line);color:var(--cream);border-radius:999px;padding:7px 14px;font-size:13px;font-family:inherit;cursor:pointer;opacity:.7;transition:opacity .15s; }
        .mg-logout:hover { opacity:1; }
        .mg-menu { position:relative; }
        .mg-menu-btn { background:none;border:1px solid var(--line);color:var(--cream);border-radius:999px;padding:7px 14px;font-size:13px;font-family:inherit;cursor:pointer;opacity:.7;transition:opacity .15s;display:flex;align-items:center;gap:6px; }
        .mg-menu-btn:hover { opacity:1; }
        .mg-menu-drop { position:absolute;right:0;top:calc(100% + 8px);background:#2a2018;border:1px solid var(--line);border-radius:12px;min-width:148px;overflow:hidden;z-index:100;box-shadow:0 8px 24px rgba(0,0,0,.4); }
        .mg-menu-drop a,.mg-menu-drop button { display:block;width:100%;text-align:left;padding:11px 16px;font-size:13px;color:var(--cream);text-decoration:none;background:none;border:none;font-family:inherit;cursor:pointer;transition:background .15s;box-sizing:border-box; }
        .mg-menu-drop a:hover,.mg-menu-drop button:hover { background:rgba(255,255,255,.08); }
        .mg-menu-drop a { border-bottom:1px solid var(--line); }

/* Радио-чипы (площадка/тон/язык генерации) — без JS-состояния */
.mg-chip-radio { position:absolute;opacity:0;width:0;height:0; }
.mg-chip-radio:checked + .mg-chip { background:var(--ink);color:var(--cream);border-color:var(--ink); }
.mg-chip-radio:focus-visible + .mg-chip { outline:2px solid var(--amber);outline-offset:2px; }
.mg-chip-label { display:inline-flex;cursor:pointer;position:relative; }

/* Переключатель языка интерфейса */
/* Переключатель языка — сегментный тумблер (общий для сайта и кабинета). */
.mg-langswitch { display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden; }
.mg-langswitch a { padding:5px 13px;font-size:13px;font-weight:600;color:var(--cream);text-decoration:none;opacity:.75;transition:opacity .15s, background .15s; }
.mg-langswitch a:hover { opacity:1; }
.mg-langswitch a.active { background:var(--amber);color:var(--ink);opacity:1; }

/* ── Личный кабинет ───────────────────────────────────────────── */
.cab-nav { display:flex;gap:18px;flex-wrap:wrap;font-size:14px; }
.cab-nav a { color:var(--cream);opacity:.6;text-decoration:none;padding:2px 0;border-bottom:2px solid transparent; }
.cab-nav a:hover { opacity:.9; }
.cab-nav a.active { opacity:1;color:var(--amber);border-bottom-color:var(--amber); }

.cab-balance { margin:32px 0;display:flex;align-items:baseline;gap:14px; }
.cab-balance-label { font-size:15px;opacity:.7; }
.cab-balance-value { font-family:'Fraunces',serif;font-weight:900;font-size:48px;color:var(--amber);line-height:1; }

.cab-section { margin:28px 0; }
.cab-section-head { display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px; }
.cab-section-head h2 { font-family:'Fraunces',serif;font-weight:600;font-size:20px;margin:0; }
.cab-section-head a { font-size:13px;color:var(--amber);text-decoration:none; }

.cab-table { width:100%;border-collapse:collapse;font-size:14px;background:var(--cream);color:var(--ink);border-radius:14px;overflow:hidden; }
.cab-table th { text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;opacity:.6;padding:12px 16px;border-bottom:1px solid var(--cream2); }
.cab-table td { padding:12px 16px;border-bottom:1px solid var(--cream2); }
.cab-table tr:last-child td { border-bottom:none; }
.cab-table tr.cab-row-link { cursor:pointer; }
.cab-table tr.cab-row-link:hover td { background:var(--cream2); }
.cab-empty { padding:24px 16px;opacity:.5;text-align:center; }

.cab-badge { display:inline-block;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px; }
.cab-badge-ok { background:#d6f0dd;color:#1f7a3d; }
.cab-badge-pending { background:#f6e9cf;color:#9a6b16; }
.cab-badge-error { background:#fbe0e0;color:#c0392b; }

.cab-amount-pos { color:#1f7a3d;font-weight:600; }
.cab-amount-neg { color:#c0392b;font-weight:600; }

.cab-pager { display:flex;gap:6px;margin-top:18px;list-style:none;padding:0; }
.cab-pager li a { display:inline-block;padding:6px 11px;border:1px solid var(--line);border-radius:8px;color:var(--cream);text-decoration:none;font-size:13px; }
.cab-pager li.current a { background:var(--amber);color:var(--ink);border-color:var(--amber); }

.cab-back { display:inline-block;margin:18px 0;color:var(--amber);text-decoration:none;font-size:14px; }

.cab-meta { background:var(--cream);color:var(--ink);border-radius:14px;padding:20px 24px;margin-bottom:20px;font-size:14px; }
.cab-meta-row { display:flex;gap:10px;padding:5px 0; }
.cab-meta-key { min-width:140px;font-weight:600;opacity:.7; }

.cab-form { background:var(--cream);color:var(--ink);border-radius:16px;padding:28px;max-width:460px; }
.cab-form label { display:block;font-size:13px;font-weight:600;margin:14px 0 6px; }
.cab-form label:first-of-type { margin-top:0; }
.cab-form input { width:100%;border:1.5px solid var(--cream2);background:#fff;border-radius:10px;padding:11px 13px;font-size:14px;font-family:inherit;color:var(--ink); }
.cab-form input:focus { outline:none;border-color:var(--amber); }
.cab-form button { margin-top:20px;width:100%;border:none;cursor:pointer;background:var(--amber);color:var(--ink);font-weight:600;font-size:15px;padding:13px;border-radius:11px;font-family:inherit; }
.cab-form-error { color:#c0392b;font-size:13px;margin-top:6px; }
.cab-form-ok { background:#d6f0dd;color:#1f7a3d;border-radius:8px;padding:11px 14px;font-size:14px;margin-bottom:16px; }
