/* ============================================================
   leosong.ru · менеджер в стиле OpenFootball / Football Manager
   Палитра и хром как на open-football.org (страна, клуб, состав).
   ============================================================ */

/* --- Outfit (тот же файл, что у OpenFootball) --- */
@font-face{font-family:"Outfit";font-style:normal;font-weight:300;font-display:swap;src:url(/static/fonts/google_font_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:"Outfit";font-style:normal;font-weight:300;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:400;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:500;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:600;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:700;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:800;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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:"Outfit";font-style:normal;font-weight:900;font-display:swap;src:url(/static/fonts/google_font.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA-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 {
  /* Поверхности — OpenFootball FM2017 */
  --fm-bg:            #1a2228;
  --fm-bg-1:          #18222a;
  --fm-bg-2:          #1c2830;
  --fm-bg-header:     #1e272d;
  --fm-bg-modal:      #1c2830;

  /* Тайлы */
  --fm-tile-1:        #1c2830;
  --fm-tile-2:        #192228;
  --fm-tile-3:        #222e38;
  --fm-tile-4:        #2a3640;
  --fm-tile-5:        #3a4650;
  --fm-tile-hover:    #2c3940;

  /* Бордеры */
  --fm-border:        #263340;
  --fm-border-hover:  #3a4a56;
  --fm-border-soft:   #1f2a32;

  /* Текст */
  --fm-fg:            #d0d6dc;
  --fm-fg-strong:     #ffffff;
  --fm-fg-dim:        #8a939b;
  --fm-fg-muted:      #6e7b85;
  --fm-fg-faint:      #4e5a63;

  /* Акценты */
  --fm-accent:        #4a9d5b;
  --fm-accent-hover:  #68d44a;
  --fm-accent-2:      #4a9d5b;
  --fm-accent-soft:   rgba(74,157,91,0.16);
  --fm-accent-glow:   rgba(74,157,91,0.28);

  --fm-gold:          #e8b628;
  --fm-gold-hover:    #ecc030;
  --fm-gold-soft:     rgba(232,182,40,0.16);

  --fm-cyan:          #3d7aed;
  --fm-cyan-soft:     rgba(61,122,237,0.16);

  --fm-warn:          #ff9800;
  --fm-danger:        #e53935;

  /* Позиции */
  --fm-pos-gk:        linear-gradient(135deg, #e8b628 0%, #c8a820 100%);
  --fm-pos-def:       linear-gradient(135deg, #3d7aed 0%, #1565a0 100%);
  --fm-pos-mid:       linear-gradient(135deg, #4a9d5b 0%, #2a7a3f 100%);
  --fm-pos-fwd:       linear-gradient(135deg, #e53935 0%, #a71214 100%);

  /* Геометрия */
  --fm-radius-sm:     2px;
  --fm-radius:        4px;
  --fm-radius-lg:     6px;
  --fm-radius-pill:   4px;

  /* Тени */
  --fm-shadow-tile:   0 2px 8px rgba(0,0,0,0.2);
  --fm-shadow-tile-h: 0 4px 12px rgba(0,0,0,0.3);
  --fm-shadow-modal:  0 24px 80px rgba(0,0,0,0.55);
  --fm-shadow-glow:   none;
  --fm-shadow-glow-gold: none;

  /* Шрифты */
  --fm-font: "Outfit","Helvetica Neue",Helvetica,Arial,sans-serif;
  --fm-font-mono: ui-monospace,"SF Mono","JetBrains Mono",Menlo,monospace;

  --fm-tab-fg:        var(--fm-fg-dim);
  --fm-tab-fg-active: var(--fm-fg-strong);
  --fm-tab-hover-bg:  rgba(255,255,255,0.06);
  --fm-tab-active-border: var(--fm-accent);
}

/* ============================================================
   БАЗА
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
html { scrollbar-gutter: stable; color-scheme: dark; }

body {
  margin: 0;
  background-color: var(--fm-bg);
  color: var(--fm-fg);
  font-family: var(--fm-font);
  font-size: 14px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow: hidden;
}

#app { height: 100vh; overflow: hidden; display: flex; flex-direction: column; }

h1, h2, h3, h4 { margin: 0; font-weight: 700; letter-spacing: -0.3px; color: var(--fm-fg-strong); }
p { margin: 0; }
button { font-family: inherit; cursor: pointer; }
a { color: var(--fm-accent); text-decoration: none; transition: color 0.15s; }
a:hover { color: var(--fm-accent-hover); text-decoration: none; }

/* ============================================================
   HERO / WELCOME — стадион, мяч, glow CTA
   ============================================================ */

.welcome-page {
  flex: 1;
  overflow-y: auto;
  position: relative;
  padding: 0 24px 80px;
  background:
    linear-gradient(180deg, rgba(26,34,40,0.55) 0%, rgba(26,34,40,0.92) 80%),
    linear-gradient(180deg, #1c2830 0%, #151c22 100%);
}

.welcome-stadium {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.85;
}

.welcome-stadium-ball {
  position: absolute;
  width: 90px;
  height: 90px;
  top: 12%;
  right: 12%;
  z-index: 1;
  pointer-events: none;
  animation: ballFloat 6s ease-in-out infinite;
  filter: drop-shadow(0 8px 32px rgba(74,157,91,0.4));
}
@keyframes ballFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50%      { transform: translateY(-18px) rotate(180deg); }
}

.welcome-inner {
  position: relative;
  z-index: 2;
  max-width: 980px;
  margin: 0 auto;
  padding-top: 64px;
}

.welcome-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  margin-bottom: 22px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--fm-accent);
  background: rgba(74,157,91,0.08);
  border: 1px solid rgba(74,157,91,0.25);
  border-radius: var(--fm-radius-pill);
}
.welcome-eyebrow i { font-size: 13px; }

.welcome-title {
  font-size: clamp(36px, 6vw, 56px);
  font-weight: 800;
  letter-spacing: -1px;
  line-height: 1.05;
  margin-bottom: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #b8c8e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 4px 12px rgba(74,157,91,0.15));
}

.welcome-sub {
  color: var(--fm-fg-dim);
  font-size: 16px;
  margin-bottom: 28px;
  max-width: 560px;
  line-height: 1.5;
}

.welcome-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: linear-gradient(145deg, #4aad5b, #3a8d4a);
  color: #fff;
  border: 1px solid #3a8d4a;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
  transition: background 0.15s;
  box-shadow: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.welcome-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%);
  transform: translateX(-100%);
  transition: transform 0.6s;
}
.welcome-cta:hover { background: linear-gradient(145deg, #58c06a, #3a8d4a); }
.welcome-cta:hover::before { transform: translateX(100%); }
.welcome-cta:active { transform: translateY(0); }
.welcome-cta-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: transparent;
  color: #fff;
  border: 1px solid #3a4a58;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
  cursor: pointer;
}
.welcome-cta-ghost:hover { border-color: #4a9d5b; color: #c9e4cf; }
.wiz-auth-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.wiz-login-card {
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 360px;
  text-align: left;
}
.wiz-login-card[hidden] { display: none; }
.wiz-login-card .welcome-cta { margin-top: 8px; justify-content: center; }

.welcome-secondary {
  margin-top: 22px;
  font-size: 13px;
  color: var(--fm-fg-dim);
}
.welcome-secondary a {
  color: var(--fm-fg-strong);
  border-bottom: 1px dashed var(--fm-fg-muted);
  font-weight: 500;
}
.welcome-secondary a:hover { color: var(--fm-accent); border-color: var(--fm-accent); }

/* info-grid — крупные премиум-карточки */
.info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-top: 56px;
}

.info-tile {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: linear-gradient(160deg, rgba(28,39,66,0.85) 0%, rgba(20,29,51,0.85) 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--fm-radius);
  box-shadow: var(--fm-shadow-tile);
  transition: border-color 0.2s, transform 0.15s, box-shadow 0.2s;
  backdrop-filter: blur(8px);
  position: relative;
  overflow: hidden;
}
.info-tile::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--fm-accent), transparent);
  opacity: 0;
  transition: opacity 0.2s;
}
.info-tile:hover {
  border-color: rgba(74,157,91,0.4);
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(74,157,91,0.15), var(--fm-shadow-tile-h);
}
.info-tile:hover::before { opacity: 1; }

.info-tile-icon {
  width: 40px; height: 40px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--fm-accent-soft);
  border: 1px solid rgba(74,157,91,0.2);
  border-radius: var(--fm-radius);
  color: var(--fm-accent);
  font-size: 17px;
}
.info-tile-body { min-width: 0; flex: 1; }
.info-tile-title { font-size: 14px; font-weight: 700; color: var(--fm-fg-strong); margin-bottom: 4px; }
.info-tile-text { font-size: 12px; color: var(--fm-fg-dim); line-height: 1.5; }

/* ============================================================
   МОДАЛКА СОЗДАНИЯ КЛУБА
   ============================================================ */

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(8px);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fmFadeIn 0.18s ease-out;
}
@keyframes fmFadeIn { from { opacity: 0; } to { opacity: 1; } }

.modal {
  background: var(--fm-bg-modal);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--fm-radius-lg);
  width: 100%;
  max-width: 960px;
  max-height: 90vh;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  overflow: hidden;
  box-shadow: var(--fm-shadow-modal);
  animation: fmSlideUp 0.22s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes fmSlideUp {
  from { opacity: 0; transform: translateY(14px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 768px) { .modal { grid-template-columns: 1fr; max-height: 95vh; overflow-y: auto; } }

.modal-form { padding: 28px 32px; overflow-y: auto; }
.modal-preview {
  padding: 28px;
  background:
    radial-gradient(circle at 50% 30%, var(--c-primary, var(--fm-accent)) 0%, transparent 70%),
    linear-gradient(160deg, #1a2742 0%, #0d1422 100%);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  border-left: 1px solid rgba(255,255,255,0.06);
  position: relative;
  overflow: hidden;
}
.modal-preview::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 16px 16px;
  pointer-events: none;
  opacity: 0.5;
}
@media (max-width: 768px) {
  .modal-preview { border-left: none; border-top: 1px solid rgba(255,255,255,0.06); }
}

.modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.modal-title { font-size: 20px; font-weight: 800; letter-spacing: -0.4px; }
.modal-sub { color: var(--fm-fg-dim); font-size: 13px; margin-bottom: 22px; }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field.full { grid-column: 1 / -1; }

.form-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--fm-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.8px;
}

.form-input, .form-select {
  padding: 10px 12px;
  background: #151c22;
  border: 1px solid #263340;
  border-radius: 4px;
  color: var(--fm-fg);
  font-size: 13px;
  color-scheme: dark;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}
.form-select option, .form-select optgroup {
  background: #1c2830;
  color: #d8e0e6;
}
.form-input:focus, .form-select:focus {
  border-color: var(--fm-accent);
  background: rgba(74,157,91,0.06);
  box-shadow: 0 0 0 3px rgba(74,157,91,0.12);
}
.form-input::placeholder { color: var(--fm-fg-faint); }

.fm-dd { position: relative; min-width: 0; }
.fm-dd > select {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.fm-dd-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 32px;
  padding: 0 10px;
  background: #151c22;
  border: 1px solid #263340;
  border-radius: 4px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  font-family: inherit;
  text-align: left;
  cursor: pointer;
}
.fm-dd-btn:hover { border-color: #3a4b58; }
.fm-dd.open .fm-dd-btn { border-color: var(--fm-accent); }
.fm-dd-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fm-dd-btn i { font-size: 10px; color: #8a9bbd; flex-shrink: 0; }
.fm-dd-menu {
  position: fixed;
  z-index: 80;
  max-height: min(70vh, 440px);
  overflow-y: auto;
  background: #1c2830;
  border: 1px solid #2c3c48;
  border-radius: 4px;
  box-shadow: 0 16px 40px rgba(0,0,0,.55);
  padding: 4px 0;
  min-width: 180px;
}
.fm-dd-group {
  padding: 8px 12px 4px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.7px;
  text-transform: uppercase;
  color: #8a9bbd;
}
.fm-dd-opt {
  display: block;
  width: 100%;
  text-align: left;
  padding: 7px 14px;
  background: transparent;
  border: 0;
  color: #d0d6dc;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  border-radius: 0;
}
.fm-dd-opt:hover { background: rgba(255,255,255,0.06); color: #fff; }
.fm-dd-opt.is-active { background: var(--fm-accent); color: #04140a; font-weight: 700; }
.fm-dd-row { display: flex; align-items: stretch; }
.fm-dd-row .fm-dd-opt { flex: 1; min-width: 0; }
.fm-dd-del {
  width: 34px;
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: #7a8894;
  cursor: pointer;
}
.fm-dd-del:hover { color: #ff8a8a; background: rgba(255,80,80,0.12); }

.tac-formation-field .fm-dd { flex: 1; }

.color-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
}
.color-swatch {
  width: 24px; height: 24px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.1s, border-color 0.1s;
  position: relative;
}
.color-swatch:hover { transform: scale(1.15); }
.color-swatch.active {
  border-color: var(--fm-fg-strong);
  box-shadow: 0 0 0 2px var(--fm-bg-modal), 0 0 12px rgba(74,157,91,0.4);
}
.color-input {
  width: 30px; height: 30px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 50%;
  padding: 0;
  cursor: pointer;
  background: transparent;
}

.crest-style-row { display: flex; gap: 8px; flex-wrap: wrap; }
.crest-style-btn {
  flex: 1;
  min-width: 70px;
  padding: 12px 8px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--fm-radius);
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  font-size: 11px;
  color: var(--fm-fg-dim);
  transition: all 0.15s;
}
.crest-style-btn svg { width: 28px; height: 28px; }
.crest-style-btn:hover { border-color: rgba(74,157,91,0.3); color: var(--fm-fg); background: rgba(255,255,255,0.05); }
.crest-style-btn.active {
  border-color: var(--fm-accent);
  background: var(--fm-accent-soft);
  color: var(--fm-accent);
  box-shadow: 0 0 12px rgba(74,157,91,0.2);
}

.modal-actions {
  margin-top: 24px;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.btn {
  padding: 10px 18px;
  border-radius: var(--fm-radius);
  font-size: 13px;
  font-weight: 600;
  transition: transform 0.1s, background 0.15s, border-color 0.15s, box-shadow 0.15s;
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid transparent;
}
.btn:active { transform: translateY(1px); }
.btn-primary {
  background: linear-gradient(145deg, #4aad5b, #3a8d4a);
  color: #fff;
  border-color: #3a8d4a;
  box-shadow: none;
}
.btn-primary:hover { background: linear-gradient(145deg, #58c06a, #3a8d4a); }
.btn-primary:disabled { background: var(--fm-tile-4); color: var(--fm-fg-faint); border-color: var(--fm-tile-4); cursor: not-allowed; box-shadow: none; }

.btn-gold {
  background: linear-gradient(135deg, var(--fm-gold) 0%, #ff8f00 100%);
  color: #2a1a00;
  border-color: rgba(255,255,255,0.12);
  box-shadow: 0 4px 14px rgba(255,193,7,0.35), inset 0 1px 0 rgba(255,255,255,0.25);
}

.btn-ghost {
  background: transparent; color: var(--fm-fg-dim); border-color: rgba(255,255,255,0.1);
}
.btn-ghost:hover { color: var(--fm-fg); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.04); }

.btn-danger { background: transparent; color: var(--fm-danger); border-color: rgba(255,255,255,0.1); }
.btn-danger:hover { background: rgba(255,71,87,0.1); border-color: var(--fm-danger); }

/* Превью модалки */
.preview-crest {
  width: 180px; height: 180px;
  margin: 0 auto 18px;
  filter: drop-shadow(0 12px 36px rgba(0,0,0,0.5));
  animation: crestPulse 4s ease-in-out infinite;
}
@keyframes crestPulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}
.preview-name {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.4px;
  text-align: center;
  color: var(--fm-fg-strong);
  text-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.preview-meta { color: var(--fm-fg); font-size: 13px; margin-top: 4px; text-align: center; opacity: 0.85; }
.preview-manager { color: var(--fm-fg-dim); font-size: 12px; margin-top: 14px; text-align: center; }

/* ============================================================
   МЕНЕДЖЕР — шапка с pitch-полосой
   ============================================================ */

.manager { flex: 1; display: flex; flex-direction: column; min-height: 0; }

.fm-header {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  padding: 0 0 0 16px;
  background: var(--header-bg, var(--fm-bg-header));
  border-bottom: 1px solid var(--header-border, rgba(0,0,0,0.2));
  min-height: 44px;
  height: 44px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
  color: var(--tab-fg-active, var(--fm-fg-strong));
}
.fm-header::after { display: none; }

.manager-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}
.manager-brand .crest {
  width: 48px; height: 48px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.4));
  transition: transform 0.2s;
}
.manager-brand:hover .crest { transform: rotate(-3deg) scale(1.05); }
.manager-info { min-width: 0; }
.manager-info-name {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -0.4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  color: var(--tab-fg-active, var(--fm-fg-strong));
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.manager-info-meta {
  font-size: 12px;
  color: var(--tab-fg, var(--fm-fg-dim));
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-top: 2px;
}

.manager-balance {
  display: flex; flex-direction: column; align-items: flex-end;
  justify-content: center;
  padding: 0 16px;
  margin-right: 14px;
  border-right: 1px solid rgba(255,255,255,0.18);
}
.manager-balance-label {
  font-size: 10px;
  color: var(--tab-fg, var(--fm-fg-dim));
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 600;
}
.manager-balance-value {
  font-size: 18px;
  font-weight: 800;
  color: var(--tab-fg-active, var(--fm-fg-strong));
  font-family: var(--fm-font-mono);
  letter-spacing: -0.5px;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}

.manager-actions {
  display: flex; align-items: center; gap: 8px;
}

/* ============================================================
   ТАБЫ — наследуют CSS-переменные от .fm-header-colored
   ============================================================ */

.fm-tabbar {
  display: flex;
  padding: 0;
  margin-left: 8px;
  background: transparent;
  border-bottom: 0;
  overflow-x: auto;
  scrollbar-width: none;
  flex: 1;
  min-width: 0;
  align-self: stretch;
}
.fm-tabbar:empty { display: none; }
.fm-tabbar::-webkit-scrollbar { display: none; }

.fm-tab {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 10px 18px;
  font-size: 10px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  line-height: 1;
  color: var(--tab-fg, #8a939b);
  border: 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
  background: transparent;
  position: relative;
}
.fm-tab:hover { color: var(--tab-fg-active, #fff); background: var(--tab-hover-bg, rgba(0,0,0,0.12)); }
.fm-tab.active {
  color: var(--tab-fg-active, #fff);
  border-bottom-color: var(--tab-active-border, #4a9d5b);
}
.fm-tab i { display: none; }

/* ============================================================
   КОНТЕНТ
   ============================================================ */

.fm-page {
  flex: 1;
  overflow-y: auto;
  padding: 16px 20px 40px;
  background: var(--fm-bg);
  position: relative;
}

.fm-page::before { display: none; }

.fm-page-inner { width: 100%; max-width: none; margin: 0; position: relative; z-index: 1; }

.section-title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.4px;
  margin-bottom: 6px;
  display: flex; align-items: center; justify-content: space-between;
}
.section-sub {
  color: var(--fm-fg-dim);
  font-size: 13px;
  margin-bottom: 20px;
}

/* ============================================================
   KPI-СЕТКА
   ============================================================ */

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin-bottom: 22px;
}

.kpi {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  background: linear-gradient(160deg, rgba(28,39,66,0.9) 0%, rgba(20,29,51,0.9) 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--fm-radius);
  box-shadow: var(--fm-shadow-tile);
  position: relative;
  overflow: hidden;
}
.kpi::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--kpi-bar, var(--fm-accent));
  opacity: 0.5;
}
.kpi.kpi-gold {
  background: linear-gradient(160deg, rgba(60,46,8,0.5) 0%, rgba(30,22,0,0.5) 100%);
  border-color: rgba(255,193,7,0.3);
  box-shadow: 0 4px 16px rgba(255,193,7,0.15), inset 0 1px 0 rgba(255,255,255,0.06);
}
.kpi.kpi-gold::before { background: var(--fm-gold); }

.kpi-icon {
  width: 44px; height: 44px;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--kpi-bg, var(--fm-accent-soft));
  color: var(--kpi-fg, var(--fm-accent));
  border-radius: var(--fm-radius);
  font-size: 18px;
  border: 1px solid var(--kpi-border, rgba(74,157,91,0.18));
}
.kpi-gold .kpi-icon { background: var(--fm-gold-soft); color: var(--fm-gold); border-color: rgba(255,193,7,0.3); }

.kpi-body { min-width: 0; flex: 1; }
.kpi-label {
  font-size: 11px;
  color: var(--fm-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.7px;
  font-weight: 600;
  margin-bottom: 6px;
}
.kpi-value {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.5px;
  color: var(--fm-fg-strong);
  line-height: 1.05;
}
.kpi-gold .kpi-value {
  background: linear-gradient(135deg, #ffd54f 0%, #ff8f00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.kpi-sub { font-size: 11px; color: var(--fm-fg-dim); margin-top: 4px; font-weight: 500; }

/* ============================================================
   КАРТОЧКИ
   ============================================================ */

.fm-card {
  background: linear-gradient(160deg, rgba(28,39,66,0.85) 0%, rgba(20,29,51,0.85) 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--fm-radius);
  box-shadow: var(--fm-shadow-tile);
  padding: 20px;
  backdrop-filter: blur(8px);
}

.fm-card-title {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--fm-fg-dim);
  margin-bottom: 16px;
}

/* ============================================================
   ОБЗОР — stadium + formation
   ============================================================ */

.dashboard-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 16px;
}
@media (max-width: 980px) { .dashboard-grid { grid-template-columns: 1fr; } }

.formation-view {
  position: relative;
  border-radius: var(--fm-radius);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
  box-shadow: var(--fm-shadow-tile);
  background: #0a1a14;
  min-height: 320px;
}
.formation-view .pitch { position: absolute; inset: 0; }
.formation-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(7,9,15,0.85) 0%, rgba(7,9,15,0.1) 25%, rgba(7,9,15,0.1) 75%, rgba(7,9,15,0.9) 100%);
  pointer-events: none;
}
.formation-label {
  position: absolute;
  top: 16px;
  left: 18px;
  z-index: 2;
  display: flex; align-items: center; gap: 8px;
  font-size: 11px;
  color: var(--fm-accent);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 700;
}
.formation-meta {
  position: absolute;
  bottom: 14px;
  left: 18px;
  z-index: 2;
  display: flex; gap: 16px;
  font-size: 11px;
  color: var(--fm-fg);
  opacity: 0.85;
}
.formation-meta b { color: var(--fm-fg-strong); font-weight: 700; }
.formation-meta span { color: var(--fm-fg-dim); margin-right: 4px; }

.next-match-empty {
  margin-top: 16px;
  padding: 22px 18px;
  background: rgba(255,255,255,0.04);
  border: 1px dashed rgba(255,255,255,0.12);
  border-radius: var(--fm-radius);
  text-align: center;
  color: var(--fm-fg-dim);
}
.next-match-empty i { font-size: 22px; color: var(--fm-fg-faint); margin-bottom: 8px; display: block; }
.next-match-empty strong { display: block; color: var(--fm-fg); font-weight: 700; font-size: 13px; margin-bottom: 4px; }
.next-match-empty p { font-size: 12px; max-width: 360px; margin: 0 auto; }

/* ============================================================
   PLAYER CARDS — Top Eleven-стиль
   ============================================================ */

.player-list { display: flex; flex-direction: column; gap: 8px; }

.player-card {
  display: grid;
  grid-template-columns: 56px 1fr auto auto;
  gap: 14px;
  align-items: center;
  padding: 10px 16px;
  background: linear-gradient(90deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%);
  border: 1px solid rgba(255,255,255,0.06);
  border-left: 3px solid var(--card-accent, var(--fm-accent));
  border-radius: var(--fm-radius);
  transition: border-color 0.15s, background 0.15s, transform 0.15s;
  position: relative;
  overflow: hidden;
}
.player-card:hover {
  border-color: rgba(255,255,255,0.12);
  background: linear-gradient(90deg, rgba(74,157,91,0.06) 0%, rgba(255,255,255,0.02) 100%);
  transform: translateX(2px);
}

.player-card.pos-GK  { --card-accent: #ff8f00; }
.player-card.pos-DEF { --card-accent: #00d4ff; }
.player-card.pos-MID { --card-accent: var(--fm-accent); }
.player-card.pos-FWD { --card-accent: var(--fm-danger); }

.player-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: 2px solid rgba(255,255,255,0.12);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.player-info { min-width: 0; }
.player-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--fm-fg-strong);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  letter-spacing: -0.2px;
}
.player-meta {
  display: flex; gap: 10px; margin-top: 3px;
  font-size: 11px; color: var(--fm-fg-dim);
  font-weight: 500;
}
.player-meta i { font-size: 10px; opacity: 0.7; margin-right: 3px; }
.player-meta span { display: inline-flex; align-items: center; }

.player-pos-badge {
  width: 38px; height: 38px;
  border-radius: var(--fm-radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.player-pos-badge::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.18) 0%, transparent 50%);
}
.pos-GK  .player-pos-badge { background: var(--fm-pos-gk); }
.pos-DEF .player-pos-badge { background: var(--fm-pos-def); }
.pos-MID .player-pos-badge { background: var(--fm-pos-mid); }
.pos-FWD .player-pos-badge { background: var(--fm-pos-fwd); }

.player-rating {
  display: flex; flex-direction: column; align-items: center;
  min-width: 44px;
}
.player-rating-value {
  font-size: 22px;
  font-weight: 800;
  font-family: var(--fm-font-mono);
  color: var(--fm-fg-strong);
  letter-spacing: -0.5px;
  line-height: 1;
}
.player-rating-stars {
  font-size: 8px;
  color: var(--fm-gold);
  margin-top: 2px;
  letter-spacing: 0;
}

/* Сокращённый вариант (для top-3) */
.player-row {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 14px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.04);
  border-left: 3px solid var(--card-accent, var(--fm-accent));
  border-radius: var(--fm-radius);
}
.player-row .player-avatar { width: 36px; height: 36px; border-width: 1px; }
.player-row .player-name { font-size: 13px; }

/* Стат-бары в детальной карточке */
.player-detail-stats {
  display: flex; gap: 12px; margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.player-stat { display: flex; flex-direction: column; align-items: center; min-width: 56px; }
.player-stat-label {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  color: var(--fm-fg-muted);
  font-weight: 600;
}
.player-stat-bar {
  width: 56px;
  height: 4px;
  background: rgba(255,255,255,0.06);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: 4px;
}
.player-stat-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--card-accent, var(--fm-accent)), var(--fm-accent));
  border-radius: 100px;
  box-shadow: 0 0 8px var(--card-accent, var(--fm-accent));
}
.player-stat-value {
  font-weight: 800;
  color: var(--fm-fg-strong);
  font-family: var(--fm-font-mono);
  font-size: 12px;
}

/* ============================================================
   ФИЛЬТРЫ
   ============================================================ */

.squad-controls {
  display: flex;
  gap: 6px;
  margin-bottom: 16px;
  flex-wrap: wrap;
  padding: 4px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--fm-radius);
  width: fit-content;
}

.filter-btn {
  padding: 8px 16px;
  background: transparent;
  color: var(--fm-fg-dim);
  border: 1px solid transparent;
  border-radius: var(--fm-radius-sm);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  transition: all 0.15s;
}
.filter-btn:hover { color: var(--fm-fg); background: rgba(255,255,255,0.04); }
.filter-btn.active {
  color: #04140a;
  background: var(--fm-accent);
  border-color: var(--fm-accent);
  box-shadow: 0 0 16px rgba(74,157,91,0.4);
}
.filter-btn .count {
  margin-left: 6px;
  font-weight: 700;
  opacity: 0.6;
  font-family: var(--fm-font-mono);
  font-size: 10px;
  background: rgba(255,255,255,0.15);
  padding: 1px 5px;
  border-radius: 8px;
}
.filter-btn.active .count { background: rgba(0,0,0,0.2); color: #04140a; opacity: 0.8; }

.training-card-btn {
  flex: 1; min-width: 160px;
  text-align: left;
  padding: 14px 16px;
  line-height: 1.35;
}
.training-card-btn .label { font-weight: 700; color: inherit; font-size: 12px; text-transform: uppercase; letter-spacing: 0.6px; }
.training-card-btn .desc { font-size: 11px; opacity: 0.7; margin-top: 4px; text-transform: none; letter-spacing: 0; font-weight: 400; }

.train-ind-card {
  border: 1px solid var(--fm-border, #263340);
  border-radius: 10px;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.12);
}
.train-ind-card header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 13px;
}
.train-ind-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.train-chk {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  margin: 4px 0;
  cursor: pointer;
}
@media (max-width: 720px) {
  .train-ind-grid { grid-template-columns: 1fr; }
}

.home-shortcuts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  padding: 14px;
}
.home-shortcut {
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: none;
  font: inherit;
}
.home-hero {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
}

/* ============================================================
   ПУСТОЕ СОСТОЯНИЕ
   ============================================================ */

.fm-empty {
  padding: 40px 24px;
  text-align: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--fm-fg-dim);
}
.fm-empty i { font-size: 36px; color: var(--fm-fg-faint); margin-bottom: 12px; display: block; }
.fm-empty strong { display: block; color: var(--fm-fg); font-weight: 700; font-size: 15px; margin-bottom: 6px; }
.fm-empty p { font-size: 13px; max-width: 360px; margin: 0 auto; }

/* ============================================================
   ТАБЛИЦА КЛУБА
   ============================================================ */

.club-table {
  width: 100%;
  font-size: 13px;
  border-collapse: collapse;
}
.club-table td {
  padding: 10px 0;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.club-table tr:first-child td { border-top: none; }
.club-table td:first-child {
  color: var(--fm-fg-dim);
  width: 40%;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  font-weight: 600;
}
.club-table td:last-child { font-weight: 600; color: var(--fm-fg-strong); display: flex; align-items: center; }
.club-table .color-chip {
  display: inline-block;
  width: 14px; height: 14px;
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 8px;
  border: 1px solid rgba(255,255,255,0.2);
}

/* ============================================================
   ТОАСТЫ
   ============================================================ */

.toast-host {
  position: fixed;
  bottom: 24px;
  right: 24px;
  display: flex; flex-direction: column; gap: 8px;
  z-index: 1000;
  pointer-events: none;
}
.toast {
  padding: 12px 16px;
  background: linear-gradient(160deg, rgba(28,39,66,0.95) 0%, rgba(20,29,51,0.95) 100%);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--fm-radius);
  box-shadow: var(--fm-shadow-modal);
  font-size: 13px;
  font-weight: 500;
  min-width: 220px;
  max-width: 340px;
  animation: fmToastIn 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: auto;
  color: var(--fm-fg);
  backdrop-filter: blur(12px);
}
.toast.success { border-color: var(--fm-accent); color: var(--fm-fg-strong); box-shadow: 0 12px 32px rgba(74,157,91,0.25); }
.toast.error   { border-color: var(--fm-danger); color: var(--fm-fg-strong); }
@keyframes fmToastIn { from { transform: translateY(12px) scale(0.96); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }

.noscript-banner {
  padding: 20px;
  background: var(--fm-danger);
  color: #fff;
  text-align: center;
  font-weight: 600;
}

/* ============================================================
   ИКОН-КНОПКА
   ============================================================ */

.fm-icon-btn {
  width: 38px; height: 38px;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent;
  color: var(--fm-fg-dim);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--fm-radius);
  transition: all 0.15s;
  cursor: pointer;
}
.fm-icon-btn:hover { color: var(--fm-fg); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.05); }

/* ============================================================
   АДАПТИВ
   ============================================================ */

@media (max-width: 768px) {
  .fm-header { padding: 0 12px; min-height: 44px; height: 44px; }
  .manager-brand .crest { width: 36px; height: 36px; }
  .manager-info-name { font-size: 15px; }
  .manager-info-meta { font-size: 11px; }
  .manager-balance { padding: 0 8px; margin-right: 6px; }
  .manager-balance-value { font-size: 14px; }
  .fm-page { padding: 16px 12px 40px; }
  .form-grid { grid-template-columns: 1fr; }
  .modal-form { padding: 20px; }
  .modal-preview { padding: 20px; }
  .preview-crest { width: 140px; height: 140px; }
  .player-card { grid-template-columns: 44px 1fr auto; padding: 8px 12px; gap: 10px; }
  .player-pos-badge { width: 32px; height: 32px; font-size: 10px; }
  .player-avatar { width: 40px; height: 40px; }
  .player-rating-value { font-size: 18px; }
}

@media (max-width: 480px) {
  .player-card { grid-template-columns: 40px 1fr auto; }
  .player-meta { display: none; }
  .info-grid { grid-template-columns: 1fr; }
  .kpi-value { font-size: 22px; }
}

/* Скроллбары премиум */
.fm-page::-webkit-scrollbar,
.modal-form::-webkit-scrollbar,
.welcome-page::-webkit-scrollbar { width: 10px; }
.fm-page::-webkit-scrollbar-track,
.modal-form::-webkit-scrollbar-track,
.welcome-page::-webkit-scrollbar-track { background: transparent; }
.fm-page::-webkit-scrollbar-thumb,
.modal-form::-webkit-scrollbar-thumb,
.welcome-page::-webkit-scrollbar-thumb {
  background: var(--fm-tile-4);
  border-radius: 6px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.fm-page::-webkit-scrollbar-thumb:hover,
.modal-form::-webkit-scrollbar-thumb:hover,
.welcome-page::-webkit-scrollbar-thumb:hover {
  background: var(--fm-tile-5);
  background-clip: padding-box;
}

/* ============================================================
   OPENFOOTBALL-STYLE: layout, sidebar, panel, squad, stars
   ============================================================ */

/* Лэйаут: сайдбар слева + main справа */
.manager-layout {
  display: flex;
  flex: 1;
  min-height: 0;
  width: 100%;
}
.manager-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
}

/* fm-menu-toggle (гамбургер для мобилы) */
.fm-menu-toggle {
  display: none;
  background: transparent;
  border: 0;
  padding: 0;
  width: 36px; height: 36px;
  margin-right: 14px;
  cursor: pointer;
  position: relative;
}
.fm-menu-toggle span,
.fm-menu-toggle span::before,
.fm-menu-toggle span::after {
  display: block;
  width: 22px; height: 2px;
  background: var(--tab-fg-active, var(--fm-fg-strong));
  position: absolute;
  left: 7px;
  transition: transform 0.2s;
}
.fm-menu-toggle span { top: 17px; }
.fm-menu-toggle span::before { content: ''; top: -7px; }
.fm-menu-toggle span::after { content: ''; top: 7px; }

/* ----- SIDEBAR ----- */
.fm-sidebar {
  background: #151c22;
  padding: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  border-right: 1px solid #1f2a32;
  flex: 0 0 auto;
  width: 220px;
  z-index: 20;
  transition: transform 0.25s ease;
}
.fm-sidebar-scroll {
  padding: 8px 0;
  flex: 1 1 auto;
  overflow-y: auto;
  min-height: 0;
  scrollbar-width: none;
}
.fm-sidebar-scroll::-webkit-scrollbar { display: none; }

.fm-nav-section {
  list-style: none;
  margin: 0;
  padding: 12px 0 8px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.fm-nav-section:first-child { padding-top: 18px; }
.fm-nav-section:last-child { border-bottom: 0; }
.fm-nav-section li {
  list-style: none;
  margin: 0;
}
.fm-nav-section li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  color: #6e7b85;
  font-size: 15px;
  font-weight: 400;
  text-decoration: none;
  transition: color 0.12s, background 0.12s;
  border-left: 0;
}
.fm-nav-section li a:hover { color: #c8d0d8; background: rgba(255,255,255,0.03); }
.fm-nav-section li a i {
  width: 16px;
  text-align: center;
  font-size: 14px;
  opacity: 0.85;
}
.fm-nav-section li.active a {
  color: #fff;
  background: rgba(255,255,255,0.04);
}
.fm-nav-section li.active a i { color: #4a9d5b; opacity: 1; }
.fm-nav-logout {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 8px 16px;
  color: #6e7b85;
  font-size: 15px;
  font-weight: 400;
  font-family: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color 0.12s, background 0.12s;
}
.fm-nav-logout:hover { color: #e8c4c4; background: rgba(180, 40, 40, 0.12); }
.fm-nav-logout i { width: 16px; text-align: center; font-size: 14px; opacity: 0.85; }
.fm-nav-section-title {
  padding: 4px 16px 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #4e5a63;
}

.fm-sidebar-lang {
  position: relative;
  list-style: none;
}
.fm-sidebar-lang-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  color: #6e7b85;
  font-size: 14px;
  cursor: pointer;
  transition: color 0.12s, background 0.12s;
  border-left: 3px solid transparent;
}
.fm-sidebar-lang-toggle:hover { color: #c8d0d8; background: rgba(255,255,255,0.03); }
.fm-sidebar-lang-menu {
  display: none;
  position: absolute;
  bottom: 100%;
  left: 8px;
  right: 8px;
  background: #1c2830;
  border: 1px solid #263340;
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  z-index: 100;
  padding: 4px 0;
}
.fm-sidebar-lang.fm-lang-open .fm-sidebar-lang-menu { display: block; }
.fm-lang-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  color: #b0bac2;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
}
.fm-lang-option:hover { background: rgba(255,255,255,0.04); color: #fff; }
.flag {
  display: inline-block;
  width: 16px;
  height: 12px;
  background-size: cover;
  background-position: center;
  border-radius: 1px;
  vertical-align: middle;
}
.flag-cn { background-image: linear-gradient(135deg, #de2910 50%, #de2910 50%); }
.flag-de { background: linear-gradient(180deg, #000 33%, #dd0000 33% 66%, #ffce00 66%); }
.flag-es { background: linear-gradient(180deg, #aa151b 25%, #f1bf00 25% 75%, #aa151b 75%); }
.flag-fr { background: linear-gradient(90deg, #002395 33%, #fff 33% 66%, #ed2939 66%); }
.flag-gb { background-image: linear-gradient(45deg, #00247d 25%, #cf142b 25% 50%, #fff 50% 75%, #cf142b 75%); }
.flag-jp { background: #fff; position: relative; }
.flag-jp::after { content: ''; position: absolute; width: 6px; height: 6px; background: #bc002d; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.flag-pt { background: linear-gradient(90deg, #046a38 40%, #da291c 40%); }
.flag-ru { background: linear-gradient(180deg, #fff 33%, #0039a6 33% 66%, #d52b1e 66%); }
.flag-tr { background: #e30a17; }
.flag-us { background: linear-gradient(180deg, #b22234 0%, #b22234 12.5%, #fff 12.5% 25%, #b22234 25% 37.5%, #fff 37.5% 50%, #b22234 50% 62.5%, #fff 62.5% 75%, #b22234 75% 87.5%, #fff 87.5%); }

.fm-nav-divider { height: 1px; background: rgba(255,255,255,0.06); margin: 8px 0; list-style: none; }
.fm-nav-shared-only { list-style: none; }

/* Оверлей для мобильного сайдбара */
.fm-sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 15;
}
body.fm-sidebar-open .fm-sidebar-overlay { display: block; }
body.fm-sidebar-open { overflow: hidden; }

/* ----- fm-header (colored, c CSS-переменными) ----- */
.fm-header-title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  max-width: 220px;
  padding: 0 14px 0 0;
  margin-right: 4px;
  flex-shrink: 1;
  border-right: 1px solid rgba(0,0,0,0.18);
}
.fm-header-title h1 {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fm-header-sub {
  font-size: 13px;
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fm-header-sub a { color: inherit; }

.fm-header.fm-header-colored {
  background: var(--header-bg, var(--fm-bg-header));
  border-bottom-color: var(--header-border, rgba(0,0,0,0.2));
}
.fm-header.fm-header-colored .fm-header-title h1 {
  color: var(--tab-fg-active, #fff);
  text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.fm-header.fm-header-colored .fm-header-sub,
.fm-header.fm-header-colored .fm-header-sub a {
  color: var(--tab-fg, rgba(255,255,255,0.78));
}

.fm-header-actions {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-left: auto;
  align-self: stretch;
  flex-shrink: 0;
}

.fm-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  margin: 0;
  border: 0;
  color: var(--tab-fg-active, #fff);
}
.fm-date-main {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
}
.fm-date-sub {
  font-size: 12px;
  color: var(--tab-fg, rgba(255,255,255,0.7));
  text-transform: none;
}

.fm-process-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 130px;
  padding: 0 18px;
  margin: 0;
  background: var(--tab-fg-active, #fff);
  color: var(--header-bg, #232e35);
  border: 0;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s;
}
.fm-process-btn:hover { background: var(--tab-fg-active, #fff); filter: brightness(0.95); }

/* ----- fm-panel (обёртка контента) ----- */
.fm-panel {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  margin-bottom: 14px;
}
.fm-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border-bottom: 1px solid #263340;
}
.fm-panel-head h3 {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #8a9bbd;
}
.fm-panel-count {
  font-size: 11px;
  font-weight: 600;
  color: #5a6d8f;
  font-family: var(--fm-font-mono);
}
.fm-panel-body {
  padding: 14px;
}
.fm-panel + .fm-panel { margin-top: 0; }

/* ----- fm-squad table ----- */
.fm-squad {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums;
}
.fm-squad thead th {
  padding: 9px 10px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #5a6d8f;
  text-align: left;
  border-bottom: 1px solid #2a353d;
  background: #1e282e;
}
.fm-squad tbody tr {
  transition: background 0.1s ease;
  border-bottom: 1px solid rgba(255,255,255,0.025);
}
.fm-squad tbody tr:nth-child(even) { background: rgba(0,0,0,0.1); }
.fm-squad tbody tr:hover { background: rgba(255,255,255,0.04); }
.fm-squad tbody tr.active-row { background: rgba(74,157,91,0.06); }
.fm-squad tbody td {
  padding: 8px 10px;
  font-size: 13px;
  color: #b0bac2;
  vertical-align: middle;
}
.fm-squad .sq-pos {
  width: 80px;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.fm-squad .sq-pos.pos-GK  { color: #ff8f00; }
.fm-squad .sq-pos.pos-DEF { color: #00bcd4; }
.fm-squad .sq-pos.pos-MID { color: var(--fm-accent); }
.fm-squad .sq-pos.pos-FWD { color: #ef5350; }
.fm-squad .sq-age {
  width: 60px;
  font-family: var(--fm-font-mono);
  font-weight: 600;
  color: var(--fm-fg-dim);
}
.fm-squad .sq-name {
  white-space: nowrap;
  font-weight: 600;
  color: var(--fm-fg-strong);
}
.fm-squad .sq-name .sub {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  font-weight: 400;
  color: var(--fm-fg-muted);
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.fm-squad .sq-name .fa-status {
  font-size: 11px;
  color: var(--fm-fg-muted);
  margin-top: 3px;
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.fm-squad .sq-ability,
.fm-squad .sq-potential {
  width: 110px;
}
.fm-squad .sq-wage {
  width: 90px;
  font-family: var(--fm-font-mono);
  font-weight: 700;
  color: var(--fm-accent);
  text-align: right;
}

/* ----- fm-stars ----- */
.fm-stars {
  display: inline-flex;
  gap: 2px;
}
.fm-stars .star {
  display: inline-block;
  width: 14px;
  height: 14px;
  font-size: 13px;
  line-height: 14px;
  text-align: center;
  color: #2a3238;
  position: relative;
}
.fm-stars .star::before {
  content: "\2605";
}
.fm-stars .star.on {
  color: #e8b628;
  text-shadow: 0 0 6px rgba(232,182,40,0.35);
}
.fm-stars .star.half {
  background: linear-gradient(90deg, #e8b628 50%, #2a3238 50%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fm-stars .star.half::before {
  background: linear-gradient(90deg, #e8b628 50%, #2a3238 50%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ----- layout helpers ----- */
.fm-page {
  padding: 16px 22px 40px;
  overflow-y: auto;
  flex: 1;
  background: var(--fm-bg);
}
.fm-page-inner { width: 100%; max-width: none; margin: 0; }

.fm-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 980px) { .fm-row { grid-template-columns: 1fr; } }

/* Mobile: сайдбар выезжает */
@media (max-width: 768px) {
  .fm-menu-toggle { display: block; }
  .fm-sidebar {
    position: fixed;
    transform: translateX(-100%);
    z-index: 30;
  }
  body.fm-sidebar-open .fm-sidebar { transform: translateX(0); }
  .fm-page { padding: 14px 12px 40px; }
  .fm-squad thead th, .fm-squad tbody td { padding: 6px 6px; font-size: 12px; }
  .fm-squad .sq-wage { display: none; }
}

/* Перестилизация info-tile / kpi / card под новый дизайн */
.kpi {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.kpi::before { display: none; }
.kpi-gold { border-color: rgba(255,193,7,0.3); background: linear-gradient(180deg, #2a2310 0%, #1f1a08 100%); }
.kpi-icon { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); }
.kpi-gold .kpi-icon { background: var(--fm-gold-soft); border-color: rgba(255,193,7,0.25); }

.fm-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  padding: 14px;
}
.fm-card-title {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: #8a9bbd;
  margin-bottom: 12px;
}

/* Старые player-row / player-card больше не нужны для squad, но могут пригодиться в overview */
.player-list { display: flex; flex-direction: column; gap: 4px; }
.player-row {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.04);
  border-radius: 4px;
}
.player-row .player-avatar { width: 28px; height: 28px; border-width: 1px; }
.player-row .player-name { font-size: 13px; font-weight: 600; color: var(--fm-fg-strong); }
.player-row .player-meta { display: block; font-size: 10px; color: var(--fm-fg-dim); margin-top: 1px; font-weight: 500; }

/* Пустое состояние под новый стиль */
.fm-empty {
  padding: 36px 18px;
  background: rgba(255,255,255,0.02);
  border: 1px dashed rgba(255,255,255,0.08);
  border-radius: 4px;
  color: var(--fm-fg-dim);
  text-align: center;
}
.fm-empty i { display: block; font-size: 22px; color: var(--fm-fg-faint); margin-bottom: 8px; }
.fm-empty strong { display: block; color: var(--fm-fg); font-weight: 600; font-size: 13px; margin-bottom: 4px; }
.fm-empty p { font-size: 11px; max-width: 320px; margin: 0 auto; }

/* Filter buttons в squad */
.fm-squad + .squad-controls { padding: 10px 14px; background: rgba(0,0,0,0.1); border-top: 1px solid rgba(255,255,255,0.04); }
.squad-controls {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.filter-btn {
  padding: 6px 12px;
  background: transparent;
  color: #8a9bbd;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.12s;
}
.filter-btn:hover { color: var(--fm-fg-strong); border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); }
.filter-btn.active {
  color: #fff;
  background: #4a9d5b;
  border-color: #4a9d5b;
}
.filter-btn .count {
  margin-left: 5px;
  font-weight: 600;
  opacity: 0.7;
  font-family: var(--fm-font-mono);
  font-size: 10px;
}

/* ============================================================
   PLAYER DETAIL MODAL (OF-style)
   ============================================================ */

.player-modal {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  width: 100%;
  max-width: 960px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0,0,0,0.7);
  animation: fmSlideUp 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@media (max-width: 768px) { .player-modal { max-height: 95vh; } }

.player-modal-head {
  display: grid;
  grid-template-columns: 120px 1fr auto auto 36px;
  gap: 18px;
  align-items: center;
  padding: 18px 22px;
  background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border-bottom: 1px solid #263340;
  position: relative;
}
.player-modal-portrait {
  width: 120px; height: 120px;
  border-radius: 6px;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,0.08);
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
.player-modal-portrait svg { display: block; width: 100%; height: 100%; }

.player-modal-id { min-width: 0; }
.pmi-pos {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.4);
  margin-bottom: 6px;
}
.pmi-pos.pos-GK  { background: var(--fm-pos-gk); }
.pmi-pos.pos-DEF { background: var(--fm-pos-def); }
.pmi-pos.pos-MID { background: var(--fm-pos-mid); }
.pmi-pos.pos-FWD { background: var(--fm-pos-fwd); }
.pmi-name {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.4px;
  color: var(--fm-fg-strong);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pmi-meta {
  display: flex;
  gap: 14px;
  margin-top: 6px;
  font-size: 12px;
  color: var(--fm-fg-dim);
}
.pmi-meta span { display: inline-flex; align-items: center; gap: 4px; }
.pmi-meta i { color: var(--fm-fg-muted); }

.player-modal-rating,
.player-modal-potential {
  display: flex; flex-direction: column; align-items: center;
  padding: 6px 14px;
  border-radius: 4px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.04);
}
.player-modal-potential { background: rgba(255,193,7,0.06); border-color: rgba(255,193,7,0.2); }
.pmr-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--fm-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 4px;
}
.pmr-stars { display: inline-flex; gap: 2px; margin-bottom: 4px; }
.pmr-num {
  font-size: 18px;
  font-weight: 800;
  font-family: var(--fm-font-mono);
  color: var(--fm-fg-strong);
}

.player-modal-close {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 4px;
  color: var(--fm-fg-dim);
  cursor: pointer;
  transition: all 0.12s;
}
.player-modal-close:hover { background: rgba(255,255,255,0.05); color: var(--fm-fg-strong); border-color: rgba(255,255,255,0.15); }

.player-modal-tabs {
  display: flex;
  background: var(--fm-bg-header);
  border-bottom: 1px solid #263340;
  padding: 0 12px;
  overflow-x: auto;
  scrollbar-width: none;
}
.player-modal-tabs::-webkit-scrollbar { display: none; }
.player-modal-tab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 12px 16px;
  background: transparent;
  color: var(--fm-fg-dim);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.12s;
}
.player-modal-tab:hover { color: var(--fm-fg); background: rgba(255,255,255,0.03); }
.player-modal-tab.active {
  color: var(--fm-fg-strong);
  border-bottom-color: var(--fm-accent);
}
.player-modal-tab i { font-size: 12px; }

.player-modal-body {
  padding: 18px 22px;
  overflow-y: auto;
  flex: 1;
  background: var(--fm-bg);
}

/* Обзор */
.pm-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.pm-block {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  padding: 14px 16px;
}
.pm-block h4 {
  margin: 0 0 12px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #8a9bbd;
  padding-bottom: 8px;
  border-bottom: 1px solid #263340;
}
.pm-bar {
  display: grid;
  grid-template-columns: 130px 1fr 36px;
  gap: 10px;
  align-items: center;
  margin-bottom: 8px;
}
.pm-bar-label {
  font-size: 11px;
  color: var(--fm-fg-dim);
  text-align: right;
}
.pm-bar-track {
  height: 6px;
  background: rgba(255,255,255,0.04);
  border-radius: 100px;
  overflow: hidden;
}
.pm-bar-fill {
  height: 100%;
  border-radius: 100px;
  transition: width 0.4s ease;
  box-shadow: 0 0 8px currentColor;
}
.pm-bar-value {
  font-size: 12px;
  font-weight: 700;
  font-family: var(--fm-font-mono);
  color: var(--fm-fg-strong);
  text-align: right;
}

.pm-info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.pm-info-table td {
  padding: 6px 0;
  border-top: 1px solid rgba(255,255,255,0.04);
}
.pm-info-table tr:first-child td { border-top: none; }
.pm-info-table td:first-child {
  color: var(--fm-fg-dim);
  width: 45%;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pm-info-table td:last-child {
  font-weight: 600;
  color: var(--fm-fg-strong);
}

/* Характеристики */
.pm-skills { display: flex; flex-direction: column; gap: 14px; }
.pm-skills-cat {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  padding: 14px 16px;
}
.pm-skills-cat h4 {
  margin: 0 0 14px;
  font-size: 12px;
  font-weight: 700;
  color: var(--fm-fg-strong);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}
.pm-skills-cat h4 i { color: var(--fm-accent); margin-right: 6px; }
.pm-skills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 8px 18px;
}
.pm-skill {
  display: grid;
  grid-template-columns: 110px 1fr 32px;
  gap: 8px;
  align-items: center;
}
.pm-skill-label {
  font-size: 11px;
  color: var(--fm-fg-dim);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pm-skill-bar {
  height: 4px;
  background: rgba(255,255,255,0.04);
  border-radius: 100px;
  overflow: hidden;
}
.pm-skill-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--fm-cyan) 0%, var(--fm-accent) 100%);
  border-radius: 100px;
  transition: width 0.4s ease;
  box-shadow: 0 0 6px rgba(74,157,91,0.4);
}
.pm-skill-value {
  font-size: 11px;
  font-weight: 700;
  font-family: var(--fm-font-mono);
  color: var(--fm-fg-strong);
  text-align: right;
}

/* Карьера */
.pm-career {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

/* Контракт */
.pm-contract {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
}

@media (max-width: 640px) {
  .player-modal-head {
    grid-template-columns: 80px 1fr 36px;
    grid-template-rows: auto auto;
    gap: 12px;
  }
  .player-modal-portrait { width: 80px; height: 80px; grid-row: span 2; }
  .player-modal-rating, .player-modal-potential { padding: 4px 8px; }
  .pmr-num { font-size: 14px; }
  .pmi-name { font-size: 17px; }
  .pmi-meta { font-size: 11px; gap: 8px; flex-wrap: wrap; }
}

/* ============================================================
   TACTICS PANEL
   ============================================================ */

.spectrum {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 4px;
}
.spectrum-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 8px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 4px;
  color: var(--fm-fg-dim);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  cursor: pointer;
  transition: all 0.12s;
}
.spectrum-step i { font-size: 16px; opacity: 0.7; }
.spectrum-step span { text-align: center; line-height: 1.2; }
.spectrum-step:hover { color: var(--fm-fg); border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.03); }
.spectrum-step.active {
  color: #04140a;
  background: var(--fm-accent);
  border-color: var(--fm-accent);
}
.spectrum-step.active i { color: #04140a; opacity: 1; }

.tactic-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 18px;
}
.tactic-cell { display: flex; flex-direction: column; gap: 8px; }
.tactic-label {
  font-size: 11px;
  font-weight: 600;
  color: var(--fm-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.set-pieces { display: flex; flex-direction: column; gap: 12px; }
.set-piece-row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  align-items: center;
  font-size: 12px;
  color: var(--fm-fg);
}
.set-piece-row > span { display: inline-flex; align-items: center; gap: 6px; color: var(--fm-fg-dim); }
.set-piece-row > span i { color: var(--fm-accent); width: 14px; }

/* ============================================================
   WIZARD — Top Eleven-style club creation
   ============================================================ */

.wiz {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  overflow: hidden;
  position: relative;
  background-color: #07090f;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}
.wiz::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(5,8,14,0.42) 0%, rgba(5,8,14,0.62) 45%, rgba(5,8,14,0.88) 100%),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(74,157,91,0.08), transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.wiz > * { position: relative; z-index: 1; }
.wiz--intro { grid-template-rows: 1fr; }
.wiz--intro::before {
  background: linear-gradient(180deg, rgba(5,8,14,0.28) 0%, rgba(5,8,14,0.45) 38%, rgba(5,8,14,0.82) 100%);
}
.wiz--bg-intro   { background-image: url(/manager/assets/bg/intro.webp); }
.wiz--bg-name    { background-image: url(/manager/assets/bg/name.webp); }
.wiz--bg-country { background-image: url(/manager/assets/bg/country.webp); }
.wiz--bg-kit     { background-image: url(/manager/assets/bg/kit.webp); }
.wiz--bg-crest   { background-image: url(/manager/assets/bg/crest.webp); }
.wiz--bg-stadium { background-image: url(/manager/assets/bg/stadium.webp); }
.wiz--bg-manager { background-image: url(/manager/assets/bg/manager.webp); }
.wiz-top {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 14px 24px 4px;
  gap: 16px;
}
.wiz-brand {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--fm-accent);
}

.wiz-stepper {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin: 0 20px 8px;
  padding: 10px 12px 12px;
  flex-shrink: 0;
  background: rgba(7,10,18,0.5);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
}
.wiz-step {
  flex: 1;
  max-width: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: none;
  border: 0;
  color: var(--fm-fg-muted);
  position: relative;
  padding: 0 4px;
  cursor: default;
}
.wiz-step.done { cursor: pointer; }
.wiz-step.active { cursor: default; }
.wiz-step-num {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid var(--fm-tile-4);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 12px;
  background: var(--fm-bg);
  color: var(--fm-fg-muted);
  z-index: 1;
  transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}
.wiz-step.todo .wiz-step-num { opacity: 0.55; }
.wiz-step.done .wiz-step-num {
  background: var(--fm-accent);
  border-color: var(--fm-accent);
  color: #04140a;
}
.wiz-step.active .wiz-step-num {
  border-color: var(--fm-accent);
  color: var(--fm-accent);
  background: rgba(74,157,91,0.12);
  box-shadow: 0 0 0 4px rgba(74,157,91,0.22);
}
.wiz-step-lab {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2px;
  text-align: center;
  line-height: 1.2;
}
.wiz-step.active .wiz-step-lab { color: var(--fm-fg-strong); }
.wiz-step.done .wiz-step-lab { color: var(--fm-accent); }
.wiz-step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 14px;
  left: calc(50% + 18px);
  right: calc(-50% + 18px);
  height: 2px;
  background: var(--fm-tile-4);
  z-index: 0;
}
.wiz-step.done:not(:last-child)::after {
  background: var(--fm-accent);
}
.wiz-pane {
  animation: wizPaneIn 0.28s ease;
}
@keyframes wizPaneIn {
  from { opacity: 0; transform: translateX(18px); }
  to   { opacity: 1; transform: none; }
}
.wiz-body {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 24px;
  padding: 8px 28px 16px;
  overflow: hidden;
}
.wiz-main {
  min-width: 0;
  overflow-y: auto;
  padding-right: 8px;
}
.wiz-kicker {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--fm-accent);
  margin-bottom: 8px;
}
.wiz-title {
  font-size: clamp(26px, 4vw, 40px);
  margin-bottom: 8px;
}
.wiz-lead {
  color: var(--fm-fg-dim);
  margin-bottom: 22px;
  max-width: 520px;
}
.wiz-main .form-field { max-width: 480px; }
.wiz-main .form-label { display: block; margin-bottom: 8px; }
.wiz-input {
  display: block;
  width: 100%;
  max-width: 480px;
  background: rgba(8,12,22,0.72);
  border: 1px solid rgba(255,255,255,0.14);
  color: var(--fm-fg-strong);
  font: inherit;
  font-size: 20px;
  font-weight: 700;
  padding: 14px 16px;
  border-radius: 12px;
  outline: none;
}
.wiz-input:focus { border-color: var(--fm-accent); box-shadow: 0 0 0 3px var(--fm-accent-soft); }
.wiz-hint { margin-top: 8px; font-size: 12px; color: var(--fm-fg-muted); }
.wiz-error { margin-top: 10px; color: var(--fm-danger); font-size: 13px; font-weight: 600; }

.wiz-toolbar { max-width: 720px; margin-bottom: 12px; }
.wiz-search {
  width: 100%;
  background: rgba(8,12,22,0.72);
  border: 1px solid rgba(255,255,255,0.14);
  color: var(--fm-fg-strong);
  font: inherit;
  font-size: 15px;
  padding: 10px 12px;
  border-radius: 10px;
  outline: none;
  margin-bottom: 10px;
}
.wiz-search:focus { border-color: var(--fm-accent); }
.wiz-regions { display: flex; flex-wrap: wrap; gap: 6px; }
.wiz-region {
  background: rgba(16,22,38,0.7);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--fm-fg-dim);
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
}
.wiz-region.active { border-color: var(--fm-accent); color: var(--fm-accent); background: var(--fm-accent-soft); }
.wiz-countries {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: 8px;
  max-width: 720px;
  max-height: min(42vh, 360px);
  overflow-y: auto;
  padding-right: 4px;
}
.wiz-city-field { margin-top: 14px; max-width: 320px; }
.wiz-country {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 14px;
  background: rgba(16,22,38,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  color: var(--fm-fg);
  text-align: left;
}
.wiz-country .flag { font-size: 22px; line-height: 1; }
.wiz-country .cname { font-weight: 700; }
.wiz-country:hover { border-color: var(--fm-border-hover); }
.wiz-country.active {
  border-color: var(--fm-accent);
  box-shadow: 0 0 0 2px var(--fm-accent-soft);
  background: var(--fm-accent-soft);
}

.wiz-kits, .wiz-crests {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 10px;
  max-width: 720px;
}
.wiz-kit, .wiz-crest {
  background: rgba(16,22,38,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  padding: 10px;
  color: var(--fm-fg);
}
.wiz-kit.active, .wiz-crest.active {
  border-color: var(--fm-accent);
  box-shadow: 0 0 0 2px var(--fm-accent-soft);
}
.wiz-kit .preview, .wiz-crest .preview { height: 104px; }
.wiz-kit, .wiz-crest { min-height: 148px; }
.wiz-kit span, .wiz-crest span {
  display: block;
  text-align: center;
  font-size: 12px;
  font-weight: 600;
  margin-top: 6px;
  padding-bottom: 2px;
}

.wiz-colors { margin-top: 18px; max-width: 640px; }
.wiz-colors .form-label { margin-bottom: 8px; }

.wiz-preview {
  background: rgba(10,14,24,0.58);
  backdrop-filter: blur(18px) saturate(1.15);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 20px;
  padding: 24px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  overflow: auto;
  box-shadow: 0 24px 60px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
}
.wiz-preview .crest { width: 140px; height: 140px; }
.wiz-preview .kit { width: 160px; height: 160px; }
.wiz-preview .pname {
  font-size: 22px;
  font-weight: 800;
  text-align: center;
}
.wiz-preview .pmeta { color: var(--fm-fg-dim); font-size: 13px; text-align: center; }

.wiz-continue {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.wiz-continue .welcome-cta { margin: 0; }
.wiz-continue-hint {
  font-size: 12px;
  color: var(--fm-fg-muted);
}
.wiz-nav {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 28px calc(16px + env(safe-area-inset-bottom, 0px));
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  background: linear-gradient(180deg, rgba(7,9,15,0) 0%, rgba(7,9,15,0.92) 28%, #07090f 100%);
  border-top: 1px solid rgba(255,255,255,0.06);
}
.wiz-nav .btn { min-width: 140px; justify-content: center; }

.wiz-intro {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  position: relative;
  overflow: hidden;
}
.wiz-intro-inner {
  position: relative;
  z-index: 2;
  max-width: 640px;
  padding: 36px 40px;
  background: rgba(7,10,18,0.42);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 24px;
  box-shadow: 0 30px 80px rgba(0,0,0,0.45);
}
.wiz-intro .welcome-title { text-shadow: 0 6px 28px rgba(0,0,0,0.65); }
.wiz-title, .wiz-lead { text-shadow: 0 2px 12px rgba(0,0,0,0.55); }

.wiz-squad {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
}
.wiz-player {
  background: rgba(16,22,38,0.72);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 10px 12px;
}
.wiz-player .n { font-weight: 700; font-size: 13px; }
.wiz-player .m { font-size: 11px; color: var(--fm-fg-dim); display: flex; justify-content: space-between; margin-top: 4px; }
.wiz-player .ovr { color: var(--fm-accent); font-weight: 800; }

.wiz-busy { opacity: 0.6; pointer-events: none; }

@media (max-width: 1100px) {
  .wiz-body { grid-template-columns: 1fr 280px; gap: 16px; padding: 8px 18px 12px; }
  .wiz-preview .crest { width: 110px; height: 110px; }
  .wiz-preview .kit { width: 130px; height: 130px; }
}
@media (max-width: 840px) {
  .wiz-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    padding: 6px 14px 8px;
    overflow-y: auto;
    gap: 12px;
  }
  .wiz-preview {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    padding: 12px;
    gap: 8px;
  }
  .wiz-preview .crest, .wiz-preview .kit { width: 72px; height: 72px; }
  .wiz-preview .pname { font-size: 16px; width: 100%; }
  .wiz-kits, .wiz-crests { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wiz-nav { padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px)); }
  .wiz-nav .btn { min-width: 0; flex: 1; }
  .wiz-stepper { margin: 0 10px 6px; padding: 8px 4px 10px; overflow-x: auto; }
  .wiz-step { min-width: 48px; }
  .wiz-step-lab { font-size: 9px; }
  .wiz-step-num { width: 24px; height: 24px; font-size: 11px; }
  .wiz-step:not(:last-child)::after { top: 11px; }
  .wiz-title { font-size: 24px; }
  .wiz-continue { margin-top: 18px; }
  .wiz-intro-inner { padding: 24px 18px; margin: 0 8px; }
  .wiz-countries { max-height: 38vh; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wiz-top { padding: 10px 14px 2px; }
}
@media (max-width: 480px) {
  .wiz-step-lab { display: none; }
  .wiz-continue-hint { display: none; }
  .welcome-cta, .wiz-continue .welcome-cta { width: 100%; justify-content: center; }
  .wiz-preview .pmeta { font-size: 11px; }
}

/* ============================================================
   ONBOARDING — ультра-премиум стартовое окно регистрации клуба
   ============================================================ */

.onboarding-page {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: radial-gradient(ellipse 80% 50% at 50% -10%, rgba(74,157,91,0.10) 0%, transparent 60%),
              radial-gradient(ellipse 60% 40% at 100% 100%, rgba(0,212,255,0.06) 0%, transparent 60%),
              linear-gradient(180deg, #0a1428 0%, #050810 100%);
  isolation: isolate;
}

.onboarding-bg-stadium {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
  mask-image: linear-gradient(180deg, transparent 0%, black 30%, black 70%, transparent 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, black 30%, black 70%, transparent 100%);
}

.onboarding-bg-rays {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 50% 80% at 50% 100%, rgba(74,157,91,0.18) 0%, transparent 50%),
    radial-gradient(ellipse 80% 40% at 50% 0%, rgba(255,193,7,0.05) 0%, transparent 50%);
}

.onboarding-bg-particles {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.onboarding-bg-particles::before,
.onboarding-bg-particles::after {
  content: '';
  position: absolute;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.5;
  animation: floatParticle 18s ease-in-out infinite;
}
.onboarding-bg-particles::before {
  background: radial-gradient(circle, rgba(74,157,91,0.6) 0%, transparent 70%);
  top: 20%;
  left: 15%;
}
.onboarding-bg-particles::after {
  background: radial-gradient(circle, rgba(0,212,255,0.5) 0%, transparent 70%);
  bottom: 15%;
  right: 10%;
  animation-delay: -9s;
  animation-duration: 22s;
}
@keyframes floatParticle {
  0%, 100% { transform: translate(0,0) scale(1); }
  33%      { transform: translate(40px, -30px) scale(1.1); }
  66%      { transform: translate(-30px, 25px) scale(0.9); }
}

/* top bar */
.onboarding-top {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  flex-shrink: 0;
}
.onboarding-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--fm-fg-dim);
}
.onboarding-brand i { color: var(--fm-accent); font-size: 16px; }

.onboarding-progress {
  display: flex;
  align-items: center;
  gap: 6px;
}
.onboarding-progress-dot {
  width: 32px;
  height: 4px;
  border-radius: 100px;
  background: rgba(255,255,255,0.08);
  transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.onboarding-progress-dot.active {
  background: var(--fm-accent);
  width: 56px;
  box-shadow: 0 0 12px rgba(74,157,91,0.5);
}
.onboarding-progress-dot.done {
  background: var(--fm-accent);
  opacity: 0.6;
}
.onboarding-progress-text {
  margin-left: 12px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.6px;
  color: var(--fm-fg-dim);
}

.onboarding-exit {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 8px;
  color: var(--fm-fg-dim);
  cursor: pointer;
  transition: all 0.15s;
}
.onboarding-exit:hover { background: rgba(255,255,255,0.04); color: var(--fm-fg-strong); border-color: rgba(255,255,255,0.2); }

/* main body */
.onboarding-body {
  position: relative;
  z-index: 2;
  flex: 1;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  padding: 0 80px 32px;
  min-height: 0;
}
@media (max-width: 980px) {
  .onboarding-body { grid-template-columns: 1fr; padding: 0 24px 24px; }
}

/* left: form */
.onboarding-form {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

.onboarding-step-num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--fm-accent);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.onboarding-step-num::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--fm-accent);
  box-shadow: 0 0 8px var(--fm-accent);
}

.onboarding-title {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 800;
  letter-spacing: -1px;
  line-height: 1.05;
  margin-bottom: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #b8c8e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 4px 12px rgba(74,157,91,0.15));
}
.onboarding-title .accent {
  background: linear-gradient(135deg, var(--fm-accent) 0%, #00d4ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.onboarding-sub {
  font-size: 15px;
  color: var(--fm-fg-dim);
  margin-bottom: 32px;
  max-width: 440px;
  line-height: 1.5;
}

/* Big text input style */
.onb-field {
  margin-bottom: 20px;
}
.onb-field-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--fm-fg-dim);
  text-transform: uppercase;
  letter-spacing: 0.8px;
  margin-bottom: 8px;
}
.onb-input {
  width: 100%;
  padding: 16px 18px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  font-size: 18px;
  font-weight: 600;
  color: var(--fm-fg-strong);
  letter-spacing: -0.3px;
  transition: all 0.15s;
}
.onb-input::placeholder { color: var(--fm-fg-faint); font-weight: 400; }
.onb-input:focus {
  border-color: var(--fm-accent);
  background: rgba(74,157,91,0.06);
  box-shadow: 0 0 0 4px rgba(74,157,91,0.10), 0 8px 24px rgba(74,157,91,0.15);
  outline: none;
}
.onb-input-big {
  font-size: 28px;
  padding: 18px 22px;
  font-weight: 700;
}

.onb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

/* Country picker — карточки стран */
.onb-countries {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  max-height: 340px;
  overflow-y: auto;
  padding-right: 4px;
}
.onb-country {
  position: relative;
  padding: 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s;
  text-align: left;
  font-family: inherit;
  color: inherit;
}
.onb-country:hover {
  border-color: rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.05);
  transform: translateY(-1px);
}
.onb-country.active {
  border-color: var(--fm-accent);
  background: var(--fm-accent-soft);
  box-shadow: 0 0 16px rgba(74,157,91,0.3);
}
.onb-country.active::after {
  content: '✓';
  position: absolute;
  top: 8px; right: 10px;
  color: var(--fm-accent);
  font-weight: 800;
  font-size: 14px;
}
.onb-country-flag {
  font-size: 24px;
  margin-bottom: 6px;
  display: block;
}
.onb-country-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--fm-fg-strong);
  display: block;
  margin-bottom: 2px;
}
.onb-country-meta {
  font-size: 11px;
  color: var(--fm-fg-dim);
}

/* Color picker */
.onb-color-section { margin-bottom: 24px; }
.onb-color-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.onb-color-chip {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.12s;
  position: relative;
}
.onb-color-chip:hover { transform: scale(1.1); }
.onb-color-chip.active {
  border-color: #fff;
  box-shadow: 0 0 0 3px var(--fm-bg), 0 0 16px rgba(74,157,91,0.4);
}
.onb-color-custom {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 2px dashed rgba(255,255,255,0.2);
  position: relative;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  background: transparent;
}
.onb-color-custom input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.onb-color-custom i { font-size: 14px; color: var(--fm-fg-dim); pointer-events: none; }
.onb-color-hex {
  font-family: var(--fm-font-mono);
  font-size: 12px;
  color: var(--fm-fg-dim);
  margin-left: 12px;
  letter-spacing: 0.5px;
}

/* Crest style picker (большие кнопки с превью) */
.onb-styles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 10px;
}
.onb-style {
  padding: 18px 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  transition: all 0.15s;
  font-family: inherit;
  color: var(--fm-fg-dim);
}
.onb-style:hover { border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.05); color: var(--fm-fg); }
.onb-style.active {
  border-color: var(--fm-accent);
  background: var(--fm-accent-soft);
  color: var(--fm-accent);
  box-shadow: 0 0 16px rgba(74,157,91,0.3);
}
.onb-style svg { width: 44px; height: 44px; }
.onb-style span { font-size: 12px; font-weight: 600; letter-spacing: 0.3px; }

/* right: preview */
.onboarding-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-width: 0;
}
.onb-preview-card {
  position: relative;
  width: 100%;
  max-width: 460px;
  padding: 32px 28px;
  background: linear-gradient(160deg, rgba(28,39,66,0.85) 0%, rgba(20,29,51,0.85) 100%);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.5);
  text-align: center;
  overflow: hidden;
  animation: previewEnter 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes previewEnter {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.onb-preview-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 30%, var(--c-primary, var(--fm-accent)) 0%, transparent 70%);
  opacity: 0.10;
  pointer-events: none;
}
.onb-preview-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 16px 16px;
  pointer-events: none;
  opacity: 0.5;
}
.onb-preview-inner { position: relative; z-index: 1; }

.onb-preview-label {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 100px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--fm-fg-dim);
  margin-bottom: 18px;
}

.onb-preview-crest {
  width: 200px; height: 200px;
  margin: 0 auto 20px;
  filter: drop-shadow(0 12px 36px rgba(0,0,0,0.5));
  animation: crestPulse 4s ease-in-out infinite;
  transition: filter 0.4s ease;
}
.onb-preview-crest svg { display: block; width: 100%; height: 100%; }
@keyframes crestPulse {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50%      { transform: scale(1.04) rotate(1deg); }
}

.onb-preview-name {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.5px;
  margin-bottom: 6px;
  background: linear-gradient(180deg, #fff 0%, #c8d0e0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  min-height: 36px;
  word-break: break-word;
}
.onb-preview-name.empty {
  color: var(--fm-fg-faint);
  font-style: italic;
  font-weight: 500;
  font-size: 18px;
  background: none;
  -webkit-text-fill-color: var(--fm-fg-faint);
}
.onb-preview-meta {
  color: var(--fm-fg-dim);
  font-size: 13px;
  margin-bottom: 4px;
  min-height: 18px;
}
.onb-preview-manager {
  color: var(--fm-fg-muted);
  font-size: 12px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.06);
  min-height: 18px;
}

/* bottom nav */
.onboarding-nav {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 80px 36px;
  flex-shrink: 0;
}
@media (max-width: 980px) { .onboarding-nav { padding: 18px 24px 24px; } }

.onb-nav-back {
  padding: 12px 22px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 100px;
  color: var(--fm-fg-dim);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.onb-nav-back:hover { color: var(--fm-fg); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.03); }

.onb-nav-next {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  background: linear-gradient(145deg, #4aad5b, #3a8d4a);
  color: #fff;
  border: 1px solid #3a8d4a;
  border-radius: 4px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: none;
  position: relative;
  overflow: hidden;
}
.onb-nav-next::before { display: none; }
.onb-nav-next:hover { background: linear-gradient(145deg, #58c06a, #3a8d4a); }
.onb-nav-next:active { transform: translateY(1px); }
.onb-nav-next:disabled {
  background: var(--fm-tile-4);
  color: var(--fm-fg-faint);
  box-shadow: none;
  cursor: not-allowed;
}
.onb-nav-next:disabled::before { display: none; }

/* Шаги переключаются с slide-анимацией */
.onboarding-form-anim {
  animation: stepEnter 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes stepEnter {
  from { opacity: 0; transform: translateX(30px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Manager preview avatar (генерируется на лету) */
.onb-preview-manager-avatar {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 6px 12px;
  background: rgba(255,255,255,0.04);
  border-radius: 100px;
  font-size: 12px;
  color: var(--fm-fg);
}
.onb-preview-manager-avatar svg { width: 24px; height: 24px; border-radius: 50%; }

/* Конфетти на финальном шаге при создании клуба */
.confetti-piece {
  position: absolute;
  width: 8px; height: 14px;
  border-radius: 2px;
  animation: confettiFall 2.5s ease-in forwards;
  pointer-events: none;
}
@keyframes confettiFall {
  0%   { transform: translateY(-100vh) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

/* Маленькие экраны */
@media (max-width: 768px) {
  .onboarding-top { padding: 16px 20px; }
  .onboarding-progress-text { display: none; }
  .onboarding-title { font-size: 32px; }
  .onboarding-body { padding: 0 20px 20px; }
  .onb-input { font-size: 16px; padding: 14px; }
  .onb-input-big { font-size: 22px; padding: 14px; }
  .onb-row { grid-template-columns: 1fr; }
  .onb-preview-crest { width: 150px; height: 150px; }
  .onb-preview-name { font-size: 22px; }
  .onb-nav-next { padding: 12px 24px; font-size: 14px; }
}

/* ============================================================
   ТАКТИКА — рабочий стол
   ============================================================ */
.fm-page--tac {
  padding: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.fm-page--tac .fm-panel {
  flex: 1;
  min-height: 0;
  margin-bottom: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.fm-page--tac .fm-page-inner {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.tac-workspace { display:flex; flex-direction:column; gap:8px; min-width:0; flex:1; min-height:0; overflow:hidden; }
.tac-head {
  display:grid; grid-template-columns:minmax(200px,240px) minmax(0,1fr);
  gap:12px; align-items:start; flex-shrink:0;
  padding:8px 12px;
  background:linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border:1px solid #263340; border-radius:4px;
}
.tac-head-form { font-size:16px; font-weight:800; letter-spacing:0.4px; text-transform:uppercase; color:#fff; line-height:1.15; }
.tac-head-sub { margin-top:2px; font-size:11px; color:var(--fm-fg-dim); }
.tac-formation-field { display:flex; align-items:center; gap:6px; }
.tac-formation-select {
  flex:1; min-width:0; height:32px; padding:0 8px;
  background:#151c22; color:#fff; border:1px solid #263340; border-radius:4px;
  font-size:13px; font-weight:700;
}
.tac-formation-save { padding:6px 8px; font-size:11px; flex-shrink:0; }
.tac-team-strip {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:6px 8px;
  align-items:start;
  min-width:0;
}
.tac-team-cell-label {
  font-size:9px; font-weight:700; letter-spacing:.6px; text-transform:uppercase;
  color:var(--fm-fg-muted); margin-bottom:4px;
}
.tac-team-strip .tac-spect-step { padding:6px 2px; font-size:9px; }
.tac-team-strip .tac-spect-step i { display:none; }
.tac-derived-mini {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px 10px;
}
.tac-derived-mini .tac-meter-label { font-size:9px; margin-bottom:2px; }
.tac-derived-mini .tac-meter-value { font-size:10px; }
.tac-trim { min-width:0; }
.tac-trim .tac-spect { margin-top:4px; }
.tac-trim .tac-spect-step { padding:4px 2px; font-size:9px; }
.tac-trim-pct { float:right; font-variant-numeric:tabular-nums; color:#fff; font-weight:700; }
.tac-meters {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px;
}
.tac-meter { min-width:0; }
.tac-meter-label { font-size:10px; letter-spacing:.6px; text-transform:uppercase; color:var(--fm-fg-muted); margin-bottom:4px; }
.tac-meter-bar { height:4px; background:rgba(255,255,255,.08); border-radius:0; overflow:hidden; }
.tac-meter-fill { display:block; height:100%; width:0; background:var(--fm-accent, #4a9d5b); border-radius:0; }
.tac-meter-value { margin-top:2px; font-size:11px; font-weight:700; color:#fff; font-variant-numeric:tabular-nums; }

.tac-subnav { display:none; }
.tac-strip {
  margin: 0;
  padding: 6px 12px;
  background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border: 1px solid #263340;
  border-radius: 4px;
  color: var(--fm-fg-dim);
  flex-shrink: 0;
}
.tac-body { padding:0; min-width:0; display:flex; flex-direction:column; gap:8px; flex:1; overflow:hidden; }

.tac-stage {
  display:grid; grid-template-columns:minmax(0,1fr) 280px;
  gap:0; align-items:stretch;
  flex:1; min-height:0;
  background:linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border:1px solid #263340; border-radius:4px; overflow:hidden;
}
.tac-pitch-col {
  display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden;
}
.tac-pitch-col, .tac-inspector, .tac-forms-card, .tac-sheet, .tac-sheet-block {
  background:transparent; border:0; border-radius:0; min-width:0;
}
.tac-inspector {
  min-height:0;
  overflow:auto;
  background:#1a2329;
  border-left:1px solid #263340;
}
.tac-forms-card, .tac-sheet {
  background:linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border:1px solid #263340; border-radius:4px;
  flex:1; min-height:0; overflow:hidden; display:flex; flex-direction:column;
}
.tac-sheet { padding:10px; gap:10px; }
.tac-sheet-mentality { flex-shrink:0; }
.tac-cols { flex:1; min-height:0; }

.fm-pitch { padding: 6px; }
.fm-tac-pitch {
  padding: 6px;
  flex: 1;
  min-height: 0;
  display: grid;
  place-items: center;
  container-type: size;
}
.fm-pitch-surface {
  position: relative;
  aspect-ratio: 68 / 105;
  width: min(100cqw, calc(100cqh * 68 / 105));
  height: min(100cqh, calc(100cqw * 105 / 68));
  max-width: 100%;
  max-height: 100%;
  flex: none;
  margin: 0;
  background: repeating-linear-gradient(180deg, #1a6b32 0%, #1a6b32 9.09%, #1f7a3a 9.09%, #1f7a3a 18.18%);
  border: 2px solid rgba(255,255,255,0.18);
  border-radius: 4px;
  overflow: hidden;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.35);
}
.fm-pitch-surface::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.06), transparent 60%);
  pointer-events: none;
}
.fm-pitch-half-line { position:absolute; top:50%; left:0; right:0; border-top:2px solid rgba(255,255,255,0.22); }
.fm-pitch-center-circle {
  position:absolute; top:50%; left:50%; width:22%; aspect-ratio:1;
  border:2px solid rgba(255,255,255,0.22); border-radius:50%; transform:translate(-50%,-50%);
}
.fm-pitch-center-dot {
  position:absolute; top:50%; left:50%; width:6px; height:6px;
  background:rgba(255,255,255,0.3); border-radius:50%; transform:translate(-50%,-50%);
}
.fm-pitch-box-top { position:absolute; top:0; left:18%; width:64%; height:16%; border:2px solid rgba(255,255,255,0.22); border-top:none; }
.fm-pitch-box-bottom { position:absolute; bottom:0; left:18%; width:64%; height:16%; border:2px solid rgba(255,255,255,0.22); border-bottom:none; }
.fm-pitch-goal-top { position:absolute; top:0; left:32%; width:36%; height:6.5%; border:2px solid rgba(255,255,255,0.22); border-top:none; }
.fm-pitch-goal-bottom { position:absolute; bottom:0; left:32%; width:36%; height:6.5%; border:2px solid rgba(255,255,255,0.22); border-bottom:none; }
.fm-pitch-arc-top {
  position:absolute; top:13.5%; left:50%; width:14%; aspect-ratio:1;
  border:2px solid rgba(255,255,255,0.22); border-radius:50%; transform:translateX(-50%); clip-path:inset(50% 0 0 0);
}
.fm-pitch-arc-bottom {
  position:absolute; bottom:13.5%; left:50%; width:14%; aspect-ratio:1;
  border:2px solid rgba(255,255,255,0.22); border-radius:50%; transform:translateX(-50%); clip-path:inset(0 0 50% 0);
}
.fm-pitch-corner-tl,.fm-pitch-corner-tr,.fm-pitch-corner-bl,.fm-pitch-corner-br {
  position:absolute; width:3.5%; aspect-ratio:1; border:2px solid rgba(255,255,255,0.22); border-radius:50%;
}
.fm-pitch-corner-tl { top:-1.75%; left:-1.75%; }
.fm-pitch-corner-tr { top:-1.75%; right:-1.75%; }
.fm-pitch-corner-bl { bottom:-1.75%; left:-1.75%; }
.fm-pitch-corner-br { bottom:-1.75%; right:-1.75%; }


.fm-pitch-arrows {
  position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1; overflow:visible;
}
.fm-move-line { stroke:#ffd54f; stroke-width:1.6; stroke-linecap:round; opacity:0.88; }
.fm-move-head { fill:#ffd54f; }
.fm-move-line.fm-move-attack { stroke:#7dffb1; }
.fm-move-head.fm-move-attack { fill:#7dffb1; }
.fm-move-line.fm-move-drop { stroke:#7ec8ff; }
.fm-move-head.fm-move-drop { fill:#7ec8ff; }
.fm-move-line.fm-move-wide { stroke:#ffd54f; }
.fm-move-head.fm-move-wide { fill:#ffd54f; }

.fm-pitch-player {
  position:absolute; display:flex; flex-direction:column; align-items:center;
  transform:translateX(-50%); z-index:4; background:none; border:0; padding:0; color:inherit; cursor:grab;
  touch-action:none; user-select:none; width:64px;
}
.fm-pitch-player.is-dragging { cursor:grabbing; z-index:9 !important; filter:drop-shadow(0 8px 16px rgba(0,0,0,.55)); }
.fm-pitch-player.is-shifted .fm-aw-pitch-photo { border-color:#ffd54f; }
.fm-pitch-player.is-selected .fm-aw-pitch-photo { border-color:#7dffb1; box-shadow:0 0 0 3px rgba(74,157,91,.35); }
.fm-pitch-player-dot {
  width:26px; height:26px; border-radius:50%;
  background:linear-gradient(145deg,#4ec95e,#38a848); border:2px solid rgba(255,255,255,.7);
}
.fm-pitch-player.pos-gk .fm-pitch-player-dot { background:linear-gradient(145deg,#e8c830,#c8a820); }
.fm-aw-pitch-photo {
  position:relative; width:44px; height:44px; border-radius:50%; overflow:hidden;
  border:2px solid rgba(255,255,255,.85); background:#123; box-shadow:0 4px 12px rgba(0,0,0,.45);
}
.fm-aw-pitch-photo svg { width:100%; height:100%; display:block; }
.fm-aw-pitch-rating {
  position:absolute; bottom:1px; right:1px; font-size:8px; font-weight:800;
  background:rgba(0,0,0,.72); color:#4a9d5b; padding:0 3px; border-radius:3px;
}
.fm-aw-pitch-label { text-align:center; margin-top:2px; pointer-events:none; }
.fm-aw-pitch-lastname {
  display:block; font-size:10px; font-weight:700; color:#fff;
  text-shadow:0 1px 3px #000; max-width:62px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fm-slot-tag { display:block; font-size:8px; letter-spacing:.3px; color:#c8f5d4; text-transform:uppercase; }
.tac-drag-hint { text-align:center; font-size:12px; color:var(--fm-fg-dim); padding:8px 10px 4px; margin:0; }
.tac-drag-hint i { color:var(--fm-accent); margin-right:6px; }

.tac-token {
  position:absolute; display:flex; flex-direction:column; align-items:center;
  transform:translateX(-50%); z-index:4; background:none; border:0; padding:0;
  width:56px; cursor:grab; touch-action:none; user-select:none; color:inherit;
}
.tac-token.is-dragging { cursor:grabbing; z-index:9 !important; filter:drop-shadow(0 8px 16px rgba(0,0,0,.5)); }
.tac-token-dot {
  width:40px; height:40px; border-radius:50%;
  background: radial-gradient(circle at 35% 30%, #fff8, transparent 40%), var(--tok, #4a9d5b);
  border:2px solid rgba(255,255,255,.9);
  box-shadow:0 3px 10px rgba(0,0,0,.45), inset 0 -8px 10px rgba(0,0,0,.2);
  display:flex; align-items:center; justify-content:center;
}
.tac-token-dot b { font-size:13px; font-weight:800; color:#fff; text-shadow:0 1px 2px #000; }
.tac-token.line-GK .tac-token-dot { background:radial-gradient(circle at 35% 30%, #fff8, transparent 40%), #e0b020; }
.tac-token.line-DEF .tac-token-dot { box-shadow:0 3px 10px rgba(0,0,0,.45), 0 0 0 2px rgba(0,212,255,.25); }
.tac-token.line-FWD .tac-token-dot { box-shadow:0 3px 10px rgba(0,0,0,.45), 0 0 0 2px rgba(255,71,87,.3); }
.tac-token.is-selected .tac-token-dot { box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--fm-accent); }
.tac-token.is-target .tac-token-dot { animation: tacPulse 1s ease infinite; }
@keyframes tacPulse { 50% { box-shadow:0 0 0 5px rgba(255,213,79,.7); } }
.tac-token-name {
  margin-top:3px; padding:1px 6px; border-radius:99px; background:rgba(0,0,0,.62);
  font-size:10px; font-weight:700; color:#fff; max-width:64px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.tac-token.is-empty .tac-token-dot { background:#234; border-style:dashed; }

.tac-shape-bar {
  display:flex; justify-content:space-between; gap:10px; align-items:center; flex-wrap:wrap;
  padding:10px 12px 0;
}
.tac-shape-bar strong { display:block; font-size:14px; }
.tac-shape-bar span { font-size:11px; color:var(--fm-fg-muted); }
.tac-shape-actions { display:flex; gap:8px; flex-wrap:wrap; }
.tac-mode {
  display:flex; padding:3px; border-radius:99px; background:rgba(0,0,0,.35); gap:2px;
}
.tac-mode button {
  border:0; background:transparent; color:var(--fm-fg-dim); font-size:11px; font-weight:700;
  padding:7px 12px; border-radius:0; cursor:pointer; text-transform:uppercase; letter-spacing:.4px;
}
.tac-mode button.active { background:rgba(74,157,91,.14); color:#fff; border-bottom:2px solid var(--fm-accent); }
.tac-saved { display:flex; gap:8px; flex-wrap:wrap; padding:8px 16px 0; }
.tac-saved-btn {
  padding:6px 10px; border-radius:4px; border:1px solid #263340;
  background:transparent; color:var(--fm-fg); font-size:12px; cursor:pointer;
}

.tac-bench-row {
  display:flex; gap:6px; overflow-x:auto; padding:6px 8px; align-items:stretch; flex-shrink:0;
  border-top:1px solid #263340; background:#161e24;
}
.tac-bench-title { flex:0 0 72px; font-size:10px; color:var(--fm-fg-muted); line-height:1.3; align-self:center; text-transform:uppercase; letter-spacing:.4px; }
.tac-bench-card {
  flex:0 0 72px; display:flex; flex-direction:column; gap:1px; align-items:center;
  padding:4px 4px; border-radius:4px; border:1px solid #263340;
  background:rgba(0,0,0,.25); color:#fff; cursor:grab; touch-action:none;
}
.tac-bench-card b { font-size:14px; color:var(--fm-accent); }
.tac-bench-card span { font-size:11px; font-weight:700; max-width:78px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tac-bench-card em { font-size:10px; color:var(--fm-fg-muted); font-style:normal; }
.tac-bench-card.active { border-color:var(--fm-gold); box-shadow:0 0 0 2px rgba(255,193,7,.35); }
.tac-role-explain { margin:0 0 10px; font-size:13px; color:var(--fm-fg); line-height:1.4; }
.tac-axis-hint { display:none; }
.tac-role-ax { display:flex; flex-direction:column; gap:4px; font-size:11px; color:var(--fm-fg-dim); }
.tac-role-ax select { width:100%; }

.tac-xi-strip {
  display:flex; gap:6px; overflow-x:auto; padding:8px 10px 12px; scrollbar-width:thin;
}
.tac-xi-chip {
  flex:0 0 auto; display:flex; flex-direction:column; gap:1px;
  padding:6px 8px; border-radius:4px; border:1px solid #263340;
  background:rgba(0,0,0,.2); color:var(--fm-fg-dim); font-size:11px; cursor:pointer;
}
.tac-xi-chip b { font-size:9px; letter-spacing:.4px; color:var(--fm-accent); }
.tac-xi-chip.active { border-color:var(--fm-accent); color:#fff; background:var(--fm-accent-soft); }

.tac-drawer { display:flex; flex-direction:column; min-width:0; }
.tac-drawer-head {
  display:flex; gap:8px; align-items:center; padding:8px 10px;
  background:linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border-bottom:1px solid #263340;
}
.tac-drawer-photo { width:36px; height:36px; border-radius:4px; overflow:hidden; flex-shrink:0; }
.tac-drawer-photo svg { width:100%; height:100%; display:block; }
.tac-drawer-who { min-width:0; }
.tac-drawer-name { font-size:16px; font-weight:800; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tac-drawer-meta { font-size:12px; color:var(--fm-fg-dim); margin-top:2px; }
.tac-drawer-body { padding:10px; }
.tac-drawer-empty { padding:20px 12px; text-align:center; color:var(--fm-fg-dim); font-size:13px; }
.tac-field { display:block; margin-bottom:8px; }
.tac-field > span {
  display:block; font-size:10px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
  color:var(--fm-fg-muted); margin-bottom:6px;
}
.tac-drawer .tac-axis-hint { display:block; margin:2px 0 0; font-size:10px; color:var(--fm-fg-muted); line-height:1.3; }
.tac-axis-top { display:flex; justify-content:space-between; font-size:12px; color:var(--fm-fg); margin-bottom:4px; }
.tac-axis-top b { color:var(--fm-accent); font-size:11px; }
.tac-axis-row { display:grid; grid-template-columns:64px 1fr 64px; gap:8px; align-items:center; }
.tac-axis-row em { font-style:normal; font-size:10px; color:var(--fm-fg-muted); }
.tac-axis-row em:last-child { text-align:right; }
.tac-axis-row input[type=range] { width:100%; accent-color:#4a9d5b; }
.tac-arrow-legend { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 12px; font-size:11px; color:var(--fm-fg-dim); }
.tac-arrow-legend .lg { width:14px; height:3px; border-radius:2px; display:inline-block; margin-right:6px; vertical-align:middle; }
.lg-attack { background:#7dffb1; }
.lg-drop { background:#7ec8ff; }
.lg-wide { background:#ffd54f; }
.tac-drawer-note, .tac-help { font-size:12px; color:var(--fm-fg-muted); line-height:1.45; margin:10px 0 0; }

/* ===== FM-style role drawer enhancements ===== */
.tac-role-explain { margin:6px 0 10px; padding:8px 10px; background:rgba(255,255,255,.04); border-left:2px solid var(--fm-accent); border-radius:3px; font-size:12px; line-height:1.5; color:var(--fm-fg); }

.tac-role-detail { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:10px; }
.tac-pros, .tac-cons { padding:8px 10px; border-radius:4px; font-size:11px; line-height:1.4; border:1px solid #263340; }
.tac-pros { background:linear-gradient(180deg, rgba(74,157,91,.10) 0%, rgba(74,157,91,.04) 100%); border-color:rgba(74,157,91,.35); }
.tac-cons { background:linear-gradient(180deg, rgba(217,103,86,.10) 0%, rgba(217,103,86,.04) 100%); border-color:rgba(217,103,86,.35); }
.tac-pros-head, .tac-cons-head { display:flex; align-items:center; gap:6px; font-weight:800; font-size:10px; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.tac-pros-head { color:#7dffb1; }
.tac-cons-head { color:#ff9a85; }
.tac-pros-head i, .tac-cons-head i { font-size:11px; }
.tac-pros p, .tac-cons p { margin:0; color:var(--fm-fg); font-size:11px; line-height:1.45; }

/* Suitability bar */
.tac-suit { margin:6px 0 10px; padding:8px 10px; border:1px solid #263340; border-radius:4px; background:linear-gradient(180deg, #1c2830 0%, #192228 100%); }
.tac-suit-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:5px; }
.tac-suit-label { font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--fm-fg-muted); }
.tac-suit-score { display:inline-flex; gap:6px; align-items:baseline; font-size:11px; }
.tac-suit-score b { font-size:16px; font-weight:800; }
.tac-suit-score em { font-style:normal; font-weight:600; font-size:10px; color:var(--fm-fg-muted); text-transform:uppercase; letter-spacing:.4px; }
.tac-suit.suit-strong .tac-suit-score b { color:#7dffb1; }
.tac-suit.suit-mid .tac-suit-score b { color:#ffd54f; }
.tac-suit.suit-weak .tac-suit-score b { color:#ff9a85; }
.tac-suit-bar { position:relative; height:6px; border-radius:3px; background:rgba(255,255,255,.06); overflow:hidden; }
.tac-suit-bar span {
  display:block; height:100%; border-radius:3px; transition:width .25s ease;
  background:linear-gradient(90deg, #4a9d5b 0%, #7dffb1 100%);
}
.tac-suit.suit-mid .tac-suit-bar span { background:linear-gradient(90deg, #d4a23a 0%, #ffd54f 100%); }
.tac-suit.suit-weak .tac-suit-bar span { background:linear-gradient(90deg, #d96656 0%, #ff9a85 100%); }
.tac-suit-keys { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.tac-suit-key {
  font-size:9px; font-weight:600; padding:2px 6px; border-radius:9px;
  background:rgba(255,255,255,.06); color:var(--fm-fg-dim); letter-spacing:.3px;
  border:1px solid rgba(255,255,255,.08);
}

/* Custom instructions sliders (FM-style) */
.tac-cust-section { margin-top:14px; padding-top:12px; border-top:1px solid #263340; }
.tac-section-head { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; color:var(--fm-accent); margin-bottom:10px; }
.tac-section-head i { font-size:13px; }
.tac-cust-row { padding:8px 0; border-bottom:1px dashed rgba(255,255,255,.06); }
.tac-cust-row:last-child { border-bottom:none; }
.tac-cust-head { display:flex; justify-content:space-between; align-items:baseline; font-size:12px; color:var(--fm-fg); margin-bottom:4px; }
.tac-cust-head b { color:var(--fm-accent); font-size:11px; font-weight:800; }
.tac-cust-body { display:grid; grid-template-columns:64px 1fr 64px; gap:8px; align-items:center; }
.tac-cust-body em { font-style:normal; font-size:10px; color:var(--fm-fg-muted); }
.tac-cust-body em:last-child { text-align:right; }
.tac-cust-body input[type=range] { width:100%; accent-color:#4a9d5b; }
.tac-cust-hint { margin:4px 0 0; font-size:10px; color:var(--fm-fg-muted); line-height:1.35; }
.tac-clear-run-btn { width:100%; margin-top:12px; }

/* ===== FM-style Role Picker (whole squad) ===== */
.tac-rp-stage { padding:14px; display:flex; flex-direction:column; gap:18px; min-height:0; }
.tac-rp-header { display:flex; flex-direction:column; gap:4px; padding:0 4px; }
.tac-rp-title { display:flex; align-items:center; gap:8px; font-size:18px; font-weight:800; color:#fff; }
.tac-rp-title i { color:var(--fm-accent); font-size:16px; }
.tac-rp-subtitle { font-size:12px; color:var(--fm-fg-muted); }
.tac-rp-grid {
  display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:10px;
}
.tac-rp-card {
  display:flex; flex-direction:column; gap:8px;
  padding:10px 12px;
  background:linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border:1px solid #263340; border-radius:6px;
  position:relative; overflow:hidden;
}
.tac-rp-card.suit-strong { box-shadow:inset 0 0 0 1px rgba(74,157,91,.35); }
.tac-rp-card.suit-mid { box-shadow:inset 0 0 0 1px rgba(212,162,58,.30); }
.tac-rp-card.suit-weak { box-shadow:inset 0 0 0 1px rgba(217,102,86,.30); }
.tac-rp-card.is-bench { opacity:.92; background:linear-gradient(180deg, #1a2228 0%, #161c22 100%); }
.tac-rp-card.empty { border-style:dashed; background:transparent; min-height:60px; align-items:center; justify-content:center; }
.tac-rp-empty { color:var(--fm-fg-muted); font-size:11px; font-style:italic; }

.tac-rp-head { display:flex; gap:10px; align-items:center; min-width:0; }
.tac-rp-avatar { width:40px; height:40px; border-radius:4px; overflow:hidden; flex-shrink:0; background:#0e161b; }
.tac-rp-avatar svg { width:100%; height:100%; display:block; }
.tac-rp-who { flex:1; min-width:0; }
.tac-rp-name { font-size:13px; font-weight:700; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tac-rp-meta { font-size:11px; color:var(--fm-fg-dim); margin-top:2px; }
.tac-rp-meta b { color:var(--fm-accent); }
.tac-rp-suit { display:flex; flex-direction:column; align-items:flex-end; gap:0; flex-shrink:0; }
.tac-rp-suit b { font-size:16px; font-weight:800; line-height:1; }
.tac-rp-suit em { font-style:normal; font-size:9px; color:var(--fm-fg-muted); text-transform:uppercase; letter-spacing:.4px; }
.tac-rp-card.suit-strong .tac-rp-suit b { color:#7dffb1; }
.tac-rp-card.suit-mid .tac-rp-suit b { color:#ffd54f; }
.tac-rp-card.suit-weak .tac-rp-suit b { color:#ff9a85; }

.tac-rp-body { display:flex; flex-direction:column; gap:8px; min-width:0; }
.tac-rp-role .form-select { width:100%; }

.tac-rp-procon { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.tac-rp-pro, .tac-rp-con {
  display:flex; gap:6px; padding:6px 8px; border-radius:3px; font-size:10px; line-height:1.35;
  align-items:flex-start;
}
.tac-rp-pro { background:rgba(74,157,91,.10); border:1px solid rgba(74,157,91,.30); color:#c9f0d4; }
.tac-rp-con { background:rgba(217,103,86,.10); border:1px solid rgba(217,103,86,.30); color:#f7d5cc; }
.tac-rp-pro i, .tac-rp-con i { font-size:11px; margin-top:1px; flex-shrink:0; }
.tac-rp-pro i { color:#7dffb1; }
.tac-rp-con i { color:#ff9a85; }

.tac-rp-bench { display:flex; flex-direction:column; gap:8px; }
.tac-rp-bench-title { display:flex; align-items:center; gap:8px; font-size:11px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:var(--fm-fg-muted); padding:0 4px; }
.tac-rp-bench-title i { color:var(--fm-fg-muted); font-size:12px; }

@media (max-width:768px) {
  .tac-rp-grid { grid-template-columns:1fr; }
  .tac-rp-procon { grid-template-columns:1fr; }
  .tac-role-detail { grid-template-columns:1fr; }
}
.tac-bench { padding:0 14px 14px; }
.tac-bench-title { font-size:10px; letter-spacing:.6px; text-transform:uppercase; color:var(--fm-fg-muted); margin-bottom:8px; }
.tac-bench-item { display:inline-flex; gap:6px; align-items:center; margin:0 8px 6px 0; font-size:12px; color:var(--fm-fg-dim); }
.tac-bench-item b { color:var(--fm-accent); }

.tac-forms-card { margin-top:0; }
.tac-forms-head { display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:10px 14px; background:linear-gradient(180deg, #222e38 0%, #1e2a32 100%); border-bottom:1px solid #263340; }
.tac-forms-head h3 { margin:0; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1.2px; color:#8a9bbd; }
.tac-forms-head span { font-size:11px; color:#5a6d8f; }
.tac-forms { padding:12px 16px 16px; display:flex; flex-direction:column; gap:14px; }
.tac-fgroup-title { font-size:10px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; color:var(--fm-fg-muted); margin-bottom:8px; }
.tac-fgroup-btns { display:grid; grid-template-columns:repeat(auto-fill,minmax(108px,1fr)); gap:8px; }
.tac-form-btn {
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:8px 6px 10px; border-radius:4px; border:1px solid #263340;
  background:rgba(0,0,0,.18); color:var(--fm-fg); cursor:pointer;
}
.tac-form-btn b { font-size:13px; }
.tac-form-btn small { color:var(--fm-fg-muted); font-size:10px; }
.tac-form-btn.active { border-color:var(--fm-accent); box-shadow:0 0 0 2px var(--fm-accent-soft); color:#fff; }
.tac-mini {
  position:relative; width:72px; height:48px; border-radius:4px; overflow:hidden;
  background:linear-gradient(#1a6b32,#1f7a3a); border:1px solid rgba(255,255,255,.2);
}
.tac-mini i { position:absolute; width:5px; height:5px; border-radius:50%; background:#fff; transform:translate(-50%,50%); }

.tac-sheet { padding:10px; gap:8px; }
.tac-sheet-block h3 { margin:0 0 8px; font-size:14px; }
.tac-sheet-kicker { font-size:10px; letter-spacing:.8px; text-transform:uppercase; color:var(--fm-accent); margin-bottom:4px; }
.tac-kicker-atk { color:#7dffb1; }
.tac-kicker-def { color:#7ec8ff; }
.tac-cols { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:0; }
.tac-cols .tac-sheet-block { padding:10px; background:rgba(0,0,0,.12); border:1px solid #263340; border-radius:4px; }
.tac-instr-cell { margin:0 0 8px; }
.tac-instr-cell-label { font-size:11px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--fm-fg-muted); margin-bottom:4px; }
.tac-derived { display:grid; gap:4px; margin-top:6px; }
.tac-derived-stack .tac-meter { padding:4px 0; }

.tac-spect { display:grid; gap:4px; }
.tac-spect[data-steps="5"] { grid-template-columns:repeat(5,minmax(0,1fr)); }
.tac-spect[data-steps="3"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
.tac-spect-step {
  display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0;
  padding:10px 4px; border-radius:4px; border:1px solid #263340;
  background:rgba(255,255,255,.03); color:var(--fm-fg-dim); font-size:11px; font-weight:600; cursor:pointer;
}
.tac-spect-step span { overflow:hidden; text-overflow:ellipsis; max-width:100%; white-space:nowrap; }
.tac-spect-step i { font-size:14px; }
.tac-spect-step:hover { color:#fff; border-color:rgba(255,255,255,.18); }
.tac-spect-step.active { background:var(--fm-accent); color:#04140a; border-color:var(--fm-accent); }

.tac-role-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; flex:1; min-height:0; overflow:hidden; align-content:start; }
.tac-role-card { padding:8px; background:linear-gradient(180deg, #1c2830 0%, #192228 100%); border:1px solid #263340; border-radius:4px; min-width:0; }
.tac-role-card header { display:flex; align-items:baseline; gap:8px; margin-bottom:8px; }
.tac-role-slot { font-size:10px; font-weight:800; color:var(--fm-accent); letter-spacing:.4px; }
.tac-role-card strong { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tac-role-card em { font-style:normal; color:var(--fm-fg-dim); font-size:12px; }
.tac-role-card .form-select { width:100%; margin-bottom:8px; }
.tac-role-axes { display:grid; grid-template-columns:1fr 1fr; gap:6px; font-size:11px; color:var(--fm-fg-dim); }
.tac-role-axes label { display:flex; justify-content:space-between; align-items:center; gap:6px; }
.tac-role-axes select { width:52px; }
.tac-role-run { margin:8px 0 0; font-size:11px; color:var(--fm-fg-muted); }

.tac-piece-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; flex:1; min-height:0; align-content:start; overflow:hidden; }
.tac-piece-card { padding:10px; background:linear-gradient(180deg, #1c2830 0%, #192228 100%); border:1px solid #263340; border-radius:4px; }
.tac-piece-card-title { display:flex; gap:8px; align-items:center; font-size:11px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--fm-fg-dim); margin-bottom:10px; }
.tac-piece-card-title i { color:var(--fm-accent); }
.tac-piece-card .form-select { width:100%; }

.tac-match { margin-top:8px; padding:10px; background:rgba(0,0,0,.2); border:1px solid #263340; border-radius:4px; }
.tac-match-fit { padding:10px; display:flex; flex-direction:column; gap:8px; flex:1; min-height:0; overflow:hidden; }
.tac-match-score { display:flex; align-items:center; justify-content:center; gap:16px; text-align:center; }
.tac-match-score b { display:block; font-size:28px; color:#fff; line-height:1; }
.tac-match-score small { color:var(--fm-fg-dim); font-size:12px; }
.tac-match-score span { font-size:22px; color:var(--fm-fg-muted); }
.tac-match-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:8px; font-size:12px; color:var(--fm-fg-dim); }
.tac-match-stats b { color:#fff; display:block; margin-top:2px; }
.tac-goals { list-style:none; padding:6px 0 0; margin:0; font-size:12px; max-height:72px; overflow:hidden; }
.tac-goals li { padding:2px 0; }
.tac-recipes { margin:0; padding-left:18px; color:var(--fm-fg-dim); font-size:12px; line-height:1.35; }
.tac-setup-now { text-align:center; color:var(--fm-fg-dim); font-size:12px; margin:6px 0 0; }
.dlt { font-size:11px; margin-left:6px; font-weight:700; }
.dlt-up { color:#7dffb1; }
.dlt-down { color:#ff8a8a; }
.dlt-flat { color:var(--fm-fg-muted); }
.tac-history { margin-top:8px; overflow:hidden; }
.tac-history-title { font-size:11px; letter-spacing:.6px; text-transform:uppercase; color:var(--fm-fg-muted); margin-bottom:6px; }
.tac-player-lines { margin-top:8px; width:100%; font-size:11px; }

.sched-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:10px; align-items:start; }
.sched-training { padding:12px 14px 14px; display:flex; flex-direction:column; gap:10px; }
.sched-fixture {
  display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:center;
  padding:12px; background:rgba(0,0,0,.22); border:1px solid #263340; border-radius:4px;
}
.sched-team { display:flex; flex-direction:column; gap:4px; min-width:0; }
.sched-team strong { font-size:14px; color:#fff; line-height:1.2; }
.sched-team em { font-size:11px; color:var(--fm-fg-dim); font-style:normal; line-height:1.35; }
.sched-team-tag {
  font-size:9px; font-weight:700; letter-spacing:.5px; text-transform:uppercase;
  color:var(--fm-fg-muted);
}
.sched-team--away { text-align:right; }
.sched-vs { font-size:18px; font-weight:800; color:var(--fm-fg-muted); }
.live-board { display:flex; flex-direction:column; gap:10px; }
.live-fm { gap:12px; }

/* ── Match day, full screen ──────────────────────────────────────────
   Three fixed rows: a header that never moves, the pitch taking every
   pixel left over, and a footer strip. `minmax(0,1fr)` on the middle row
   (and `min-height:0` on its children) is what actually lets the pitch
   shrink to fit instead of pushing the footer off the bottom — a grid
   row defaults to min-content, and the XI lists are tall.            */
.live-fm.is-full {
  position:fixed; inset:0; z-index:70;
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  gap:8px; padding:10px;
  background:var(--fm-bg, #10161b);
  overflow:hidden;
}
.live-fm.is-full .live-stage {
  min-height:0; height:100%;
  display:block; position:relative;
}
.live-fm.is-full .live-xi {
  position:absolute; top:10px; bottom:10px; width:164px;
  max-height:none; min-height:0; z-index:3;
  padding:6px;
  background:rgba(10,16,20,.82);
  border:1px solid rgba(42,58,72,.9);
  border-radius:6px;
  backdrop-filter:blur(10px);
}
.live-fm.is-full #live-xi-home { left:10px; }
.live-fm.is-full #live-xi-away { right:10px; }
.live-fm.is-full .live-pitch-wrap { min-height:0; height:100%; width:100%; }

.live-top {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px; align-items:center;
}
.live-bottom {
  display:grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.3fr);
  gap:8px; align-items:stretch;
  max-height:148px;
}
.live-fm.is-full .live-bottom { max-height:132px; }
.live-fm.is-full .live-ticker { max-height:36px; }
.live-fm.is-full .live-feed { max-height:110px; }
.live-expand {
  flex:none; width:32px; height:32px; line-height:1;
  background:#151c22; border:1px solid #2a3a48; color:var(--fm-fg-dim);
  border-radius:4px; cursor:pointer; font-size:15px;
}
.live-expand:hover { border-color:var(--fm-accent); color:#fff; }

@media (max-width: 900px) {
  .live-bottom { grid-template-columns:1fr; }
  .live-top { grid-template-columns:minmax(0,1fr) auto; }
  .live-top .live-stats { grid-column:1 / -1; }
}
.live-score { display:flex; align-items:baseline; justify-content:center; gap:10px; flex-wrap:wrap; }
.live-score b { color:#fff; font-size:13px; }
.live-nums { font-size:24px; font-weight:800; color:#fff; letter-spacing:1px; }
.live-score em { font-style:normal; color:var(--fm-fg-dim); font-size:12px; }
.live-stats {
  display:grid; grid-template-columns: 1.2fr repeat(5, minmax(0,1fr));
  gap:6px; align-items:center;
  padding:4px 10px; background:#12181e; border:1px solid #2a3a48; border-radius:4px;
}
.live-poss { display:flex; align-items:center; gap:8px; min-width:0; }
.live-poss b { font-size:11px; color:#fff; }
.live-poss-bar { flex:1; height:6px; background:#3a4552; border-radius:99px; overflow:hidden; }
.live-poss-bar i { display:block; height:100%; background:#4a9d5b; }
.live-stat-row { display:flex; flex-direction:column; align-items:center; gap:2px; font-size:11px; color:#fff; }
.live-stat-row em { font-style:normal; color:var(--fm-fg-muted); font-size:9px; letter-spacing:.4px; text-transform:uppercase; }
.live-stage {
  display:grid; grid-template-columns: minmax(148px, 210px) minmax(0,1fr) minmax(148px, 210px);
  gap:10px; align-items:stretch;
}
.live-xi { display:flex; flex-direction:column; gap:4px; max-height:545px; overflow:auto; }
.live-xi-empty { margin:0; color:var(--fm-fg-muted); font-size:12px; }
.live-xi-row, .live-bench-chip {
  display:flex; align-items:center; gap:8px; width:100%;
  background:#151c22; border:1px solid #2a3a48; color:#fff;
  border-radius:4px; padding:5px 7px; text-align:left; cursor:default;
}
.live-xi-row.is-mine, .live-bench-chip.is-mine { cursor:pointer; }
.live-xi-row.is-mine:hover, .live-bench-chip.is-mine:hover { border-color:#4a9d5b; }
.live-xi-row.is-picked { border-color:#ffe08a; box-shadow:0 0 0 1px #ffe08a inset; }
.live-face { width:28px; height:28px; border-radius:4px; overflow:hidden; flex:none; background:#1a2228; }
.live-face svg { display:block; width:100%; height:100%; }
.live-xi-meta { min-width:0; flex:1; display:flex; flex-direction:column; }
.live-xi-meta b { font-size:12px; }
.live-xi-meta em { font-style:normal; font-size:10px; color:var(--fm-fg-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.live-xi-right { display:flex; align-items:center; gap:4px; flex:none; }
.live-stamina { width:36px; height:4px; background:#2a3a48; border-radius:99px; overflow:hidden; display:block; }
.live-stamina i { display:block; height:100%; }
.live-pip { display:inline-block; width:7px; height:9px; border-radius:1px; }
.live-pip-y { background:#f5d142; }
.live-pip-r { background:#e23d3d; }
/* The wrapper is the box the pitch is fitted into; `fitLivePitchCanvas`
   measures it and sizes the canvas to the largest 105×68 rectangle that
   fits, so the canvas carries explicit inline width/height and must NOT
   be stretched by CSS on top of that. */
.live-pitch-wrap {
  position:relative; min-width:0;
  display:flex; align-items:center; justify-content:center;
}
.live-pitch { background:#175c2f; border-radius:4px; display:block; }
.live-overlay {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:28px; font-weight:800; letter-spacing:4px; color:#fff;
  background:rgba(8,14,12,.42); pointer-events:none; text-shadow:0 2px 12px rgba(0,0,0,.55);
}
.live-overlay[hidden] { display:none; }
.live-dugout {
  padding:8px 10px; background:#12181e; border:1px solid #2a3a48; border-radius:4px;
}
.live-dugout-head { display:flex; justify-content:space-between; gap:10px; font-size:12px; margin-bottom:8px; }
.live-dugout-head strong { color:#fff; }
.live-dugout-head span { color:var(--fm-fg-dim); }
.live-bench { display:flex; flex-wrap:wrap; gap:6px; }
.live-bench-chip { width:auto; padding:4px 8px 4px 4px; }
.live-bench-chip b { font-size:11px; }
.live-bench-chip em { font-style:normal; font-size:10px; color:var(--fm-fg-dim); }
.live-bench-empty { color:var(--fm-fg-muted); font-size:12px; }
/* Match timeline. A column, not a wrapped row of chips: the entries are
   time-ordered (newest first) and a wrapping row destroys that reading
   order the moment it breaks a line. The minute sits in a fixed gutter so
   every incident lines up against one edge. */
.live-feed {
  list-style:none; margin:0; padding:0; font-size:12px; color:var(--fm-fg-dim);
  max-height:132px; overflow:auto;
  display:flex; flex-direction:column; gap:1px;
}
.live-feed li {
  display:flex; align-items:baseline; gap:7px;
  padding:3px 6px; border-radius:3px;
  border-left:2px solid transparent;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.live-feed li:nth-child(even) { background:rgba(255,255,255,.022); }
.live-feed li b {
  flex:0 0 30px; text-align:right;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
  color:var(--fm-fg-muted);
}
.live-feed .is-goal   { color:#dff0e4; border-left-color:var(--fm-accent); background:rgba(74,157,91,.10); }
.live-feed .is-goal b { color:#c9e4cf; }
.live-feed .is-own    { border-left-color:#7d8a95; background:rgba(125,138,149,.10); }
.live-feed .is-yellow { color:#f5d142; border-left-color:#f5d142; }
.live-feed .is-red    { color:#e23d3d; border-left-color:#e23d3d; background:rgba(226,61,61,.10); }
.live-feed .is-sub    { color:#9ec5ff; border-left-color:#3f5f86; }
.live-feed .live-ticker-empty { border-left-color:transparent; color:var(--fm-fg-muted); }
.live-tac { display:none; min-width:0; }
.live-goals { list-style:none; margin:0; padding:0; font-size:12px; color:var(--fm-fg-dim); max-height:72px; overflow:auto; }
.live-goals li { padding:2px 0; }
.live-coach {
  display:flex; flex-direction:column; gap:8px;
  padding:10px 12px; border:1px solid #2a3a48; border-radius:4px; background:#12181e;
}
.live-ticker {
  list-style:none; margin:0; padding:0; max-height:88px; overflow:auto;
  font-size:12px; color:var(--fm-fg-dim);
}
.live-ticker li { padding:2px 0; border-bottom:1px solid rgba(255,255,255,.04); }
.live-ticker em { font-style:normal; color:#8aa0b4; margin-right:6px; }
.live-ticker-empty { color:var(--fm-fg-muted); }
.live-coach-form { display:flex; gap:8px; }
.live-coach-form input {
  flex:1; min-width:0; background:#0d1217; border:1px solid #2a3a48; color:#fff;
  border-radius:4px; padding:8px 10px; font-size:13px;
}
.live-coach-form input:focus { outline:none; border-color:#4a9d5b; }
.live-coach-reply { margin:0; font-size:12px; color:#c9e4cf; min-height:1.2em; }
.live-queue {
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  padding:12px 14px; border:1px solid #2a3a48; border-radius:4px; background:#151c22;
}
.live-queue p { margin:0; color:#fff; font-size:13px; }
.live-queue .sched-hint { color:var(--fm-fg-dim); }
.live-queue-pulse {
  width:10px; height:10px; border-radius:50%; background:#4a9d5b;
  box-shadow:0 0 0 0 rgba(74,157,91,.6);
  animation: live-queue-pulse 1.4s ease-out infinite;
}
@keyframes live-queue-pulse {
  0% { box-shadow:0 0 0 0 rgba(74,157,91,.55); }
  100% { box-shadow:0 0 0 12px rgba(74,157,91,0); }
}
.sched-training .btn { margin-right:8px; margin-top:4px; }
.sched-viewer-body { padding:12px 14px 14px; font-size:12px; color:var(--fm-fg-dim); line-height:1.45; }
.sched-viewer-body p { margin:0 0 8px; }
.sched-viewer-body p:last-child { margin-bottom:0; }
.sched-viewer-body code { font-size:11px; color:var(--fm-fg-muted); }

@media (max-width: 1100px) {
  .sched-layout { grid-template-columns:1fr; }
  .tac-head { grid-template-columns:1fr; }
  .tac-team-strip { grid-template-columns:1fr 1fr; }
  .tac-stage { grid-template-columns:1fr; }
  .tac-inspector { position:static; border-left:0; border-top:1px solid #263340; }
}
@media (max-width: 760px) {
  .tac-head { padding:10px 12px; border-radius:4px; }
  .tac-head-form { font-size:15px; }
  .tac-team-strip { grid-template-columns:1fr 1fr; }
  .tac-meters { grid-template-columns:1fr 1fr; gap:8px; }
  .tac-cols { grid-template-columns:1fr; }
  .tac-spect[data-steps="5"] { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .tac-spect-step { padding:8px 2px; font-size:9px; }
  .tac-spect-step i { font-size:12px; }
  .fm-aw-pitch-photo { width:36px; height:36px; }
  .fm-aw-pitch-lastname { max-width:48px; font-size:9px; }
  .fm-slot-tag { display:none; }
  .fm-pitch-player { width:48px; }
  .tac-token { width:48px; }
  .tac-token-dot { width:34px; height:34px; }
  .tac-token-dot b { font-size:11px; }
  .tac-bench-title { flex-basis:100%; }
  .fm-pitch-surface { width: min(100cqw, calc(100cqh * 68 / 105)); height: min(100cqh, calc(100cqw * 105 / 68)); }
  .tac-mode { width:100%; }
  .tac-mode button { flex:1; }
  .tac-axis-row { grid-template-columns:52px 1fr 52px; }
  .tac-role-grid, .tac-piece-grid { grid-template-columns:1fr; }
  .tac-fgroup-btns { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tac-match-stats { grid-template-columns:1fr; }
  .live-stage { grid-template-columns:1fr; }
  .live-xi { max-height:220px; flex-direction:row; flex-wrap:wrap; }
  .live-xi-row { width:calc(50% - 4px); }
  .live-stats { grid-template-columns:1fr 1fr; }
  .live-fm.is-full .live-stage { display:grid; grid-template-columns:1fr; }
  .live-fm.is-full .live-xi { position:static; width:auto; max-height:140px; }
}
@media (max-width: 420px) {
  .tac-spect[data-steps="5"] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tac-fgroup-btns { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* ============================================================
   ТАКТИКА — стрелки и режимы (v2)
   Палитра: position / run_forward / run_back / press_more / hold / wide / swap
   ============================================================ */

/* Glow filter for arrows */
.fm-pitch-arrows {
  filter: drop-shadow(0 1px 1px rgba(0,0,0,0.45));
}

/* Все стрелки — общие стили */
.fm-move-line {
  fill: none;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.92;
}
.fm-move-head { opacity: 0.95; }

/* Разные виды стрелок — 6 режимов */
.fm-move-line.fm-move-attack     { stroke: #7dffb1; }
.fm-move-head.fm-move-attack     { fill: #7dffb1; }

.fm-move-line.fm-move-run_forward { stroke: #4ade80; stroke-width: 1.85; }
.fm-move-head.fm-move-run_forward { fill: #4ade80; }

.fm-move-line.fm-move-run_back    { stroke: #60a5fa; stroke-width: 1.85; }
.fm-move-head.fm-move-run_back    { fill: #60a5fa; }

.fm-move-line.fm-move-press_more  { stroke: #ff8c42; stroke-width: 1.9; }
.fm-move-head.fm-move-press_more  { fill: #ff8c42; }

.fm-move-line.fm-move-hold        { stroke: #c5ccd3; stroke-width: 1.7; stroke-dasharray: 3.2 2.4; }
.fm-move-head.fm-move-hold        { fill: #c5ccd3; }

.fm-move-line.fm-move-wide        { stroke: #fbbf24; stroke-width: 1.8; }
.fm-move-head.fm-move-wide        { fill: #fbbf24; }

.fm-move-line.fm-move-drop        { stroke: #38bdf8; stroke-width: 1.8; }
.fm-move-head.fm-move-drop        { fill: #38bdf8; }

.fm-move-line.fm-move-swap        { stroke: #c084fc; stroke-width: 1.8; stroke-dasharray: 5 3; }
.fm-move-head.fm-move-swap        { fill: #c084fc; }

/* Live arrow (рисуется во время перетаскивания) — пульсирует */
.fm-move-live { animation: movePulse 1.4s ease-in-out infinite; }
@keyframes movePulse {
  0%, 100% { opacity: 0.95; }
  50%      { opacity: 0.6; }
}

/* Pitch-mode toolbar */
.pitch-toolbar {
  display: flex;
  gap: 4px;
  padding: 0 8px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border-bottom: 1px solid #263340;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: none;
  flex-shrink: 0;
}
.pitch-toolbar::-webkit-scrollbar { display: none; }
.pitch-toolbar-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  color: var(--fm-fg-dim);
  margin-right: 8px;
  white-space: nowrap;
}
.pitch-mode-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--fm-fg-dim);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
  white-space: nowrap;
  position: relative;
}
.pitch-mode-btn i {
  font-size: 11px;
  opacity: 0.8;
}
.pitch-mode-btn:hover {
  color: #fff;
  background: rgba(255,255,255,0.04);
}
.pitch-mode-btn[data-pitch-mode="shape"]       .pitch-mode-icon { color: #d0d6dc; }
.pitch-mode-btn[data-pitch-mode="run_forward"] .pitch-mode-icon { color: #4ade80; }
.pitch-mode-btn[data-pitch-mode="run_back"]    .pitch-mode-icon { color: #60a5fa; }
.pitch-mode-btn[data-pitch-mode="press_more"]  .pitch-mode-icon { color: #ff8c42; }
.pitch-mode-btn[data-pitch-mode="hold"]        .pitch-mode-icon { color: #9ca3af; }

.pitch-mode-btn.active {
  color: #fff;
  border-bottom-color: #4a9d5b;
  background: rgba(74,157,91,0.08);
}
.pitch-mode-btn.active[data-pitch-mode="run_forward"] { border-bottom-color: #4ade80; color: #4ade80; }
.pitch-mode-btn.active[data-pitch-mode="run_back"]    { border-bottom-color: #60a5fa; color: #60a5fa; }
.pitch-mode-btn.active[data-pitch-mode="press_more"]  { border-bottom-color: #ff8c42; color: #ff8c42; }
.pitch-mode-btn.active[data-pitch-mode="hold"]        { border-bottom-color: #9ca3af; color: #d0d6dc; }

.pitch-mode-icon { width: 14px; text-align: center; }

/* Адаптив */
@media (max-width: 768px) {
  .pitch-toolbar { padding: 6px 8px; }
  .pitch-mode-btn { padding: 6px 10px; font-size: 10px; }
}


/* ============================================================
   Легенда стрелок + mode badge на поле
   ============================================================ */

.pitch-mode-badge {
  position: absolute;
  top: 8px; right: 10px;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  background: rgba(0,0,0,0.65);
  backdrop-filter: blur(8px);
  border-radius: 100px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.1);
}
.pitch-mode-badge-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #d0d6dc;
  box-shadow: 0 0 6px currentColor;
}
.pitch-mode-badge-dot[data-mode="shape"]       { background: #d0d6dc; }
.pitch-mode-badge-dot[data-mode="run_forward"] { background: #4ade80; }
.pitch-mode-badge-dot[data-mode="run_back"]    { background: #60a5fa; }
.pitch-mode-badge-dot[data-mode="press_more"]  { background: #ff8c42; }
.pitch-mode-badge-dot[data-mode="hold"]        { background: #9ca3af; }

.tac-arrow-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 10px 14px;
  background: rgba(0,0,0,0.15);
  border-bottom: 1px solid #263340;
  font-size: 11px;
  font-weight: 500;
  color: var(--fm-fg-dim);
}
.tac-arrow-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.fm-move-dot {
  display: inline-block;
  width: 14px; height: 3px;
  border-radius: 100px;
}
.fm-move-dot.fm-move-dashed {
  height: 2px;
  background-image: repeating-linear-gradient(90deg, currentColor 0 3px, transparent 3px 5px) !important;
  background-color: transparent !important;
}


/* ============================================================
   MATCH CENTER — премиум-окно расписания и турнира
   Все в 1 экран, как в Football Manager "Continue"
   ============================================================ */

.match-center {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* HEADER */
.mc-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 14px 20px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: var(--fm-radius);
  box-shadow: var(--fm-shadow-tile);
}
.mc-header-left { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.mc-header-center { display: flex; align-items: center; gap: 14px; justify-content: center; flex-wrap: wrap; }
.mc-header-right { display: flex; gap: 8px; }

.mc-league {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px;
  background: rgba(255,255,255,0.04);
  border-radius: 100px;
  font-size: 12px;
  font-weight: 700;
  color: var(--fm-fg);
}
.mc-league i { color: var(--fm-gold); font-size: 14px; }

.mc-matchweek { display: flex; align-items: baseline; gap: 6px; }
.mc-mw-label { font-size: 10px; text-transform: uppercase; color: var(--fm-fg-dim); letter-spacing: 0.6px; font-weight: 600; }
.mc-mw-num { font-size: 24px; font-weight: 800; color: var(--fm-fg-strong); font-family: var(--fm-font-mono); line-height: 1; }
.mc-mw-of { font-size: 11px; color: var(--fm-fg-muted); }

.mc-date {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px;
  color: var(--fm-fg-dim);
  text-transform: capitalize;
}
.mc-date i { color: var(--fm-accent); }

.mc-my-rank {
  display: inline-flex; align-items: baseline; gap: 6px;
  padding: 6px 14px;
  background: var(--fm-accent-soft);
  border: 1px solid rgba(0,217,107,0.25);
  border-radius: var(--fm-radius);
}
.mc-my-rank-label { font-size: 10px; text-transform: uppercase; color: var(--fm-accent); letter-spacing: 0.5px; font-weight: 600; }
.mc-my-rank-num { font-size: 22px; font-weight: 800; color: var(--fm-fg-strong); font-family: var(--fm-font-mono); line-height: 1; }
.mc-my-rank-of { font-size: 11px; color: var(--fm-fg-muted); }

.mc-my-form { display: inline-flex; gap: 3px; }

.mc-my-stats {
  display: inline-flex; gap: 12px;
  font-size: 12px;
  color: var(--fm-fg-dim);
}
.mc-my-stats b { color: var(--fm-fg-strong); font-family: var(--fm-font-mono); font-weight: 700; }

/* Кнопки процесса матча */
.mc-process-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 24px;
  background: linear-gradient(135deg, var(--fm-accent) 0%, #00a843 100%);
  color: #04140a;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--fm-radius);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.2px;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(0,217,107,0.4), inset 0 1px 0 rgba(255,255,255,0.25);
  transition: transform 0.1s, box-shadow 0.15s;
  position: relative;
  overflow: hidden;
  text-align: left;
  flex-direction: column;
  align-items: flex-start;
}
.mc-process-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 28px rgba(0,217,107,0.55), inset 0 1px 0 rgba(255,255,255,0.3); }
.mc-process-btn:active { transform: translateY(0); }
.mc-process-btn i { font-size: 16px; }
.mc-process-btn small { font-size: 10px; opacity: 0.7; font-weight: 600; }

.mc-sim-btn {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: transparent;
  color: var(--fm-fg-dim);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--fm-radius);
  cursor: pointer;
  transition: all 0.15s;
}
.mc-sim-btn:hover { color: var(--fm-fg); border-color: rgba(255,255,255,0.2); background: rgba(255,255,255,0.04); }

/* MAIN GRID */
.mc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 14px;
}
@media (max-width: 980px) { .mc-grid { grid-template-columns: 1fr; } }

.mc-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* NEXT MATCH CARD (большая, в центре) */
.mc-next-match { overflow: hidden; }
.mc-next-body {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0;
  padding: 22px 14px;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,217,107,0.06) 0%, transparent 70%);
}
.mc-next-side {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  padding: 0 12px;
  min-width: 0;
}
.mc-next-tag {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--fm-fg-muted);
  padding: 2px 8px;
  background: rgba(255,255,255,0.05);
  border-radius: 100px;
}
.mc-next-name {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.3px;
  color: var(--fm-fg-strong);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.mc-next-meta { font-size: 11px; color: var(--fm-fg-dim); text-align: center; }

.mc-next-center {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 0 14px;
}
.mc-next-vs {
  font-size: 24px;
  font-weight: 900;
  color: var(--fm-fg-muted);
  letter-spacing: 1px;
}
.mc-next-play {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 18px;
  background: rgba(255,255,255,0.06);
  color: var(--fm-fg-strong);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 100px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
}
.mc-next-play:hover {
  background: var(--fm-accent);
  color: #04140a;
  border-color: var(--fm-accent);
  box-shadow: 0 0 20px rgba(0,217,107,0.4);
}
.mc-next-play i { color: var(--fm-accent); transition: color 0.15s; }
.mc-next-play:hover i { color: #04140a; }
.mc-next-stadium {
  font-size: 10px;
  color: var(--fm-fg-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
  margin-top: 4px;
}

/* STANDINGS */
.mc-standings-wrap { overflow-x: auto; }
.mc-standings {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.mc-standings thead th {
  padding: 8px 10px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--fm-fg-dim);
  text-align: center;
  border-bottom: 1px solid #263340;
  background: #1e282e;
}
.mc-standings thead th:nth-child(2) { text-align: left; }
.mc-standings tbody tr {
  border-bottom: 1px solid rgba(255,255,255,0.025);
  transition: background 0.1s;
}
.mc-standings tbody tr:hover { background: rgba(255,255,255,0.04); }
.mc-standings tbody tr.is-mine {
  background: var(--fm-accent-soft);
}
.mc-standings tbody tr.is-mine td { color: var(--fm-fg-strong); }
.mc-standings tbody tr.in-champions { box-shadow: inset 3px 0 0 var(--fm-accent); }
.mc-standings tbody tr.in-relegation { box-shadow: inset 3px 0 0 var(--fm-danger); }
.mc-standings tbody td {
  padding: 8px 10px;
  text-align: center;
  font-family: var(--fm-font-mono);
}
.mc-standings .mc-pos {
  font-weight: 800;
  color: var(--fm-fg);
  font-size: 13px;
}
.mc-standings .mc-team-cell {
  display: flex; align-items: center; gap: 8px;
  text-align: left;
  font-family: var(--fm-font);
  min-width: 0;
}
.mc-standings .mc-team-name {
  font-size: 12px; font-weight: 700; color: var(--fm-fg-strong);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mc-standings .mc-team-meta { font-size: 10px; color: var(--fm-fg-muted); font-family: var(--fm-font-mono); }
.mc-standings .mc-gf { color: var(--fm-fg); }
.mc-standings .mc-pts b { color: var(--fm-accent); font-size: 14px; }

/* FORM dots */
.form-row { display: inline-flex; gap: 3px; }
.form-dot {
  width: 16px; height: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 9px;
  font-weight: 800;
  border-radius: 3px;
  color: #fff;
}
.form-dot.form-w { background: var(--fm-accent); color: #04140a; }
.form-dot.form-d { background: var(--fm-fg-muted); color: #04140a; }
.form-dot.form-l { background: var(--fm-danger); }

/* FIXTURES LIST */
.mc-fixtures {
  padding: 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.fx-row {
  display: grid;
  grid-template-columns: 36px 48px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.1s;
}
.fx-row:hover { background: rgba(255,255,255,0.04); }
.fx-round { font-size: 11px; color: var(--fm-fg-muted); font-family: var(--fm-font-mono); font-weight: 600; }
.fx-date { font-size: 11px; color: var(--fm-fg-dim); font-family: var(--fm-font-mono); }
.fx-teams {
  display: flex; align-items: center; gap: 10px;
  min-width: 0;
}
.fx-team {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--fm-fg-dim);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  min-width: 0;
}
.fx-team.is-us { color: var(--fm-fg-strong); font-weight: 700; }
.fx-home { justify-content: flex-end; }
.fx-away { justify-content: flex-start; }
.fx-score {
  font-size: 13px;
  font-weight: 800;
  color: var(--fm-fg-strong);
  font-family: var(--fm-font-mono);
  padding: 0 6px;
}
.fx-score.fx-pending { color: var(--fm-fg-muted); font-weight: 400; }
.fx-result {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 800;
}
.fx-result.fx-win  { background: var(--fm-accent); color: #04140a; }
.fx-result.fx-draw { background: var(--fm-fg-muted); color: #04140a; }
.fx-result.fx-loss { background: var(--fm-danger); color: #fff; }
.fx-time {
  font-size: 10px;
  color: var(--fm-fg-muted);
  font-family: var(--fm-font-mono);
  font-weight: 600;
  padding: 0 6px;
}

/* EMPTY STATES */
.mc-empty {
  padding: 60px 24px;
  text-align: center;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: var(--fm-radius);
  color: var(--fm-fg-dim);
}
.mc-empty i { font-size: 36px; color: var(--fm-fg-faint); margin-bottom: 12px; }
.mc-empty strong { display: block; color: var(--fm-fg); font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.mc-empty p { font-size: 12px; max-width: 320px; margin: 0 auto; }

.mc-empty-mini {
  padding: 24px 16px;
  text-align: center;
  color: var(--fm-fg-dim);
  font-size: 12px;
}

/* Адаптив */
@media (max-width: 980px) {
  .mc-header { grid-template-columns: 1fr; gap: 12px; padding: 14px; }
  .mc-header-center, .mc-header-right { justify-content: flex-start; }
  .mc-next-body { grid-template-columns: 1fr; gap: 14px; padding: 16px 10px; }
  .mc-next-side { padding: 8px 0; }
  .mc-next-vs { display: none; }
}
@media (max-width: 768px) {
  .mc-header-left { gap: 10px; }
  .mc-mw-num { font-size: 18px; }
  .mc-my-rank-num { font-size: 18px; }
  .mc-my-stats { gap: 8px; font-size: 11px; }
  .mc-process-btn { padding: 10px 16px; font-size: 13px; }
  .fx-row { grid-template-columns: 32px 40px 1fr auto; gap: 6px; padding: 6px 8px; }
  .fx-team { font-size: 11px; }
  .fx-team > div { display: none; }  /* hide crest on tiny */
  .mc-team-cell > div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .mc-standings { font-size: 11px; }
  .mc-standings thead th, .mc-standings tbody td { padding: 6px 4px; }
  .mc-team-name { font-size: 11px; max-width: 100px; }
}

/* ===== FM-style Training: philosophy / schedule / squad plan / keepers / individual ===== */
.train-section-head { padding: 0 4px 12px; }
.train-section-title { display:flex; align-items:center; gap:8px; font-size:18px; font-weight:800; color:#fff; }
.train-section-title i { color: var(--fm-accent); font-size: 16px; }
.train-section-sub { font-size:12px; color:var(--fm-fg-muted); margin-top:2px; }
.train-empty { padding: 30px; text-align: center; color: var(--fm-fg-muted); font-style: italic; }

/* Philosophy presets grid */
.train-presets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  margin-bottom: 16px;
}
.train-preset {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  padding: 14px 10px 12px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  color: var(--fm-fg);
  cursor: pointer;
  overflow: hidden;
  transition: all .18s ease;
}
.train-preset i { font-size: 22px; color: var(--preset-color, var(--fm-accent)); }
.train-preset-label { font-size: 12px; font-weight: 700; text-align: center; }
.train-preset-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--preset-color, var(--fm-accent)); opacity: 0; transition: opacity .18s ease; }
.train-preset:hover { border-color: var(--preset-color, var(--fm-accent)); transform: translateY(-1px); }
.train-preset.active { border-color: var(--preset-color, var(--fm-accent)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--preset-color) 25%, transparent); }
.train-preset.active .train-preset-bar { opacity: 1; }

.train-preset-detail {
  padding: 14px 16px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--preset-color) 6%, #1c2830) 0%, #192228 100%);
  border: 1px solid color-mix(in srgb, var(--preset-color) 35%, #263340);
  border-radius: 6px;
  margin-bottom: 18px;
}
.train-preset-detail-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font-size: 16px; }
.train-preset-detail-head i { font-size: 18px; color: var(--preset-color, var(--fm-accent)); }
.train-preset-detail-head b { color: var(--preset-color, var(--fm-accent)); }
.train-preset-blurb { margin: 0 0 12px; font-size: 13px; line-height: 1.5; color: var(--fm-fg); }
.train-preset-pcols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.train-pro, .train-con { display: flex; gap: 8px; padding: 8px 10px; border-radius: 4px; font-size: 11px; line-height: 1.4; align-items: flex-start; }
.train-pro { background: rgba(74,157,91,.10); border: 1px solid rgba(74,157,91,.30); color: #c9f0d4; }
.train-con { background: rgba(217,103,86,.10); border: 1px solid rgba(217,103,86,.30); color: #f7d5cc; }
.train-pro i, .train-con i { font-size: 11px; margin-top: 1px; flex-shrink: 0; }
.train-pro i { color: #7dffb1; }
.train-con i { color: #ff9a85; }

/* Training meta grid (tactical focus, intensity, rotation) */
.train-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-bottom: 18px;
  padding: 12px;
  background: rgba(0,0,0,.18);
  border: 1px solid #263340;
  border-radius: 6px;
}
.train-meta-cell .tac-sheet-kicker { margin-bottom: 6px; }
.train-meta-youth { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--fm-fg); padding: 8px; }
.train-meta-youth i { color: var(--fm-accent); }

/* Training slider groups */
.train-sliders-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}
.train-slider-group {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  padding: 12px 14px;
}
.train-slider-head { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--g-color, var(--fm-accent)); margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid #263340; }
.train-slider-head i { font-size: 13px; }
.train-slider-list { display: flex; flex-direction: column; gap: 10px; }
.train-slider-row { padding: 4px 0; border-bottom: 1px dashed rgba(255,255,255,.05); }
.train-slider-row:last-child { border-bottom: none; }
.train-slider-top { display: flex; justify-content: space-between; font-size: 12px; color: var(--fm-fg); margin-bottom: 4px; }
.train-slider-top b { color: var(--fm-accent); font-size: 11px; font-weight: 800; }
.train-slider-body { display: grid; grid-template-columns: 80px 1fr 80px; gap: 8px; align-items: center; }
.train-slider-body em { font-style: normal; font-size: 10px; color: var(--fm-fg-muted); }
.train-slider-body em:last-child { text-align: right; }
.train-slider-body input[type=range] { width: 100%; accent-color: #4a9d5b; }
.train-slider-hint { margin: 4px 0 0; font-size: 10px; color: var(--fm-fg-muted); line-height: 1.35; }

/* Week schedule */
.train-schedule .train-phase-row { margin-bottom: 16px; padding: 10px 12px; background: rgba(0,0,0,.18); border: 1px solid #263340; border-radius: 6px; }
.train-phase-label { font-size: 10px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--fm-fg-muted); margin-bottom: 8px; }
.train-days-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.train-day {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  padding: 12px;
  position: relative;
  border-top: 3px solid var(--day-color, #263340);
}
.train-day.is-match { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--day-color) 25%, transparent); }
.train-day.is-rest { opacity: .85; }
.train-day-head { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.06); }
.train-day-name { font-size: 14px; font-weight: 800; color: #fff; }
.train-day-meta { font-size: 10px; color: var(--day-color); font-weight: 700; text-transform: uppercase; letter-spacing: .4px; }
.train-day-types, .train-day-ints { display: grid; gap: 4px; }
.train-day-types { grid-template-columns: repeat(2, 1fr); margin-bottom: 6px; }
.train-day-type, .train-day-int {
  display: flex; align-items: center; gap: 5px;
  padding: 6px 8px; font-size: 10px; font-weight: 600;
  background: rgba(255,255,255,.03); border: 1px solid #263340; border-radius: 3px;
  color: var(--fm-fg-dim); cursor: pointer; text-align: center; justify-content: center;
  transition: all .15s ease;
}
.train-day-type i { font-size: 11px; }
.train-day-type:hover, .train-day-int:hover { border-color: var(--type-color, var(--int-color, #4a9d5b)); color: #fff; }
.train-day-type.active { background: var(--type-color, var(--fm-accent)); color: #fff; border-color: var(--type-color, var(--fm-accent)); }
.train-day-int.active { background: var(--int-color, var(--fm-accent)); color: #04140a; border-color: var(--int-color, var(--fm-accent)); }

.train-time-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px; background: rgba(0,0,0,.12); border: 1px solid #263340; border-radius: 6px; }
.train-time-row .tac-field span i { color: var(--fm-accent); margin-right: 4px; }

/* Squad plan cards */
.train-sp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 10px;
}
.train-sp-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  padding: 10px 12px;
  display: flex; flex-direction: column; gap: 10px;
}
.train-sp-card.role-cornerstone { box-shadow: inset 3px 0 0 #ffd54f; }
.train-sp-card.role-starter { box-shadow: inset 3px 0 0 #4a9d5b; }
.train-sp-card.role-rotation { box-shadow: inset 3px 0 0 #7ec8ff; }
.train-sp-card.role-cup-keeper { box-shadow: inset 3px 0 0 #9aa6ff; }
.train-sp-card.role-succession-heir { box-shadow: inset 3px 0 0 #c084fc; }
.train-sp-card.role-development-pathway { box-shadow: inset 3px 0 0 #ff9a85; }
.train-sp-card.role-cover { box-shadow: inset 3px 0 0 #5a6b85; }
.train-sp-card.role-shop-window { box-shadow: inset 3px 0 0 #ff5b5b; }
.train-sp-card.role-not-in-plans { opacity: .6; box-shadow: inset 3px 0 0 #3a4a5a; }

.train-sp-head { display: flex; gap: 10px; align-items: center; }
.train-sp-avatar { width: 36px; height: 36px; border-radius: 4px; overflow: hidden; flex-shrink: 0; background: #0e161b; }
.train-sp-avatar svg { width: 100%; height: 100%; display: block; }
.train-sp-who { flex: 1; min-width: 0; }
.train-sp-name { font-size: 13px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.train-sp-meta { font-size: 11px; color: var(--fm-fg-dim); margin-top: 2px; }
.train-sp-meta b { color: var(--fm-accent); }
.train-sp-tag {
  flex-shrink: 0;
  padding: 4px 8px; font-size: 10px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
  background: rgba(74,157,91,.12); border: 1px solid rgba(74,157,91,.35); color: #7dffb1; border-radius: 9px;
}
.train-sp-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.train-role-pill {
  font-size: 10px; font-weight: 700; padding: 4px 8px; border-radius: 9px;
  background: rgba(255,255,255,.04); color: var(--fm-fg-dim); cursor: pointer;
  border: 1px solid rgba(255,255,255,.08);
  transition: all .15s ease;
}
.train-role-pill:hover { background: rgba(255,255,255,.08); color: #fff; }
.train-role-pill.active { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }

/* Keeper plan */
.train-gk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin-bottom: 18px; }
.train-gk-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 6px; padding: 12px;
  display: flex; flex-direction: column; gap: 10px;
}
.train-gk-card.tier-number-one { box-shadow: inset 3px 0 0 #4a9d5b; }
.train-gk-card.tier-deputy { box-shadow: inset 3px 0 0 #7ec8ff; }
.train-gk-card.tier-third { box-shadow: inset 3px 0 0 #9aa6ff; }
.train-gk-card.tier-pathway { box-shadow: inset 3px 0 0 #ffd54f; }
.train-gk-card.tier-academy { box-shadow: inset 3px 0 0 #c084fc; }
.train-gk-card.tier-surplus { opacity: .6; box-shadow: inset 3px 0 0 #5a6b85; }
.train-gk-head { display: flex; gap: 10px; align-items: center; }
.train-gk-avatar { width: 36px; height: 36px; border-radius: 4px; overflow: hidden; flex-shrink: 0; background: #0e161b; }
.train-gk-avatar svg { width: 100%; height: 100%; display: block; }
.train-gk-name { font-size: 13px; font-weight: 700; color: #fff; }
.train-gk-meta { font-size: 11px; color: var(--fm-fg-dim); }
.train-gk-meta b { color: var(--fm-accent); }
.train-gk-tiers { display: flex; flex-wrap: wrap; gap: 4px; }
.train-tier-pill { font-size: 10px; font-weight: 700; padding: 4px 8px; border-radius: 9px; background: rgba(255,255,255,.04); color: var(--fm-fg-dim); cursor: pointer; border: 1px solid rgba(255,255,255,.08); }
.train-tier-pill:hover { background: rgba(255,255,255,.08); color: #fff; }
.train-tier-pill.active { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }

.train-kdrill-section { padding: 12px 14px; background: rgba(0,0,0,.18); border: 1px solid #263340; border-radius: 6px; }
.train-kdrill-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 6px; }
.train-kdrill {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px; border-radius: 4px;
  background: rgba(255,255,255,.03); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 12px; font-weight: 600;
  cursor: pointer; position: relative;
}
.train-kdrill i { color: var(--fm-accent); font-size: 12px; }
.train-kdrill-dot { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15); margin-left: auto; }
.train-kdrill:hover { border-color: var(--fm-accent); color: #fff; }
.train-kdrill.active { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }
.train-kdrill.active i { color: #04140a; }
.train-kdrill.active .train-kdrill-dot { background: #04140a; border-color: #04140a; }

/* Individual training cards */
.train-ind-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.train-ind-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 6px; padding: 0;
  display: flex; flex-direction: column;
}
.train-ind-head { display: flex; gap: 10px; align-items: center; padding: 10px 14px; background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%); border-bottom: 1px solid #263340; }
.train-ind-avatar { width: 36px; height: 36px; border-radius: 4px; overflow: hidden; flex-shrink: 0; background: #0e161b; }
.train-ind-avatar svg { width: 100%; height: 100%; display: block; }
.train-ind-who { flex: 1; min-width: 0; }
.train-ind-name { font-size: 13px; font-weight: 700; color: #fff; }
.train-ind-meta { font-size: 11px; color: var(--fm-fg-dim); }
.train-ind-meta b { color: var(--fm-accent); }
.train-ind-meta em { color: #ffd54f; font-style: normal; font-weight: 700; }
.train-ind-counters { display: flex; gap: 8px; flex-shrink: 0; }
.train-ind-counters span { display: flex; flex-direction: column; align-items: center; padding: 4px 8px; background: rgba(74,157,91,.10); border: 1px solid rgba(74,157,91,.25); border-radius: 4px; min-width: 56px; }
.train-ind-counters b { font-size: 14px; font-weight: 800; color: #7dffb1; line-height: 1; }
.train-ind-counters em { font-size: 8px; color: var(--fm-fg-muted); text-transform: uppercase; letter-spacing: .3px; font-style: normal; margin-top: 2px; }
.train-ind-body { padding: 12px 14px; display: flex; flex-direction: column; gap: 12px; }
.train-ind-pills-section { display: flex; flex-direction: column; gap: 6px; }
.train-ind-pills-label { display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-accent); }
.train-ind-pills-label i { font-size: 11px; }
.train-focus-pills, .train-spec-pills { display: flex; flex-wrap: wrap; gap: 4px; }
.train-focus-pill, .train-spec-pill { font-size: 10px; font-weight: 600; padding: 4px 8px; border-radius: 9px; background: rgba(255,255,255,.04); color: var(--fm-fg-dim); cursor: pointer; border: 1px solid rgba(255,255,255,.08); }
.train-focus-pill:hover, .train-spec-pill:hover { background: rgba(255,255,255,.08); color: #fff; }
.train-focus-pill.active { background: #4a9d5b; color: #04140a; border-color: #4a9d5b; }
.train-spec-pill.active { background: #7ec8ff; color: #04140a; border-color: #7ec8ff; }
.train-ind-controls { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 10px; padding-top: 10px; border-top: 1px dashed rgba(255,255,255,.06); }
.train-ind-slider { display: flex; flex-direction: column; gap: 4px; }
.train-ind-slider-top { display: flex; justify-content: space-between; font-size: 11px; color: var(--fm-fg); }
.train-ind-slider-top b { color: var(--fm-accent); font-weight: 800; }
.train-ind-slider input[type=range] { width: 100%; accent-color: #4a9d5b; }
.train-ind-slider-hint { display: flex; justify-content: space-between; font-size: 9px; color: var(--fm-fg-muted); margin-top: 2px; }

@media (max-width: 768px) {
  .train-presets-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
  .train-preset-pcols { grid-template-columns: 1fr; }
  .train-days-grid { grid-template-columns: 1fr; }
  .train-time-row { grid-template-columns: 1fr; }
  .train-sp-grid, .train-gk-grid, .train-ind-grid { grid-template-columns: 1fr; }
  .train-ind-controls { grid-template-columns: 1fr; }
  .train-sliders-grid { grid-template-columns: 1fr; }
}

/* ===== FM-style Home: hero, KPI grid, mini-pitch, top-3, last match ===== */
.home-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
}
.home-hero-bg {
  position: absolute; inset: 0; opacity: .18;
  background:
    radial-gradient(circle at 20% 30%, var(--hero-c1, #4a9d5b) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, var(--hero-c2, #0e161b) 0%, transparent 60%);
}
.home-hero-inner { position: relative; padding: 22px 24px; display: flex; gap: 18px; align-items: center; }
.home-hero-crest { width: 96px; height: 96px; flex-shrink: 0; }
.home-hero-crest svg { width: 100%; height: 100%; display: block; }
.home-hero-info { flex: 1; min-width: 0; }
.home-hero-country { font-size: 12px; color: var(--fm-fg-muted); margin-bottom: 4px; }
.home-hero-name { font-size: 28px; font-weight: 900; margin: 0 0 8px; color: #fff; letter-spacing: -.5px; }
.home-hero-meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; color: var(--fm-fg-dim); margin-bottom: 10px; }
.home-hero-meta span { display: inline-flex; align-items: center; gap: 5px; }
.home-hero-meta i { color: var(--fm-accent); }
.home-hero-form { display: flex; gap: 4px; margin-top: 8px; }
.home-form-pill {
  width: 24px; height: 24px; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; color: #fff;
}
.home-form-pill.is-win { background: #4a9d5b; }
.home-form-pill.is-draw { background: #ffd54f; color: #04140a; }
.home-form-pill.is-loss { background: #ff5b5b; }

/* KPI grid */
.home-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.home-kpi {
  display: flex; gap: 12px; align-items: center;
  padding: 12px 14px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340;
  border-radius: 6px;
  position: relative;
  overflow: hidden;
}
.home-kpi::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--fm-accent);
  background: linear-gradient(180deg, #4a9d5b 0%, #2d6b3d 100%);
}
.home-kpi-gold::before { background: linear-gradient(180deg, #ffd54f 0%, #c08421 100%); }
.home-kpi-cyan::before { background: linear-gradient(180deg, #7ec8ff 0%, #4a89bf 100%); }
.home-kpi-dim::before { background: linear-gradient(180deg, #5a6b85 0%, #2a3142 100%); }
.home-kpi-icon {
  width: 40px; height: 40px; border-radius: 8px;
  background: rgba(255,255,255,.06); color: var(--fm-accent);
  display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0;
}
.home-kpi-gold .home-kpi-icon { color: #ffd54f; background: rgba(255,213,79,.10); }
.home-kpi-cyan .home-kpi-icon { color: #7ec8ff; background: rgba(126,200,255,.10); }
.home-kpi-body { min-width: 0; }
.home-kpi-label { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); margin-bottom: 2px; }
.home-kpi-value { font-size: 22px; font-weight: 800; color: #fff; line-height: 1.1; }
.home-kpi-sub { font-size: 11px; color: var(--fm-fg-dim); margin-top: 1px; }

/* Home grid (3 cards) */
.home-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.home-card { display: flex; flex-direction: column; min-width: 0; }
.home-card-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px; background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  border-bottom: 1px solid #263340; border-radius: 6px 6px 0 0;
}
.home-card-head h3 { margin: 0; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: #fff; }
.home-card-head h3 i { color: var(--fm-accent); margin-right: 4px; }
.home-card-link {
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.08);
  width: 24px; height: 24px; border-radius: 4px; color: var(--fm-fg-dim); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; font-size: 10px;
}
.home-card-link:hover { background: var(--fm-accent); color: #fff; border-color: var(--fm-accent); }

.home-card-pitch .home-pitch-mini { padding: 8px; }
.home-card-pitch .tac-stage { background: transparent; }
.home-card-pitch .tac-pitch-col { min-width: 0; }
.home-card-pitch .tac-chip { transform: scale(0.85); }

/* Top-3 */
.home-top-list { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; }
.home-top-card {
  display: grid; grid-template-columns: 18px 40px 1fr auto; gap: 8px; align-items: center;
  padding: 6px 8px; border-radius: 4px;
  background: rgba(0,0,0,.15); border: 1px solid rgba(255,255,255,.05);
}
.home-top-card.rank-1 { background: rgba(255,213,79,.08); border-color: rgba(255,213,79,.30); }
.home-top-card.rank-2 { background: rgba(192,132,252,.08); border-color: rgba(192,132,252,.25); }
.home-top-card.rank-3 { background: rgba(126,200,255,.08); border-color: rgba(126,200,255,.25); }
.home-top-rank { font-size: 12px; font-weight: 900; text-align: center; color: var(--fm-fg-muted); }
.home-top-card.rank-1 .home-top-rank { color: #ffd54f; }
.home-top-card.rank-2 .home-top-rank { color: #c084fc; }
.home-top-card.rank-3 .home-top-rank { color: #7ec8ff; }
.home-top-avatar { width: 40px; height: 40px; border-radius: 4px; overflow: hidden; background: #0e161b; }
.home-top-avatar svg { width: 100%; height: 100%; display: block; }
.home-top-info { min-width: 0; }
.home-top-name { font-size: 12px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.home-top-meta { font-size: 10px; color: var(--fm-fg-dim); }
.home-top-rating { display: flex; flex-direction: column; align-items: center; min-width: 44px; }
.home-top-rating b { font-size: 18px; font-weight: 900; color: var(--fm-accent); line-height: 1; }
.home-top-rating em { font-size: 9px; color: #ffd54f; font-style: normal; font-weight: 700; }
.home-empty { padding: 16px; text-align: center; color: var(--fm-fg-muted); font-style: italic; font-size: 12px; }

/* Last match */
.home-lastmatch { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 20px 12px; }
.home-lastmatch-team { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; }
.home-lastmatch-team span { font-size: 11px; color: var(--fm-fg-dim); font-weight: 600; }
.home-lastmatch-team b { font-size: 28px; font-weight: 900; color: #fff; line-height: 1; }
.home-lastmatch-vs { font-size: 18px; font-weight: 800; color: var(--fm-fg-muted); }
.home-lastmatch-empty { padding: 24px; text-align: center; color: var(--fm-fg-muted); font-size: 12px; }
.home-lastmatch-empty i { font-size: 24px; display: block; margin-bottom: 8px; }

@media (max-width: 1024px) {
  .home-grid { grid-template-columns: 1fr 1fr; }
  .home-card-pitch { grid-column: span 2; }
}
@media (max-width: 768px) {
  .home-grid { grid-template-columns: 1fr; }
  .home-card-pitch { grid-column: span 1; }
  .home-hero-inner { flex-direction: column; align-items: flex-start; }
  .home-hero-crest { width: 72px; height: 72px; }
  .home-hero-name { font-size: 22px; }
  .home-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== FM-style Club: hero, sections, finance, trophies, staff ===== */
.club-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
}
.club-hero-bg {
  position: absolute; inset: 0; opacity: .22;
  background:
    radial-gradient(circle at 15% 30%, var(--hero-c1, #4a9d5b) 0%, transparent 50%),
    radial-gradient(circle at 85% 70%, var(--hero-c2, #0e161b) 0%, transparent 60%);
}
.club-hero-inner { position: relative; padding: 24px; display: flex; gap: 20px; align-items: center; }
.club-hero-crest { width: 120px; height: 120px; flex-shrink: 0; }
.club-hero-crest svg { width: 100%; height: 100%; display: block; }
.club-hero-info { flex: 1; min-width: 0; }
.club-hero-country { font-size: 12px; color: var(--fm-fg-muted); margin-bottom: 4px; }
.club-hero-name { font-size: 32px; font-weight: 900; margin: 0 0 6px; color: #fff; letter-spacing: -.5px; }
.club-hero-sub { font-size: 13px; color: var(--fm-fg-dim); margin-bottom: 14px; }
.club-hero-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }

/* Reputation bar */
.club-rep-bar { margin-top: 10px; max-width: 420px; }
.club-rep-bar-track { position: relative; height: 8px; background: rgba(255,255,255,.06); border-radius: 4px; overflow: hidden; }
.club-rep-bar-fill { display: block; height: 100%; border-radius: 4px; transition: width .3s; }
.club-rep-bar-meta { display: flex; justify-content: space-between; margin-top: 4px; font-size: 11px; color: var(--fm-fg-dim); }

/* Club grid layout */
.club-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.club-section { display: flex; flex-direction: column; min-width: 0; }
.club-section-body { padding: 14px; }
.club-section-wide { grid-column: span 2; }

/* Identity */
.club-id-rows { display: flex; flex-direction: column; }
.club-id-row { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed rgba(255,255,255,.06); font-size: 13px; }
.club-id-row:last-child { border-bottom: none; }
.club-id-row span { color: var(--fm-fg-muted); }
.club-id-row b { color: #fff; font-weight: 700; }

/* Kit preview */
.club-kit-preview { display: grid; grid-template-columns: 100px 1fr; gap: 14px; align-items: center; }
.club-kit-jersey {
  width: 100px; height: 110px; border-radius: 8px;
  background:
    linear-gradient(135deg, var(--kit-c1, #4a9d5b) 0%, var(--kit-c1, #4a9d5b) 50%, var(--kit-c2, #0e161b) 50%, var(--kit-c2, #0e161b) 100%);
  position: relative; overflow: hidden;
  border: 2px solid rgba(255,255,255,.15);
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.2);
}
.club-kit-stripe { position: absolute; left: 50%; top: 0; bottom: 0; width: 14px; background: rgba(255,255,255,.06); }
.club-kit-number {
  position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%);
  color: #fff; font-size: 16px; font-weight: 900; text-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.club-kit-info { display: flex; flex-direction: column; gap: 6px; }
.club-kit-row { display: flex; justify-content: space-between; align-items: center; font-size: 12px; padding: 4px 0; }
.club-kit-row span { color: var(--fm-fg-muted); }
.club-kit-row b { color: #fff; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.color-chip { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid rgba(255,255,255,.15); }

/* Finance */
.club-fin-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.club-fin-big {
  padding: 10px 12px; background: rgba(0,0,0,.18); border: 1px solid #263340; border-radius: 6px;
  display: flex; flex-direction: column; gap: 4px;
}
.club-fin-big-label { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); }
.club-fin-big-val { font-size: 20px; font-weight: 900; color: #fff; }
.club-fin-wage { grid-column: span 2; padding: 10px 12px; background: rgba(0,0,0,.18); border: 1px solid #263340; border-radius: 6px; }
.club-fin-wage-top { display: flex; justify-content: space-between; font-size: 11px; color: var(--fm-fg-dim); margin-bottom: 6px; }
.club-fin-wage-top b { color: #fff; font-weight: 700; }
.club-fin-wage-bar { height: 6px; background: rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; margin-bottom: 4px; }
.club-fin-wage-bar span { display: block; height: 100%; border-radius: 3px; }
.club-fin-wage-meta { font-size: 10px; color: var(--fm-fg-muted); }

.club-fin-monthly { border-top: 1px dashed rgba(255,255,255,.08); padding-top: 10px; margin-top: 4px; }
.club-fin-monthly-title { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); margin-bottom: 6px; }
.club-fin-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 4px; border-bottom: 1px dashed rgba(255,255,255,.04); font-size: 12px; }
.club-fin-row-left { display: flex; align-items: center; gap: 8px; color: var(--fm-fg-dim); }
.club-fin-row-val { font-weight: 700; font-family: 'Menlo', 'Monaco', monospace; }
.club-fin-row.is-pos .club-fin-row-val { color: #7dffb1; }
.club-fin-row.is-neg .club-fin-row-val { color: #ff9a85; }
.club-fin-row.is-zero .club-fin-row-val { color: var(--fm-fg-muted); }
.club-fin-sponsor {
  margin-top: 12px; padding: 8px 10px; background: rgba(126,200,255,.08); border: 1px solid rgba(126,200,255,.25); border-radius: 4px;
  font-size: 11px; color: #c9e2ff; display: flex; align-items: center; gap: 8px;
}
.club-fin-sponsor i { color: #7ec8ff; }

/* Trophies */
.club-trophy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.club-trophy-cat {
  padding: 14px 10px; background: rgba(0,0,0,.18); border: 1px solid #263340;
  border-radius: 6px; text-align: center; position: relative; overflow: hidden;
}
.club-trophy-cat::before { content: ''; position: absolute; inset: 0; background: var(--trophy-color); opacity: .06; pointer-events: none; }
.club-trophy-cat i { font-size: 24px; color: var(--trophy-color); margin-bottom: 6px; }
.club-trophy-info b { display: block; font-size: 22px; font-weight: 900; color: #fff; line-height: 1; }
.club-trophy-info span { font-size: 10px; color: var(--fm-fg-muted); text-transform: uppercase; letter-spacing: .4px; }

/* Infrastructure */
.club-infra-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px dashed rgba(255,255,255,.06); }
.club-infra-row:last-child { border-bottom: none; }
.club-infra-label { font-size: 13px; color: var(--fm-fg); }
.club-infra-label i { color: var(--fm-accent); margin-right: 6px; }
.club-infra-stars { display: flex; align-items: center; gap: 2px; }
.club-infra-star { color: rgba(255,255,255,.10); font-size: 12px; }
.club-infra-star.on { color: #ffd54f; text-shadow: 0 0 6px rgba(255,213,79,.4); }
.club-infra-stars em { font-style: normal; font-size: 11px; color: var(--fm-fg-muted); margin-left: 8px; font-weight: 700; }

/* Staff */
.club-staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.club-staff-card {
  display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center;
  padding: 8px 12px; background: rgba(0,0,0,.15); border: 1px solid #263340; border-radius: 6px;
}
.club-staff-avatar {
  width: 36px; height: 36px; border-radius: 50%;
  background: linear-gradient(135deg, #2a3a4a 0%, #1c2830 100%);
  color: var(--fm-accent); display: flex; align-items: center; justify-content: center; font-size: 14px;
}
.club-staff-info { min-width: 0; }
.club-staff-role { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); }
.club-staff-name { font-size: 13px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.club-staff-rating { display: flex; flex-direction: column; align-items: center; min-width: 36px; padding: 2px 6px; border-radius: 4px; background: rgba(255,255,255,.04); border: 1px solid var(--r-color, var(--fm-accent)); }
.club-staff-rating b { font-size: 16px; font-weight: 900; color: var(--r-color, var(--fm-accent)); line-height: 1; }
.club-staff-rating em { font-size: 8px; color: var(--fm-fg-muted); font-style: normal; }

@media (max-width: 1024px) {
  .club-grid { grid-template-columns: 1fr; }
  .club-section-wide { grid-column: span 1; }
  .club-kit-preview { grid-template-columns: 80px 1fr; }
  .club-kit-jersey { width: 80px; height: 88px; }
  .club-fin-summary { grid-template-columns: 1fr; }
  .club-fin-wage { grid-column: span 1; }
}
@media (max-width: 768px) {
  .club-hero-inner { flex-direction: column; align-items: flex-start; }
  .club-hero-crest { width: 88px; height: 88px; }
  .club-hero-name { font-size: 24px; }
  .club-hero-actions { flex-direction: row; width: 100%; }
  .club-staff-grid { grid-template-columns: 1fr; }
}

/* ===== FM-style Squad: hero, ranking cards, full table ===== */
.squad-hero, .youth-hero, .staff-hero, .infra-hero, .chat-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  display: flex; gap: 16px; align-items: center;
  padding: 18px 20px;
}
.squad-hero-icon, .youth-hero-icon, .staff-hero-icon, .infra-hero-icon, .chat-hero-icon {
  width: 56px; height: 56px; border-radius: 12px;
  background: rgba(74,157,91,.15); border: 1px solid rgba(74,157,91,.35);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: var(--fm-accent); flex-shrink: 0;
}
.staff-hero-icon { background: rgba(126,200,255,.15); border-color: rgba(126,200,255,.35); color: #7ec8ff; }
.youth-hero-icon { background: rgba(192,132,252,.15); border-color: rgba(192,132,252,.35); color: #c084fc; }
.infra-hero-icon { background: rgba(255,213,79,.15); border-color: rgba(255,213,79,.35); color: #ffd54f; }
.chat-hero-icon  { background: rgba(125,200,181,.15); border-color: rgba(125,200,181,.35); color: #7dffc8; }
.squad-hero-title, .youth-hero-title, .staff-hero-title, .infra-hero-title, .chat-hero-title { font-size: 22px; font-weight: 900; color: #fff; margin-bottom: 4px; }
.squad-hero-sub, .youth-hero-sub, .staff-hero-sub, .infra-hero-sub, .chat-hero-sub { font-size: 13px; color: var(--fm-fg-dim); }

/* Ranking cards */
.squad-rank-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 14px; }
.squad-rank-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  padding: 0; display: flex; flex-direction: column;
  position: relative; overflow: hidden;
}
.squad-rank-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--rank-color); }
.squad-rank-head { padding: 10px 12px; border-bottom: 1px solid #263340; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--rank-color); }
.squad-rank-head i { margin-right: 4px; }
.squad-rank-list { padding: 8px; display: flex; flex-direction: column; gap: 4px; }
.squad-rank-item {
  display: grid; grid-template-columns: 18px 1fr auto; gap: 6px; align-items: center;
  padding: 6px 8px; background: rgba(0,0,0,.15); border-radius: 4px;
  font-size: 12px; cursor: pointer;
}
.squad-rank-item:hover { background: rgba(255,255,255,.05); }
.squad-rank-num { font-weight: 800; color: var(--rank-color); }
.squad-rank-name { font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.squad-rank-meta { font-size: 10px; color: var(--fm-fg-dim); }
.squad-rank-empty { padding: 8px; text-align: center; color: var(--fm-fg-muted); font-style: italic; font-size: 12px; }

/* Squad table */
.squad-table-wrap { overflow-x: auto; }
.fm-squad-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: 12px;
}
.fm-squad-table thead th {
  background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  padding: 8px 10px; text-align: left;
  font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted);
  border-bottom: 1px solid #263340; white-space: nowrap;
}
.fm-squad-table tbody tr { transition: background-color .12s; cursor: pointer; }
.fm-squad-table tbody tr:hover { background: rgba(255,255,255,.04); }
.fm-squad-table tbody td {
  padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: middle; white-space: nowrap;
}
.fm-squad-table tbody tr:last-child td { border-bottom: none; }
.sq-pos-badge {
  display: inline-block; padding: 3px 8px; font-size: 10px; font-weight: 800;
  border-radius: 4px; background: rgba(255,255,255,.06); color: var(--fm-fg-dim);
  border: 1px solid rgba(255,255,255,.08); letter-spacing: .3px;
}
.sq-pos-badge.pos-GK { background: rgba(255,213,79,.15); color: #ffd54f; border-color: rgba(255,213,79,.35); }
.sq-pos-badge.pos-DEF { background: rgba(126,200,255,.15); color: #7ec8ff; border-color: rgba(126,200,255,.35); }
.sq-pos-badge.pos-MID { background: rgba(74,157,91,.15); color: #7dffb1; border-color: rgba(74,157,91,.35); }
.sq-pos-badge.pos-FWD { background: rgba(255,90,90,.15); color: #ff9a85; border-color: rgba(255,90,90,.35); }
.sq-name-row { display: flex; gap: 8px; align-items: center; }
.sq-avatar { width: 28px; height: 28px; border-radius: 4px; overflow: hidden; background: #0e161b; flex-shrink: 0; }
.sq-avatar svg { width: 100%; height: 100%; display: block; }
.sq-name-text { display: flex; flex-direction: column; min-width: 0; }
.sq-name-main { font-weight: 700; color: #fff; font-size: 12px; }
.sq-name-sub { font-size: 10px; color: var(--fm-fg-muted); }
.sq-ability, .sq-potential { font-size: 16px; font-weight: 900; }
.sq-ability b { color: var(--fm-accent); }
.sq-potential b { color: #ffd54f; }
.sq-form-pill {
  display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 800; min-width: 22px; text-align: center;
}
.sq-form-pill.is-win { background: #4a9d5b; color: #fff; }
.sq-form-pill.is-draw { background: #ffd54f; color: #04140a; }
.sq-form-pill.is-loss { background: #ff5b5b; color: #fff; }
.sq-morale-pill {
  display: inline-block; padding: 2px 8px; border-radius: 9px; font-size: 10px; font-weight: 700;
}
.sq-morale-pill.is-good { background: rgba(74,157,91,.15); color: #7dffb1; }
.sq-morale-pill.is-ok { background: rgba(126,200,255,.15); color: #7ec8ff; }
.sq-morale-pill.is-low { background: rgba(255,154,133,.15); color: #ff9a85; }
.sq-contract { font-size: 11px; color: var(--fm-fg-dim); }
.sq-wage { font-size: 11px; color: var(--fm-fg); font-family: 'Menlo', 'Monaco', monospace; }

/* ===== Youth Academy ===== */
.youth-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; padding: 14px; }
.youth-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  padding: 12px; display: flex; flex-direction: column; gap: 10px;
  position: relative;
}
.youth-card.pos-GK { box-shadow: inset 3px 0 0 #ffd54f; }
.youth-card.pos-DEF { box-shadow: inset 3px 0 0 #7ec8ff; }
.youth-card.pos-MID { box-shadow: inset 3px 0 0 #4a9d5b; }
.youth-card.pos-FWD { box-shadow: inset 3px 0 0 #ff5b5b; }
.youth-card-head { display: flex; gap: 10px; align-items: center; }
.youth-avatar { width: 44px; height: 44px; border-radius: 4px; overflow: hidden; background: #0e161b; flex-shrink: 0; }
.youth-avatar svg { width: 100%; height: 100%; display: block; }
.youth-info { flex: 1; min-width: 0; }
.youth-name { font-size: 13px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.youth-meta { font-size: 10px; color: var(--fm-fg-dim); margin-bottom: 3px; }
.youth-growth {
  display: inline-flex; gap: 4px; align-items: center;
  font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 9px;
  background: rgba(255,255,255,.04); color: var(--g-color); border: 1px solid var(--g-color);
}
.youth-growth i { font-size: 10px; }
.youth-progress { display: flex; flex-direction: column; gap: 4px; }
.youth-progress-row { display: flex; justify-content: space-between; font-size: 11px; color: var(--fm-fg-dim); }
.youth-progress-row b { font-size: 16px; font-weight: 900; color: var(--fm-accent); }
.youth-progress-target b { color: #ffd54f; }
.youth-progress-bar { position: relative; height: 6px; background: rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; }
.youth-progress-bar span { display: block; height: 100%; border-radius: 3px; }
.youth-attrs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.youth-attr {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 6px 4px; background: rgba(0,0,0,.15); border-radius: 4px;
}
.youth-attr span { font-size: 9px; color: var(--fm-fg-muted); text-align: center; }
.youth-attr b { font-size: 13px; font-weight: 800; color: #fff; }
.youth-actions { display: flex; gap: 6px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.06); }
.youth-btn { flex: 1; padding: 6px 10px; border-radius: 4px; border: 1px solid #263340; background: rgba(255,255,255,.04); color: var(--fm-fg-dim); font-size: 11px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 4px; }
.youth-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.youth-btn-primary { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }
.youth-btn-primary:hover { background: #5fb069; color: #04140a; }

/* ===== Staff ===== */
.staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; padding: 14px; }
.staff-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  padding: 14px; display: flex; flex-direction: column; gap: 10px;
}
.staff-card.filled { box-shadow: inset 3px 0 0 var(--r-color, #7ec8ff); }
.staff-card-empty { opacity: .85; border-style: dashed; }
.staff-card-head { display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; }
.staff-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, #2a3a4a 0%, #1c2830 100%);
  color: var(--fm-accent); display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.staff-card-info { min-width: 0; }
.staff-card-role { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); }
.staff-card-name { font-size: 14px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.staff-card-vacant { font-size: 11px; color: #ff9a85; font-weight: 700; }
.staff-card-vacant i { margin-right: 4px; }
.staff-card-rating { display: flex; flex-direction: column; align-items: center; min-width: 40px; padding: 4px 6px; border-radius: 4px; background: rgba(255,255,255,.04); border: 1px solid var(--r-color, var(--fm-accent)); }
.staff-card-rating b { font-size: 18px; font-weight: 900; color: var(--r-color, var(--fm-accent)); line-height: 1; }
.staff-card-rating em { font-size: 8px; color: var(--fm-fg-muted); font-style: normal; }
.staff-card-meta { display: flex; gap: 12px; font-size: 11px; color: var(--fm-fg-dim); }
.staff-card-meta i { color: var(--fm-accent); margin-right: 4px; }
.staff-card-desc { margin: 0; font-size: 12px; color: var(--fm-fg-dim); line-height: 1.45; }
.staff-card-special { display: flex; flex-wrap: wrap; gap: 4px; }
.staff-card-special span { font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 9px; background: rgba(192,132,252,.10); border: 1px solid rgba(192,132,252,.25); color: #c084fc; }
.staff-card-actions { display: flex; gap: 6px; padding-top: 8px; border-top: 1px dashed rgba(255,255,255,.06); }
.staff-btn { flex: 1; padding: 6px 10px; border-radius: 4px; border: 1px solid #263340; background: rgba(255,255,255,.04); color: var(--fm-fg-dim); font-size: 11px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 4px; }
.staff-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.staff-btn-primary { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }
.staff-btn-danger { background: rgba(255,154,133,.10); border-color: rgba(255,154,133,.30); color: #ff9a85; }
.staff-btn-danger:hover { background: rgba(255,154,133,.20); color: #ff9a85; }

/* ===== Infrastructure ===== */
.infra-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; }
.infra-card {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  padding: 16px; display: flex; flex-direction: column; gap: 12px;
}
.infra-card-head { display: flex; gap: 12px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid #263340; }
.infra-icon { width: 48px; height: 48px; border-radius: 8px; background: rgba(255,213,79,.10); color: #ffd54f; display: flex; align-items: center; justify-content: center; font-size: 20px; }
.infra-head-info { flex: 1; min-width: 0; }
.infra-title { font-size: 16px; font-weight: 800; color: #fff; }
.infra-sub { font-size: 12px; color: var(--fm-fg-dim); margin-top: 2px; }
.infra-current { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; background: rgba(0,0,0,.18); border-radius: 6px; }
.infra-tier-badge { display: flex; flex-direction: column; gap: 2px; }
.infra-tier-badge b { font-size: 14px; font-weight: 800; color: #fff; }
.infra-tier-badge[data-tier="5"] b { color: #ff9a85; }
.infra-tier-badge[data-tier="4"] b { color: #ffd54f; }
.infra-tier-badge[data-tier="3"] b { color: #4a9d5b; }
.infra-tier-badge[data-tier="2"] b { color: #7ec8ff; }
.infra-tier-badge[data-tier="1"] b { color: #9aa6ff; }
.infra-tier-badge span { font-size: 11px; color: var(--fm-fg-dim); }
.infra-stars { display: flex; gap: 2px; }
.infra-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.infra-benefit {
  display: flex; gap: 8px; align-items: center;
  padding: 6px 10px; background: rgba(0,0,0,.12); border-radius: 4px;
  font-size: 11px; color: var(--fm-fg-dim);
}
.infra-benefit i { color: var(--fm-accent); }
.infra-benefit b { color: #fff; font-weight: 700; margin-left: auto; }
.infra-upgrade {
  padding: 12px; background: rgba(255,213,79,.08); border: 1px solid rgba(255,213,79,.25); border-radius: 6px;
  display: flex; flex-direction: column; gap: 8px;
}
.infra-upgrade-title { font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: #ffd54f; }
.infra-upgrade-title i { margin-right: 4px; }
.infra-upgrade-row { display: flex; justify-content: space-between; font-size: 12px; color: #fff; }
.infra-upgrade-cost { color: #ffd54f; font-weight: 800; font-family: 'Menlo', 'Monaco', monospace; }
.infra-upgrade-btn {
  padding: 8px 12px; border-radius: 4px; background: #ffd54f; color: #04140a; border: none;
  font-size: 12px; font-weight: 800; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px;
}
.infra-upgrade-btn:hover { background: #ffb700; }
.infra-upgrade-btn:disabled { background: rgba(255,213,79,.30); color: var(--fm-fg-muted); cursor: not-allowed; }
.infra-maxed { padding: 12px; text-align: center; background: rgba(74,157,91,.10); border: 1px solid rgba(74,157,91,.30); border-radius: 6px; font-size: 12px; color: #7dffb1; font-weight: 700; }
.infra-maxed i { margin-right: 4px; }

/* ===== Chat ===== */
.chat-layout {
  display: grid; grid-template-columns: 240px 1fr; gap: 10px;
  height: 600px; max-height: 70vh;
}
.chat-sidebar {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.chat-sidebar-head { padding: 10px 12px; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted); border-bottom: 1px solid #263340; }
.chat-sidebar-list { flex: 1; overflow-y: auto; }
.chat-npc-item {
  width: 100%; padding: 10px 12px; display: grid; grid-template-columns: 32px 1fr auto; gap: 8px; align-items: center;
  background: transparent; border: none; border-bottom: 1px solid rgba(255,255,255,.04); color: var(--fm-fg); cursor: pointer; text-align: left;
  position: relative;
}
.chat-npc-item:hover { background: rgba(255,255,255,.04); }
.chat-npc-item.active { background: rgba(255,255,255,.08); box-shadow: inset 3px 0 0 var(--npc-color); }
.chat-npc-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg, var(--npc-color) 0%, color-mix(in srgb, var(--npc-color) 50%, #0e161b) 100%);
  color: #04140a; display: flex; align-items: center; justify-content: center; font-size: 12px;
}
.chat-npc-info { min-width: 0; }
.chat-npc-name { font-size: 12px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-npc-role { font-size: 10px; color: var(--fm-fg-dim); }
.chat-npc-unread {
  background: var(--fm-accent); color: #04140a; font-size: 10px; font-weight: 800;
  min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center;
}
.chat-npc-status { position: absolute; top: 8px; right: 8px; width: 8px; height: 8px; border-radius: 50%; }
.chat-npc-status.is-online { background: #4a9d5b; }
.chat-npc-status.is-offline { background: #5a6b85; }
.chat-main {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.chat-thread-head { padding: 12px 16px; border-bottom: 1px solid #263340; display: flex; gap: 10px; align-items: center; box-shadow: inset 0 0 0 3px var(--npc-color); }
.chat-thread-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, var(--npc-color) 0%, color-mix(in srgb, var(--npc-color) 50%, #0e161b) 100%);
  color: #04140a; display: flex; align-items: center; justify-content: center; font-size: 16px;
}
.chat-thread-name { font-size: 14px; font-weight: 700; color: #fff; }
.chat-thread-role { font-size: 11px; color: var(--fm-fg-dim); }
.chat-online { color: #7dffb1; margin-left: 4px; font-weight: 700; }
.chat-offline { color: var(--fm-fg-muted); margin-left: 4px; font-weight: 700; }
.chat-messages { flex: 1; overflow-y: auto; padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; }
.chat-msg { display: flex; gap: 8px; max-width: 75%; }
.chat-msg.is-npc { align-self: flex-start; }
.chat-msg.is-me { align-self: flex-end; flex-direction: row-reverse; }
.chat-msg-avatar {
  width: 28px; height: 28px; border-radius: 50%; background: var(--fm-accent); color: #04140a;
  display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0;
  align-self: flex-end;
}
.chat-msg-bubble {
  padding: 8px 12px; border-radius: 12px; font-size: 13px; line-height: 1.45;
  background: rgba(255,255,255,.06); color: #fff;
}
.chat-msg-bubble.is-me { background: var(--fm-accent); color: #04140a; border-bottom-right-radius: 2px; }
.chat-msg:not(.is-me) .chat-msg-bubble { border-bottom-left-radius: 2px; }
.chat-quick { padding: 10px 16px; border-top: 1px solid #263340; display: flex; gap: 6px; flex-wrap: wrap; }
.chat-quick-btn {
  padding: 6px 10px; border-radius: 4px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 11px; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
}
.chat-quick-btn:hover { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }
.chat-quick-btn i { font-size: 10px; }

@media (max-width: 1024px) {
  .chat-layout { grid-template-columns: 1fr; height: auto; }
  .chat-sidebar { max-height: 200px; }
  .squad-rank-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .squad-rank-grid { grid-template-columns: 1fr; }
  .fm-squad-table { font-size: 11px; }
  .fm-squad-table thead th { padding: 6px 6px; font-size: 9px; }
  .fm-squad-table tbody td { padding: 6px 6px; }
  .youth-grid, .staff-grid, .infra-grid { grid-template-columns: 1fr; }
  .infra-benefits { grid-template-columns: 1fr; }
}

/* ===== FM-style News ===== */
.news-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  display: flex; gap: 16px; align-items: center;
  padding: 18px 20px;
}
.news-hero-icon {
  width: 56px; height: 56px; border-radius: 12px;
  background: rgba(255,213,79,.15); border: 1px solid rgba(255,213,79,.35);
  color: #ffd54f; display: flex; align-items: center; justify-content: center;
  font-size: 22px; flex-shrink: 0;
}
.news-hero-info { flex: 1; min-width: 0; }
.news-hero-title { font-size: 22px; font-weight: 900; color: #fff; margin-bottom: 4px; }
.news-hero-sub { font-size: 13px; color: var(--fm-fg-dim); }
.news-hero-actions { display: flex; gap: 8px; flex-shrink: 0; }
.news-hero-btn {
  padding: 10px 14px; border-radius: 6px;
  background: var(--fm-accent); color: #04140a; border: none;
  font-size: 12px; font-weight: 800; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
}
.news-hero-btn:hover { background: #5fb069; }

/* Filters */
.news-filters {
  display: flex; gap: 8px; flex-wrap: wrap;
  padding: 12px 14px; background: rgba(0,0,0,.12);
  border-top: 1px solid rgba(255,255,255,.04);
}
.news-filter {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 6px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 12px; font-weight: 600; cursor: pointer;
  transition: all .15s ease;
}
.news-filter:hover { background: rgba(255,255,255,.08); color: #fff; }
.news-filter.active {
  background: var(--cat-color, var(--fm-accent));
  color: #04140a; border-color: var(--cat-color, var(--fm-accent));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--cat-color, var(--fm-accent)) 25%, transparent);
}
.news-filter em { font-style: normal; font-size: 10px; font-weight: 800; padding: 1px 6px; border-radius: 9px; background: rgba(0,0,0,.30); min-width: 20px; text-align: center; }
.news-filter.active em { background: rgba(0,0,0,.20); }

/* Feed */
.news-feed { display: flex; flex-direction: column; gap: 8px; padding: 14px; }
.news-card {
  position: relative;
  display: grid; grid-template-columns: 4px 48px 1fr; gap: 12px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 6px;
  overflow: hidden;
  transition: all .15s ease;
}
.news-card.is-unread { background: linear-gradient(180deg, #1c2830 0%, #1a2228 100%); }
.news-card.is-read { opacity: .82; }
.news-card:hover { border-color: rgba(255,255,255,.18); }
.news-card-stripe { background: var(--category-color, var(--fm-accent)); border-radius: 4px; }
.news-card-icon {
  width: 48px; height: 48px; border-radius: 8px;
  background: color-mix(in srgb, var(--category-color) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--category-color) 35%, transparent);
  color: var(--category-color); display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.news-card-body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.news-card-meta {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
  font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
}
.news-cat {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 8px; border-radius: 4px;
  background: color-mix(in srgb, var(--cat-color) 15%, transparent);
  color: var(--cat-color); border: 1px solid color-mix(in srgb, var(--cat-color) 35%, transparent);
}
.news-cat i { font-size: 10px; }
.news-sev {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 8px; border-radius: 4px;
  background: rgba(255,255,255,.04); color: var(--fm-fg-dim); border: 1px solid rgba(255,255,255,.08);
}
.news-sev i { font-size: 10px; }
.news-sev.sev-low { color: #9aa6ff; }
.news-sev.sev-medium { color: #ffd54f; background: rgba(255,213,79,.10); border-color: rgba(255,213,79,.30); }
.news-sev.sev-high { color: #ff9a85; background: rgba(255,154,133,.10); border-color: rgba(255,154,133,.30); }
.news-sev.sev-critical { color: #ff5b5b; background: rgba(255,90,90,.15); border-color: rgba(255,90,90,.40); animation: newsPulse 2s ease-in-out infinite; }
@keyframes newsPulse { 0%, 100% { opacity: 1; } 50% { opacity: .65; } }
.news-time { color: var(--fm-fg-muted); display: inline-flex; align-items: center; gap: 4px; }
.news-time i { font-size: 10px; }
.news-card-title { margin: 0; font-size: 15px; font-weight: 800; color: #fff; }
.news-card-text { margin: 0; font-size: 13px; line-height: 1.5; color: var(--fm-fg-dim); }
.news-card-foot { display: flex; justify-content: space-between; align-items: center; padding-top: 6px; border-top: 1px dashed rgba(255,255,255,.06); }
.news-author { font-size: 11px; color: var(--fm-fg-muted); display: inline-flex; align-items: center; gap: 4px; }
.news-author i { color: var(--fm-accent); }
.news-action {
  padding: 4px 10px; border-radius: 4px; border: 1px solid var(--fm-accent);
  background: rgba(74,157,91,.10); color: #7dffb1; font-size: 11px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; gap: 4px;
}
.news-action:hover { background: var(--fm-accent); color: #04140a; }
.news-action i { font-size: 10px; }
.news-read-label { font-size: 11px; color: var(--fm-fg-muted); display: inline-flex; align-items: center; gap: 4px; font-style: italic; }
.news-read-label i { color: #7dffb1; }
.news-empty { padding: 30px; text-align: center; color: var(--fm-fg-muted); font-style: italic; font-size: 13px; }
.news-empty i { font-size: 24px; display: block; margin-bottom: 8px; }

@media (max-width: 768px) {
  .news-hero { flex-direction: column; align-items: flex-start; }
  .news-hero-icon { width: 48px; height: 48px; }
  .news-card { grid-template-columns: 4px 40px 1fr; gap: 10px; padding: 12px; }
  .news-card-icon { width: 40px; height: 40px; font-size: 14px; }
  .news-card-meta { gap: 6px; }
  .news-card-foot { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* ===== FM-style Stats (lichess-style Elo) ===== */
.stats-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  display: flex; gap: 16px; align-items: center;
  padding: 18px 20px;
}
.stats-hero-icon {
  width: 56px; height: 56px; border-radius: 12px;
  background: color-mix(in srgb, var(--hero-color, var(--fm-accent)) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--hero-color, var(--fm-accent)) 35%, transparent);
  color: var(--hero-color, var(--fm-accent));
  display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;
}
.stats-hero-title { font-size: 22px; font-weight: 900; color: #fff; margin-bottom: 4px; }
.stats-hero-sub { font-size: 13px; color: var(--fm-fg-dim); }
.stats-hero-sub b { color: var(--fm-fg-strong); }

/* Sub-tabs */
.stats-subtabs {
  display: flex; gap: 6px; margin-bottom: 14px;
  background: rgba(0,0,0,.18); border: 1px solid #263340; border-radius: 6px;
  padding: 6px;
}
.stats-subtab {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 8px 12px; border-radius: 4px;
  background: transparent; border: none;
  color: var(--fm-fg-dim); font-size: 12px; font-weight: 700; cursor: pointer;
  transition: all .15s ease;
}
.stats-subtab:hover { background: rgba(255,255,255,.04); color: #fff; }
.stats-subtab.active {
  background: var(--sub-color, var(--fm-accent));
  color: #04140a; box-shadow: 0 0 0 2px color-mix(in srgb, var(--sub-color, var(--fm-accent)) 25%, transparent);
}
.stats-subtab i { font-size: 12px; }

/* Profile */
.stats-profile { display: grid; grid-template-columns: 280px 1fr; gap: 14px; padding: 14px; }
.stats-elo-card {
  background: linear-gradient(180deg, color-mix(in srgb, var(--elo-color) 8%, #1c2830) 0%, #192228 100%);
  border: 1px solid color-mix(in srgb, var(--elo-color) 35%, #263340);
  border-radius: 8px; padding: 18px;
  display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center;
}
.stats-elo-rating {
  font-size: 56px; font-weight: 900; color: var(--elo-color); line-height: 1;
  font-family: 'Menlo', 'Monaco', monospace;
}
.stats-elo-tier {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px; border-radius: 4px;
  background: color-mix(in srgb, var(--elo-color) 15%, transparent);
  color: var(--elo-color); font-size: 12px; font-weight: 800;
  border: 1px solid color-mix(in srgb, var(--elo-color) 35%, transparent);
  text-transform: uppercase; letter-spacing: .4px;
}
.stats-elo-meta { font-size: 10px; color: var(--fm-fg-muted); margin-top: 4px; }
.stats-elo-spark { width: 100%; height: 60px; margin-top: 8px; }

.stats-kpi-mini-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px;
  align-content: start;
}
.stats-kpi-mini {
  display: flex; gap: 8px; padding: 10px 12px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 6px;
  position: relative; overflow: hidden;
}
.stats-kpi-mini::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background: var(--fm-accent); background: linear-gradient(180deg, #4a9d5b 0%, #2d6b3d 100%); }
.stats-kpi-mini.home-kpi-gold::before { background: linear-gradient(180deg, #ffd54f 0%, #c08421 100%); }
.stats-kpi-mini.home-kpi-cyan::before { background: linear-gradient(180deg, #7ec8ff 0%, #4a89bf 100%); }
.stats-kpi-mini .home-kpi-icon { width: 32px; height: 32px; font-size: 13px; }
.stats-kpi-mini-label { font-size: 9px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; color: var(--fm-fg-muted); margin-bottom: 1px; }
.stats-kpi-mini-value { font-size: 18px; font-weight: 800; color: #fff; line-height: 1.1; }
.stats-kpi-mini-sub { font-size: 10px; color: var(--fm-fg-dim); margin-top: 1px; }

.stats-section-body { padding: 14px; }

/* Bar (wins/draws/losses) */
.stats-bar {
  display: flex; height: 28px; border-radius: 4px; overflow: hidden;
  background: rgba(255,255,255,.04); margin-bottom: 10px;
}
.stats-bar-seg {
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; color: #fff;
  min-width: 24px; padding: 0 4px;
  transition: width .25s ease;
}
.stats-bar-seg.is-win { background: #4a9d5b; }
.stats-bar-seg.is-draw { background: #ffd54f; color: #04140a; }
.stats-bar-seg.is-loss { background: #ff5b5b; }
.stats-bar-legend {
  display: flex; gap: 14px; font-size: 11px; color: var(--fm-fg-dim);
}
.stats-bar-legend .dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  margin-right: 5px; vertical-align: middle;
}
.stats-bar-legend .dot.is-win { background: #4a9d5b; }
.stats-bar-legend .dot.is-draw { background: #ffd54f; }
.stats-bar-legend .dot.is-loss { background: #ff5b5b; }

.stats-bar-mini { font-size: 12px; color: var(--fm-fg-dim); }
.stats-bar-mini b { color: #fff; font-weight: 700; }

/* History chart */
.stats-history-chart {
  display: flex; gap: 4px; align-items: stretch; min-height: 80px;
  padding: 12px 14px; overflow-x: auto;
}
.stats-history-bar {
  flex: 1; min-width: 24px; max-width: 40px;
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  gap: 4px;
  padding: 8px 4px;
  border-radius: 4px 4px 0 0;
  cursor: help;
  position: relative;
}
.stats-history-bar.is-win { background: linear-gradient(180deg, rgba(74,157,91,.15) 0%, #4a9d5b 100%); border-bottom: 3px solid #4a9d5b; }
.stats-history-bar.is-draw { background: linear-gradient(180deg, rgba(255,213,79,.15) 0%, #ffd54f 100%); border-bottom: 3px solid #ffd54f; }
.stats-history-bar.is-loss { background: linear-gradient(180deg, rgba(255,90,90,.15) 0%, #ff5b5b 100%); border-bottom: 3px solid #ff5b5b; }
.stats-history-result { font-size: 14px; font-weight: 900; color: #fff; }
.stats-history-bar.is-draw .stats-history-result { color: #04140a; }
.stats-history-delta { font-size: 9px; color: rgba(255,255,255,.7); font-weight: 700; }
.stats-history-bar.is-draw .stats-history-delta { color: rgba(4,20,10,.7); }

.stats-empty { padding: 30px; text-align: center; color: var(--fm-fg-muted); font-style: italic; font-size: 13px; }

/* Help section */
.stats-help { font-size: 13px; line-height: 1.6; color: var(--fm-fg); }
.stats-help p { margin: 6px 0; }
.stats-help ul { margin: 8px 0; padding-left: 22px; }
.stats-help li { margin: 4px 0; }
.stats-help code { background: rgba(255,255,255,.06); padding: 2px 6px; border-radius: 3px; font-size: 12px; color: #7ec8ff; font-family: 'Menlo', 'Monaco', monospace; }
.stats-formula {
  background: rgba(0,0,0,.25); padding: 12px 14px; border-radius: 6px;
  font-family: 'Menlo', 'Monaco', monospace; font-size: 12px; color: #ffd54f;
  margin: 8px 0; overflow-x: auto;
  border-left: 3px solid #ffd54f;
}

/* Leaderboards */
.stats-table-wrap { overflow-x: auto; }
.stats-leaderboard {
  width: 100%; border-collapse: separate; border-spacing: 0;
  font-size: 12px;
}
.stats-leaderboard thead th {
  background: linear-gradient(180deg, #222e38 0%, #1e2a32 100%);
  padding: 8px 10px; text-align: left;
  font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-fg-muted);
  border-bottom: 1px solid #263340; white-space: nowrap;
}
.stats-leaderboard tbody tr { transition: background-color .12s; }
.stats-leaderboard tbody tr:hover { background: rgba(255,255,255,.04); }
.stats-leaderboard tbody tr.is-me { background: rgba(74,157,91,.10); }
.stats-leaderboard tbody tr.is-mine { background: rgba(255,213,79,.06); }
.stats-leaderboard tbody td {
  padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,.04);
  vertical-align: middle; white-space: nowrap;
}
.stats-leaderboard tbody tr:last-child td { border-bottom: none; }
.stats-rank-cell { width: 40px; font-size: 13px; font-weight: 900; color: var(--fm-fg-muted); text-align: center; }
.stats-leaderboard tbody tr:nth-child(1) .stats-rank-cell { color: #ffd54f; }
.stats-leaderboard tbody tr:nth-child(2) .stats-rank-cell { color: #c084fc; }
.stats-leaderboard tbody tr:nth-child(3) .stats-rank-cell { color: #7ec8ff; }
.stats-name-cell { min-width: 200px; }
.stats-name-row { display: flex; gap: 8px; align-items: center; }
.stats-name-flag {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 22px; border-radius: 3px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08);
  font-size: 9px; font-weight: 800; color: var(--fm-fg-dim); letter-spacing: .3px;
}
.stats-name-avatar { width: 32px; height: 32px; border-radius: 4px; overflow: hidden; background: #0e161b; }
.stats-name-avatar svg { width: 100%; height: 100%; display: block; }
.stats-name-main { font-size: 12px; font-weight: 700; color: #fff; }
.stats-name-main em { font-style: normal; font-size: 9px; font-weight: 800; padding: 1px 6px; border-radius: 9px; background: var(--fm-accent); color: #04140a; margin-left: 6px; text-transform: uppercase; }
.stats-name-sub { font-size: 10px; color: var(--fm-fg-muted); margin-top: 2px; }
.stats-tier-cell { font-size: 11px; font-weight: 700; }
.stats-tier-cell i { margin-right: 4px; }
.stats-elo-cell { font-size: 16px; font-weight: 900; font-family: 'Menlo', 'Monaco', monospace; }
.stats-trend-cell { font-size: 11px; font-weight: 800; }
.stats-trend-cell.is-up { color: #7dffb1; }
.stats-trend-cell.is-down { color: #ff9a85; }
.stats-trend-cell.is-flat { color: var(--fm-fg-muted); }
.stats-trend-cell i { margin-right: 3px; }
.stats-record-cell { font-family: 'Menlo', 'Monaco', monospace; font-size: 11px; color: var(--fm-fg-dim); }
.stats-rate-cell { font-size: 11px; color: var(--fm-fg); font-weight: 700; }
.stats-matches-cell { font-size: 11px; color: var(--fm-fg-muted); }
.stats-rating-cell { font-family: 'Menlo', 'Monaco', monospace; }
.stats-rating-cell b { font-size: 16px; font-weight: 900; color: var(--fm-accent); }
.stats-goals-cell, .stats-assists-cell { font-size: 14px; font-weight: 800; color: #fff; }

/* Player category buttons */
.stats-pcats {
  display: flex; gap: 6px; padding: 12px 14px;
  background: rgba(0,0,0,.12); border-bottom: 1px solid rgba(255,255,255,.04);
}
.stats-pcat {
  padding: 6px 12px; border-radius: 4px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 11px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
}
.stats-pcat:hover { background: rgba(255,255,255,.08); color: #fff; }
.stats-pcat.active {
  background: var(--pcat-color, var(--fm-accent));
  color: #04140a; border-color: var(--pcat-color, var(--fm-accent));
}

/* My position card */
.stats-my-position {
  display: flex; align-items: center; gap: 14px;
  padding: 14px;
  background: linear-gradient(180deg, rgba(255,213,79,.10) 0%, rgba(255,213,79,.04) 100%);
  border: 1px solid rgba(255,213,79,.35); border-radius: 6px;
  margin-bottom: 10px;
}
.stats-my-rank { font-size: 36px; font-weight: 900; color: #ffd54f; line-height: 1; font-family: 'Menlo', 'Monaco', monospace; }
.stats-my-info { display: flex; flex-direction: column; gap: 2px; }
.stats-my-name { font-size: 14px; font-weight: 700; color: #fff; }
.stats-my-elo { font-size: 12px; font-weight: 800; }

@media (max-width: 1024px) {
  .stats-profile { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .stats-subtabs { flex-wrap: wrap; }
  .stats-subtab { flex: 1 0 calc(50% - 3px); }
  .stats-pcats { flex-wrap: wrap; }
  .stats-kpi-mini-grid { grid-template-columns: 1fr 1fr; }
  .stats-history-bar { min-width: 18px; }
}

/* ===== FM-style Forum ===== */
.forum-hero {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid #263340;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  display: flex; gap: 16px; align-items: center;
  padding: 18px 20px;
}
.forum-hero-icon {
  width: 56px; height: 56px; border-radius: 12px;
  background: rgba(126,200,255,.15); border: 1px solid rgba(126,200,255,.35);
  color: #7ec8ff;
  display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0;
}
.forum-hero-info { flex: 1; min-width: 0; }
.forum-hero-title { font-size: 22px; font-weight: 900; color: #fff; margin-bottom: 4px; }
.forum-hero-sub { font-size: 13px; color: var(--fm-fg-dim); }

.forum-back-btn {
  padding: 8px 14px; border-radius: 6px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 12px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 10px;
}
.forum-back-btn:hover { background: rgba(255,255,255,.08); color: #fff; }

/* Layout */
.forum-layout {
  display: grid; grid-template-columns: 240px 1fr; gap: 12px;
}

/* Sidebar */
.forum-sidebar {
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  overflow: hidden; align-self: start;
  position: sticky; top: 12px;
}
.forum-sidebar-head {
  padding: 10px 12px; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
  color: var(--fm-fg-muted); border-bottom: 1px solid #263340;
  display: flex; align-items: center; gap: 6px;
}
.forum-categories { display: flex; flex-direction: column; }
.forum-cat-item {
  width: 100%;
  display: grid; grid-template-columns: 18px 1fr auto; gap: 8px; align-items: center;
  padding: 10px 12px;
  background: transparent; border: none; border-bottom: 1px solid rgba(255,255,255,.04);
  color: var(--fm-fg-dim); font-size: 12px; font-weight: 600; cursor: pointer; text-align: left;
  position: relative;
}
.forum-cat-item i { color: var(--cat-color, var(--fm-fg-muted)); }
.forum-cat-item span { font-size: 12px; }
.forum-cat-item em { font-style: normal; font-size: 10px; font-weight: 800; padding: 1px 7px; border-radius: 9px; background: rgba(255,255,255,.04); min-width: 22px; text-align: center; }
.forum-cat-item:hover { background: rgba(255,255,255,.04); color: #fff; }
.forum-cat-item.active {
  background: color-mix(in srgb, var(--cat-color, var(--fm-accent)) 15%, transparent);
  color: #fff;
  box-shadow: inset 3px 0 0 var(--cat-color, var(--fm-accent));
}
.forum-cat-item.active em { background: var(--cat-color, var(--fm-accent)); color: #04140a; }

/* Main */
.forum-main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.forum-main-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0 4px;
}
.forum-main-title { margin: 0; font-size: 16px; font-weight: 800; color: #fff; }
.forum-main-count { font-size: 11px; color: var(--fm-fg-muted); font-weight: 700; }

.forum-sortbar {
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
  padding: 10px 12px; background: rgba(0,0,0,.12); border: 1px solid #263340; border-radius: 6px;
}
.forum-sort-btn {
  padding: 6px 12px; border-radius: 4px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 11px; font-weight: 700; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
}
.forum-sort-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.forum-sort-btn.active { background: var(--fm-accent); color: #04140a; border-color: var(--fm-accent); }
.forum-sort-btn i { font-size: 10px; }
.forum-new-btn {
  margin-left: auto;
  padding: 8px 14px; border-radius: 4px;
  background: var(--fm-accent); color: #04140a; border: none;
  font-size: 12px; font-weight: 800; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
}
.forum-new-btn:hover { background: #5fb069; }

/* Topics list */
.forum-topics { display: flex; flex-direction: column; gap: 6px; }
.forum-topic {
  display: grid; grid-template-columns: 44px 1fr 30px; gap: 12px; align-items: center;
  padding: 12px 14px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 6px;
  cursor: pointer;
  position: relative;
  border-left: 3px solid var(--cat-color, #263340);
  transition: all .15s ease;
}
.forum-topic:hover { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.18); }
.forum-topic.is-pinned { background: linear-gradient(180deg, rgba(255,213,79,.08) 0%, #192228 100%); border-left-color: #ffd54f; }
.forum-topic-cat {
  width: 44px; height: 44px; border-radius: 6px;
  background: color-mix(in srgb, var(--cat-color) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--cat-color) 35%, transparent);
  color: var(--cat-color);
  display: flex; align-items: center; justify-content: center; font-size: 18px;
  flex-shrink: 0;
}
.forum-topic-body { min-width: 0; }
.forum-topic-head {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 4px;
}
.forum-topic-prefix {
  font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
  padding: 2px 8px; border-radius: 3px;
  background: rgba(255,255,255,.06); color: var(--fm-fg-muted);
}
.forum-topic-cat-tag {
  font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 3px;
  background: color-mix(in srgb, var(--cat-color) 15%, transparent);
  color: var(--cat-color);
  display: inline-flex; align-items: center; gap: 4px;
}
.forum-topic-pinned {
  font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 3px;
  background: rgba(255,213,79,.10); color: #ffd54f; border: 1px solid rgba(255,213,79,.30);
  display: inline-flex; align-items: center; gap: 4px;
}
.forum-topic-title { margin: 4px 0 6px; font-size: 14px; font-weight: 700; color: #fff; line-height: 1.35; }
.forum-topic-title i { color: #ffd54f; margin-right: 4px; font-size: 12px; }
.forum-topic-meta { display: flex; gap: 12px; flex-wrap: wrap; font-size: 10px; color: var(--fm-fg-muted); }
.forum-topic-meta span { display: inline-flex; align-items: center; gap: 4px; }
.forum-topic-meta i { color: var(--cat-color); font-size: 10px; }
.forum-topic-meta em { font-style: normal; color: #ffd54f; font-weight: 700; }
.forum-topic-arrow { color: var(--fm-fg-muted); }
.forum-empty { padding: 40px; text-align: center; color: var(--fm-fg-muted); font-style: italic; font-size: 13px; }
.forum-empty i { font-size: 24px; display: block; margin-bottom: 8px; }

/* Topic thread */
.forum-thread { display: flex; flex-direction: column; gap: 10px; padding: 14px; }
.forum-post {
  display: grid; grid-template-columns: 180px 1fr; gap: 14px;
  padding: 14px 16px;
  background: linear-gradient(180deg, #1c2830 0%, #192228 100%);
  border: 1px solid #263340; border-radius: 8px;
  position: relative;
}
.forum-post.is-main { border-left: 3px solid var(--cat-color, #4a9d5b); }
.forum-post.is-reply { margin-left: 24px; background: rgba(0,0,0,.15); }
.forum-post-side {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 10px; background: rgba(0,0,0,.18); border-radius: 6px;
  border: 1px solid #263340;
  height: fit-content;
}
.forum-post-avatar {
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--cat-color, #4a9d5b) 0%, color-mix(in srgb, var(--cat-color, #4a9d5b) 50%, #0e161b) 100%);
  color: #04140a; display: flex; align-items: center; justify-content: center; font-size: 22px;
}
.forum-post.is-reply .forum-post-avatar { background: linear-gradient(135deg, #2a3a4a 0%, #1c2830 100%); color: var(--fm-accent); }
.forum-post-name { font-size: 12px; font-weight: 700; color: #fff; text-align: center; max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.forum-post-elo { font-size: 10px; color: var(--fm-fg-dim); }
.forum-post-elo b { color: #ffd54f; font-weight: 800; }
.forum-post-tier { font-size: 9px; font-weight: 800; padding: 2px 6px; border-radius: 3px; background: rgba(255,255,255,.06); text-transform: uppercase; letter-spacing: .3px; }
.forum-post-body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.forum-post-head { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; font-size: 10px; }
.forum-post-prefix { font-size: 10px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; padding: 2px 8px; border-radius: 3px; background: rgba(255,255,255,.06); color: var(--fm-fg-muted); }
.forum-post-cat-tag { font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 3px; background: color-mix(in srgb, var(--cat-color) 15%, transparent); color: var(--cat-color); display: inline-flex; align-items: center; gap: 4px; }
.forum-post-time { color: var(--fm-fg-muted); display: inline-flex; align-items: center; gap: 4px; }
.forum-post-time i { font-size: 10px; }
.forum-post-title { margin: 0; font-size: 18px; font-weight: 800; color: #fff; line-height: 1.35; }
.forum-post-text { margin: 0; font-size: 13px; line-height: 1.6; color: var(--fm-fg); white-space: pre-wrap; }
.forum-post-foot { display: flex; gap: 8px; padding-top: 10px; border-top: 1px dashed rgba(255,255,255,.06); }
.forum-like-btn, .forum-quote-btn, .forum-reply-btn {
  padding: 6px 10px; border-radius: 4px;
  background: rgba(255,255,255,.04); border: 1px solid #263340;
  color: var(--fm-fg-dim); font-size: 11px; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: 5px;
}
.forum-like-btn:hover, .forum-quote-btn:hover, .forum-reply-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.forum-like-btn.is-liked { color: #ff5b5b; border-color: rgba(255,90,90,.30); background: rgba(255,90,90,.08); }

/* Reply form */
.forum-reply-form {
  padding: 14px; background: rgba(0,0,0,.18); border-top: 1px solid #263340;
  display: flex; flex-direction: column; gap: 10px;
}
.forum-reply-form-head {
  display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; color: var(--fm-accent);
}
.forum-reply-textarea {
  min-height: 80px; resize: vertical;
  background: rgba(0,0,0,.18); border: 1px solid #263340; color: #fff;
  font-family: inherit; font-size: 13px;
}
.forum-reply-form-actions { display: flex; justify-content: flex-end; }

@media (max-width: 1024px) {
  .forum-layout { grid-template-columns: 1fr; }
  .forum-sidebar { position: static; }
}
@media (max-width: 768px) {
  .forum-post { grid-template-columns: 1fr; }
  .forum-post-side { flex-direction: row; gap: 10px; }
  .forum-post.is-reply { margin-left: 0; }
}
