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

    body {
      font-family: 'Inter', sans-serif;
      background: #0d0f12;
      color: #eceef1;
      min-height: 100vh;
    }

    /* ── Top bar ── */
    .topbar { background: #0a0c0f; border-bottom: 1px solid #1e2128; }
    .topbar-inner {
      max-width: 1280px; margin: 0 auto; padding: 1.25rem 1.5rem 0.75rem;
      display: flex; flex-direction: column; align-items: center; gap: 0.25rem;
    }
    .header-logo {
      font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.8rem;
      color: #c8f04a; letter-spacing: -0.5px; white-space: nowrap;
    }
    .header-logo span { color: #eceef1; }
    .header-sub { font-family: 'DM Mono', monospace; font-size: 0.8rem; color: #6b7280; }

    /* ── Jogadores: stats controls (Opta-style) ── */
    .jog-controls {
      display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center;
      margin: 1rem 0 1.25rem; padding: 0.85rem 1rem;
      background: #13161b; border: 1px solid #1e2128; border-radius: 8px;
    }
    .jog-search {
      flex: 1 1 240px; min-width: 200px; position: relative;
    }
    .jog-search input {
      width: 100%; background: #0b0d11; border: 1px solid #2a3142;
      color: #eceef1; font-size: 0.82rem; padding: 0.55rem 0.85rem 0.55rem 2rem;
      border-radius: 6px; font-family: inherit; outline: none;
    }
    .jog-search input:focus { border-color: #c8f04a; }
    .jog-search::before {
      content: '🔍'; position: absolute; left: 0.65rem; top: 50%;
      transform: translateY(-50%); font-size: 0.75rem; opacity: 0.5;
      pointer-events: none;
    }
    .jog-select {
      background: #0b0d11; border: 1px solid #2a3142; color: #eceef1;
      font-size: 0.78rem; padding: 0.55rem 2rem 0.55rem 0.85rem;
      border-radius: 6px; font-family: inherit; cursor: pointer;
      appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: right 0.75rem center;
      min-width: 160px;
    }
    .jog-pills { display: flex; gap: 0.4rem; }
    .jog-pill {
      background: transparent; border: 1px solid #2a3142; color: #9ca3af;
      font-size: 0.72rem; padding: 0.55rem 1rem; border-radius: 999px;
      cursor: pointer; font-family: 'DM Mono', monospace; font-weight: 600;
      letter-spacing: 0.06em; text-transform: uppercase;
      transition: all 0.15s;
    }
    .jog-pill:hover { color: #eceef1; border-color: #4b5563; }
    .jog-pill.active {
      background: rgba(200,240,74,0.15); color: #c8f04a;
      border-color: rgba(200,240,74,0.4);
    }
    .jog-toggle {
      display: inline-flex; align-items: center; gap: 0.5rem;
      cursor: pointer; user-select: none; margin-left: auto;
    }
    .jog-toggle-track {
      width: 36px; height: 18px; background: #2a3142; border-radius: 999px;
      position: relative; transition: background 0.2s;
    }
    .jog-toggle-track::after {
      content: ''; position: absolute; top: 2px; left: 2px;
      width: 14px; height: 14px; background: #6b7280; border-radius: 50%;
      transition: transform 0.2s, background 0.2s;
    }
    .jog-toggle.active .jog-toggle-track { background: rgba(200,240,74,0.3); }
    .jog-toggle.active .jog-toggle-track::after { transform: translateX(18px); background: #c8f04a; }
    .jog-toggle-label {
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      color: #9ca3af; letter-spacing: 0.06em; text-transform: uppercase;
    }
    .jog-toggle.active .jog-toggle-label { color: #c8f04a; }

    /* Player table specific */
    #jog-table { font-variant-numeric: tabular-nums; }
    #jog-table thead th { background: #0d0f12; }
    #jog-table tbody td { padding: 12px 8px; border-bottom: 1px solid #161a21; }
    #jog-table tbody tr:hover td { background: #181c24; }
    #jog-table .player-cell {
      display: flex; align-items: center; gap: 0.75rem;
      text-align: left; padding-left: 14px;
    }
    /* Teams table: center everything (name + numbers) */
    #jog-team-table { font-variant-numeric: tabular-nums; }
    #jog-team-table thead th { background: #0d0f12; text-align: center !important; padding-right: 8px !important; }
    #jog-team-table thead th.col-team { text-align: center !important; padding-left: 0; }
    #jog-team-table tbody td { padding: 14px 8px; border-bottom: 1px solid #161a21; text-align: center; }
    #jog-team-table tbody tr:hover td { background: #181c24; }
    #jog-team-table .player-cell {
      display: flex; align-items: center; gap: 0.75rem;
      justify-content: center; padding-left: 0;
    }
    #jog-team-table td.num { text-align: center; padding-right: 8px; color: #d1d5db; }
    #jog-team-table .rank { color: #6b7280; font-family: 'DM Mono', monospace; font-size: 0.72rem; text-align: center; }
    .player-team-logo {
      width: 28px; height: 28px; object-fit: contain; flex-shrink: 0;
    }
    .player-team-logo-fallback {
      width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
      background: #1a1f29; border: 1px solid #2a3142;
    }

    /* ── Filtrar Jogadores (range slider) ── */
    .jog-filter {
      background: #13161b; border: 1px solid #1e2128; border-radius: 8px;
      padding: 1rem 1.25rem; margin-bottom: 1rem;
    }
    .jog-filter-title {
      display: flex; align-items: center; gap: 0.5rem;
      font-family: 'Syne', sans-serif; font-weight: 700; font-size: 0.85rem;
      color: #eceef1; cursor: pointer; user-select: none; margin-bottom: 0;
    }
    .jog-filter-title::before {
      content: '▸'; font-size: 0.9rem; color: #6b7280; transition: transform 0.2s;
    }
    .jog-filter.open .jog-filter-title { margin-bottom: 0.85rem; }
    .jog-filter.open .jog-filter-title::before { transform: rotate(90deg); }
    .jog-filter-row {
      display: none; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start;
    }
    .jog-filter.open .jog-filter-row { display: flex; }
    .jog-filter-block { flex: 0 0 auto; }
    .jog-filter-mins { flex: 1 1 280px; min-width: 220px; }
    .jog-pos-pills { display: flex; gap: 0.35rem; flex-wrap: wrap; }
    .jog-pos-pill {
      background: transparent; border: 1px solid #2a3142; color: #9ca3af;
      font-size: 0.68rem; padding: 0.4rem 0.85rem; border-radius: 999px;
      cursor: pointer; font-family: 'DM Mono', monospace; font-weight: 600;
      letter-spacing: 0.06em; text-transform: uppercase; transition: all 0.15s;
    }
    .jog-pos-pill:hover { color: #eceef1; border-color: #4b5563; }
    .jog-pos-pill.active {
      background: rgba(200,240,74,0.15); color: #c8f04a;
      border-color: rgba(200,240,74,0.4);
    }
    .jog-range-label {
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      color: #9ca3af; letter-spacing: 0.06em; text-transform: uppercase;
      margin-bottom: 0.5rem;
    }
    .jog-range-label strong { color: #c8f04a; font-weight: 700; }
    .jog-range-wrap {
      position: relative; height: 28px; padding: 12px 0;
    }
    .jog-range-track {
      position: absolute; left: 0; right: 0; top: 50%;
      height: 3px; background: #2a3142; border-radius: 999px;
      transform: translateY(-50%);
    }
    .jog-range-fill {
      position: absolute; top: 50%; height: 3px;
      background: #c8f04a; border-radius: 999px;
      transform: translateY(-50%);
    }
    .jog-range-wrap input[type=range] {
      position: absolute; left: 0; right: 0; top: 50%;
      width: 100%; margin: 0; -webkit-appearance: none; appearance: none;
      background: transparent; pointer-events: none;
      transform: translateY(-50%); height: 0;
    }
    .jog-range-wrap input[type=range]::-webkit-slider-thumb {
      -webkit-appearance: none; appearance: none;
      width: 16px; height: 16px; border-radius: 50%;
      background: #c8f04a; border: 2px solid #0b0d11; cursor: pointer;
      pointer-events: auto; box-shadow: 0 1px 4px rgba(0,0,0,0.5);
    }
    .jog-range-wrap input[type=range]::-moz-range-thumb {
      width: 16px; height: 16px; border-radius: 50%;
      background: #c8f04a; border: 2px solid #0b0d11; cursor: pointer;
      pointer-events: auto; box-shadow: 0 1px 4px rgba(0,0,0,0.5);
    }

    /* ── Pagination ── */
    .jog-pagination {
      display: flex; align-items: center; justify-content: space-between;
      margin-top: 0.85rem; gap: 0.75rem; flex-wrap: wrap;
    }
    .jog-pag-info {
      font-family: 'DM Mono', monospace; font-size: 0.7rem;
      color: #6b7280; letter-spacing: 0.04em;
    }
    .jog-pag-btns { display: flex; gap: 0.35rem; }
    .jog-pag-btn {
      background: #13161b; border: 1px solid #2a3142; color: #9ca3af;
      font-family: 'DM Mono', monospace; font-size: 0.72rem;
      padding: 0.4rem 0.75rem; border-radius: 6px; cursor: pointer;
      min-width: 32px; transition: all 0.15s;
    }
    .jog-pag-btn:hover:not(:disabled) { color: #eceef1; border-color: #4b5563; }
    .jog-pag-btn.active {
      background: rgba(200,240,74,0.15); color: #c8f04a;
      border-color: rgba(200,240,74,0.4);
    }
    .jog-pag-btn:disabled { opacity: 0.35; cursor: not-allowed; }
    #jog-table .player-name {
      font-weight: 600; color: #eceef1; font-size: 0.83rem;
    }
    #jog-table .team-cell { text-align: left; color: #9ca3af; font-size: 0.78rem; }
    #jog-table td.num { text-align: right; padding-right: 18px; color: #d1d5db; }
    #jog-table td.num.pos { color: #2ECC71; }
    #jog-table td.num.neg { color: #E74C3C; }
    #jog-table .rank { color: #6b7280; font-family: 'DM Mono', monospace; font-size: 0.72rem; padding-left: 14px; }

    /* ── Percentile tooltip (hover on stat cells) ── */
    .pctl-tooltip {
      position: fixed; z-index: 9999;
      background: #1a1f29; border: 1px solid #2a3142; border-radius: 8px;
      padding: 0.75rem 1rem; pointer-events: none;
      min-width: 240px; max-width: 500px;
      box-shadow: 0 8px 24px rgba(0,0,0,0.6);
      font-family: 'DM Mono', monospace; font-size: 0.72rem;
      opacity: 0; transition: opacity 0.12s;
    }
    .pctl-tooltip.visible { opacity: 1; }
    .pctl-header {
      display: flex; justify-content: space-between; align-items: baseline;
      margin-bottom: 0.65rem;
    }
    .pctl-stat-name { color: #6b7280; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.62rem; }
    .pctl-stat-val { color: #eceef1; font-weight: 700; font-size: 0.9rem; }
    .pctl-row { margin-bottom: 0.55rem; }
    .pctl-row:last-child { margin-bottom: 0; }
    .pctl-bar-bg {
      width: 100%; height: 6px; background: #2a3142; border-radius: 999px;
      overflow: hidden; margin-bottom: 0.3rem;
    }
    .pctl-bar-fill { height: 100%; border-radius: 999px; }
    .pctl-meta {
      display: flex; justify-content: space-between; align-items: baseline;
    }
    .pctl-top { font-weight: 700; font-size: 0.75rem; }
    .pctl-vs { color: #6b7280; font-size: 0.6rem; letter-spacing: 0.04em; }
    .pctl-layout {
      display: flex; gap: 0.85rem; align-items: flex-start;
    }
    .pctl-bars { flex: 1; min-width: 0; }
    .pctl-nearby {
      flex: 0 0 auto; min-width: 185px;
      padding-left: 0.75rem; border-left: 1px solid #2a3142;
    }
    .pctl-nearby-title {
      color: #6b7280; font-size: 0.56rem; text-transform: uppercase;
      letter-spacing: 0.06em; margin-bottom: 0.35rem;
    }
    .pctl-nearby-row {
      display: flex; justify-content: space-between; align-items: center;
      padding: 2px 0; font-size: 0.64rem;
    }
    .pctl-nearby-name {
      color: #9ca3af; white-space: nowrap; overflow: hidden;
      text-overflow: ellipsis; max-width: 150px;
      display: flex; align-items: center; gap: 4px;
    }
    .pctl-nearby-name img {
      width: 14px; height: 14px; object-fit: contain; flex-shrink: 0;
    }
    .pctl-nearby-val { color: #d1d5db; font-weight: 600; white-space: nowrap; margin-left: 6px; }
    .pctl-nearby-row.current .pctl-nearby-name { color: #c8f04a; font-weight: 700; }
    .pctl-nearby-row.current .pctl-nearby-val { color: #c8f04a; }

    /* ── Deep Dive ── */
    .dd-tabs {
      display: flex; gap: 0; margin-bottom: 1.25rem; border-bottom: 2px solid #1e2128;
    }
    .dd-tab {
      background: none; border: none; color: #6b7280; font-family: 'Syne', sans-serif;
      font-weight: 600; font-size: 0.82rem; padding: 0.6rem 1.1rem; cursor: pointer;
      border-bottom: 2px solid transparent; margin-bottom: -2px; transition: color 0.15s, border-color 0.15s;
    }
    .dd-tab:hover { color: #d1d5db; }
    .dd-tab.active { color: #c8f04a; border-bottom-color: #c8f04a; }

    .dd-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.25rem; }
    .dd-card {
      background: #13161b; border: 1px solid #1e2128; border-radius: 8px; padding: 1rem 1.25rem;
    }
    .dd-card-full { grid-column: 1 / -1; }
    .dd-card-title {
      font-family: 'Syne', sans-serif; font-weight: 700; font-size: 0.85rem; color: #eceef1;
      margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.5rem;
    }
    .dd-card-subtitle { font-family: 'DM Mono', monospace; font-size: 0.7rem; color: #6b7280; margin-bottom: 0.75rem; }

    /* Top-N ranking bars */
    .dd-rank-row {
      display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.45rem;
      font-family: 'DM Mono', monospace; font-size: 0.75rem;
    }
    .dd-rank-pos { color: #6b7280; width: 18px; text-align: right; flex-shrink: 0; }
    .dd-rank-logo { width: 18px; height: 18px; object-fit: contain; flex-shrink: 0; }
    .dd-rank-name { color: #eceef1; width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; }
    .dd-rank-bar-bg { flex: 1; height: 18px; background: #1a1d23; border-radius: 3px; overflow: hidden; position: relative; }
    .dd-rank-bar { height: 100%; border-radius: 3px; transition: width 0.3s; }
    .dd-rank-val { color: #d1d5db; font-weight: 600; width: 50px; text-align: right; flex-shrink: 0; }

    /* Stat leader cards */
    .dd-leaders-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0.75rem; }
    .dd-leader-card {
      background: #1a1d23; border: 1px solid #1e2128; border-radius: 6px; padding: 0.75rem;
      text-align: center; font-family: 'DM Mono', monospace;
    }
    .dd-leader-stat { font-size: 0.68rem; color: #6b7280; text-transform: uppercase; margin-bottom: 0.35rem; }
    .dd-leader-val { font-size: 1.4rem; font-weight: 700; color: #c8f04a; margin-bottom: 0.25rem; }
    .dd-leader-name { font-size: 0.78rem; color: #eceef1; font-weight: 600; margin-bottom: 0.15rem; }
    .dd-leader-team { font-size: 0.68rem; color: #6b7280; display: flex; align-items: center; justify-content: center; gap: 4px; }
    .dd-leader-team img { width: 14px; height: 14px; object-fit: contain; }
    .dd-leader-card { transition: border-color 0.15s, transform 0.1s; border: 2px solid transparent; }
    .dd-leader-card:hover { transform: translateY(-2px); border-color: #2a3142; }
    .dd-leader-active { border-width: 2px !important; }

    /* Scatter plot */
    .dd-scatter-wrap { position: relative; width: 100%; height: 400px; }

    @media (max-width: 768px) {
      /* Deep Dive layout */
      .dd-grid { grid-template-columns: 1fr; }
      .dd-leaders-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
      .dd-scatter-wrap { height: 280px; }
      .dd-rank-name { width: 100px; font-size: 0.7rem; }
      .dd-rank-val { width: 42px; font-size: 0.72rem; }
      .dd-rank-row { gap: 0.4rem; font-size: 0.7rem; }
      .dd-rank-logo { width: 16px; height: 16px; }
      .dd-card { padding: 0.75rem 0.85rem; }
      .dd-card-title { font-size: 0.8rem; }
      .dd-leader-card { padding: 0.6rem; }
      .dd-leader-val { font-size: 1.2rem; }
      .dd-leader-name { font-size: 0.72rem; }
      .dd-leader-team { font-size: 0.62rem; }
      .dd-leader-stat { font-size: 0.62rem; }

      /* Deep Dive tabs */
      .dd-tabs { gap: 0; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-bottom: 0.75rem; }
      .dd-tabs::-webkit-scrollbar { display: none; }
      .dd-tab { font-size: 0.72rem; padding: 0.4rem 0.65rem; white-space: nowrap; flex-shrink: 0; }

      /* Jogadores controls */
      .jog-controls { gap: 0.5rem; padding: 0.55rem 0.75rem; margin: 0.5rem 0 0.75rem; }
      .jog-select { min-width: 120px; font-size: 0.72rem; padding: 0.45rem 1.8rem 0.45rem 0.65rem; }
      .jog-search { min-width: 0; flex: 1 1 160px; }
      .jog-search input { font-size: 0.75rem; padding: 0.45rem 0.65rem 0.45rem 1.8rem; }
      .jog-toggle-label { font-size: 0.62rem; }

      /* Filter block responsive — start collapsed on mobile */
      .jog-filter { padding: 0.65rem 0.75rem; }
      .jog-filter-title { font-size: 0.75rem; margin-bottom: 0 !important; }
      .jog-filter-title::before { transform: none !important; }
      .jog-filter .jog-filter-row { display: none !important; }
      .jog-filter.mobile-open .jog-filter-title { margin-bottom: 0.65rem !important; }
      .jog-filter.mobile-open .jog-filter-title::before { transform: rotate(90deg) !important; }
      .jog-filter.mobile-open .jog-filter-row { display: flex !important; }
      .jog-filter-row { gap: 1rem; }
      .jog-range-label { font-size: 0.68rem; }
      .jog-pos-pills { gap: 0.25rem; }
      .jog-pos-pill { font-size: 0.62rem; padding: 0.35rem 0.6rem; }

      /* Player table */
      #jog-table tbody td { padding: 8px 4px; font-size: 0.7rem; }
      #jog-table thead th { font-size: 0.62rem; padding: 6px 4px; }
      #jog-table .player-cell { gap: 0.4rem; padding-left: 6px; }
      .player-team-logo { width: 22px; height: 22px; }
      .player-team-logo-fallback { width: 22px; height: 22px; }
      #jog-table .player-name { font-size: 0.72rem; }
      #jog-table .team-cell { font-size: 0.65rem; }
      #jog-table .rank { font-size: 0.62rem; padding-left: 6px; }
      .jog-pag-info { font-size: 0.68rem; }

      /* Inner tabs (Overview/Deep Dive) */
      #jog-inner-tabs { gap: 0; }
      #jog-inner-tabs .dd-tab { font-size: 0.75rem; padding: 0.5rem 0.85rem; }

      /* Team filter select in Deep Dive */
      #dd-team-filter { font-size: 0.72rem; padding: 0.35rem 0.5rem; }
    }

    /* ── Top-level mode nav (Time | Jogadores | Sobre o Projeto) ── */
    .topnav { background: #0d0f12; border-bottom: 1px solid #1e2128; }
    .topnav-inner {
      max-width: 1280px; margin: 0 auto; padding: 0 1.5rem;
      display: flex; justify-content: center; align-items: stretch; gap: 0;
      overflow-x: auto; scrollbar-width: none;
    }
    .topnav-inner::-webkit-scrollbar { display: none; }
    .topnav-link {
      font-family: 'Syne', sans-serif; font-size: 0.92rem; font-weight: 700;
      color: #9ca3af; text-decoration: none; padding: 0.85rem 1.75rem;
      border-bottom: 3px solid transparent; cursor: pointer; white-space: nowrap;
      transition: color 0.2s, border-color 0.2s; letter-spacing: 0.04em;
      text-transform: uppercase;
    }
    .topnav-link:hover { color: #eceef1; }
    .topnav-link.active { color: #c8f04a; border-bottom-color: #c8f04a; }

    /* Dropdown (Brasileirao Serie A agrupa Time + Estatisticas) */
    .topnav-dropdown { position: relative; }
    .topnav-dropdown .topnav-dropdown-trigger { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
    .topnav-caret { font-size: 0.7em; opacity: 0.7; transition: transform 0.15s; }
    .topnav-dropdown:hover .topnav-caret { transform: rotate(180deg); }
    .topnav-dropdown-menu {
      display: none; position: absolute; top: 100%; left: 0; min-width: 200px;
      background: #0a0c0f; border: 1px solid #1e2128; border-top: none;
      border-radius: 0 0 8px 8px; padding: 0.4rem 0; z-index: 100;
      box-shadow: 0 8px 16px rgba(0,0,0,0.4);
    }
    .topnav-dropdown:hover .topnav-dropdown-menu,
    .topnav-dropdown:focus-within .topnav-dropdown-menu { display: block; }
    .topnav-dropdown-link {
      display: block; font-family: 'Syne', sans-serif; font-size: 0.82rem;
      font-weight: 600; color: #9ca3af; text-decoration: none;
      padding: 0.65rem 1.25rem; cursor: pointer;
      letter-spacing: 0.04em; text-transform: uppercase;
      transition: background 0.15s, color 0.15s;
    }
    .topnav-dropdown-link:hover { background: #13161b; color: #eceef1; }
    .topnav-dropdown-link.active { color: #c8f04a; background: #13161b; }
    body.mode-time .topnav-dropdown-trigger,
    body.mode-estatisticas .topnav-dropdown-trigger {
      color: #c8f04a; border-bottom-color: #c8f04a;
    }

    /* Mode visibility — top-level nav drives which area is shown */
    body:not(.mode-time) .navbar { display: none; }
    body:not(.mode-time) .sub-navbar[data-for="evolucao-elo"],
    body:not(.mode-time) .sub-navbar[data-for="previsao-final"],
    body:not(.mode-time) .sub-navbar[data-for="financas"],
    body:not(.mode-time) .sub-navbar[data-for="publico-renda"] { display: none !important; }
    body.mode-time .sub-navbar[data-for="estatisticas"],
    body.mode-time .sub-navbar[data-for="sobre"] { display: none !important; }
    /* Estatisticas sub-nav stays visible in any of its sub-sections (incl. arbitros) */
    body.mode-estatisticas .sub-navbar[data-for="estatisticas"] { display: block !important; }
    /* Arbitros internal sub-nav (Overview/Jogos) only shows when arbitros is active */
    body.mode-estatisticas .sub-navbar[data-for="arbitros"] { display: none; }
    body.mode-estatisticas .sub-navbar[data-for="arbitros"].visible { display: block; }

    /* ── Nav bar ── */
    .navbar { background: #13161b; border-bottom: 1px solid #1e2128; position: sticky; top: 0; z-index: 100; }
    .navbar-inner {
      max-width: 1280px; margin: 0 auto; padding: 0 1.5rem;
      display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none;
    }
    .navbar-inner::-webkit-scrollbar { display: none; }
    .nav-link {
      font-size: 0.78rem; font-weight: 500; color: #9ca3af; text-decoration: none;
      padding: 0.75rem 1rem; white-space: nowrap; border-bottom: 2px solid transparent;
      transition: color 0.2s, border-color 0.2s; cursor: pointer;
    }
    .nav-link:hover { color: #eceef1; border-bottom-color: #4b5563; }
    .nav-link.active { color: #c8f04a; border-bottom-color: #c8f04a; }
    /* ── Sub-nav bar ── */
    .sub-navbar { display: none; background: #0d0f12; border-bottom: 1px solid #1e2128; }
    .sub-navbar.visible { display: block; }
    .sub-navbar-inner {
      max-width: 1280px; margin: 0 auto; padding: 0 1.5rem;
      display: flex; align-items: stretch; gap: 0;
    }
    .sub-nav-link {
      font-size: 0.72rem; font-weight: 500; color: #6b7280; text-decoration: none;
      padding: 0.55rem 1rem; white-space: nowrap; border-bottom: 2px solid transparent;
      transition: color 0.15s, border-color 0.15s; cursor: pointer;
    }
    .sub-nav-link:hover { color: #d1d5db; }
    .sub-nav-link.active { color: #c8f04a; border-bottom-color: #c8f04a; }

    /* ── Sections ── */
    .section { display: none; }
    .section.active { display: block; }
    .container { max-width: 1280px; margin: 0 auto; padding: 1rem 1.5rem 2rem; }

    /* ── Publico e Renda KPI grid ── */
    .pr-kpi-grid {
      display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
      gap: 0.75rem; margin-top: 0.75rem;
    }
    .pr-kpi {
      background: #13161b; border: 1px solid #1e2128; border-radius: 8px;
      padding: 1rem 1.25rem; text-align: center;
    }
    .pr-kpi-value {
      font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1.4rem;
      color: #c8f04a; margin-bottom: 0.25rem;
    }
    .pr-kpi-label {
      font-family: 'DM Mono', monospace; font-size: 0.7rem; color: #6b7280;
      text-transform: uppercase; letter-spacing: 0.06em;
    }

    /* ── Generic card ── */
    .card {
      background: #13161b; border: 1px solid #1e2128; border-radius: 8px;
      padding: 1.25rem; margin-bottom: 1rem;
    }
    .card-title {
      font-family: 'Syne', sans-serif; font-weight: 700; font-size: 1rem;
      color: #eceef1; margin-bottom: 0.75rem;
    }
    .card-subtitle {
      font-family: 'DM Mono', monospace; font-size: 0.72rem; color: #6b7280;
      margin-bottom: 1rem;
    }

    /* ── Table wrapper ── */
    .table-wrap { overflow-x: auto; background: #13161b; border-radius: 8px; border: 1px solid #1e2128; }
    table { width: 100%; border-collapse: collapse; font-size: 0.82rem; white-space: nowrap; }
    thead th {
      padding: 10px 8px; font-family: 'DM Mono', monospace; font-size: 0.7rem;
      font-weight: 500; text-transform: uppercase; letter-spacing: 0.06em; color: #6b7280;
      text-align: center; border-bottom: 1px solid #1e2128; background: #13161b;
    }
    thead th.col-team { text-align: left; padding-left: 14px; }
    thead th[data-sort] { cursor: pointer; user-select: none; }
    thead th[data-sort]:hover { color: #eceef1; }
    thead th[data-sort].sort-asc::after { content: ' ▲'; font-size: 0.55rem; }
    thead th[data-sort].sort-desc::after { content: ' ▼'; font-size: 0.55rem; }
    tbody tr { border-left: 4px solid transparent; transition: background 0.15s; }
    tbody tr:hover { background: #1a1d24; }
    tbody td {
      padding: 9px 8px; text-align: center; border-bottom: 1px solid #1a1d22;
      font-variant-numeric: tabular-nums;
    }
    tbody td.col-pos { font-family: 'DM Mono', monospace; font-weight: 500; color: #9ca3af; width: 36px; }
    tbody td.col-team { text-align: left; font-weight: 600; padding-left: 10px; color: #eceef1; min-width: 140px; }
    #classif-table tbody td.col-team[data-team] { cursor: pointer; transition: color 0.15s; }
    #classif-table tbody td.col-team[data-team]:hover { color: #c8f04a; }
    tbody td.col-num { font-family: 'DM Mono', monospace; font-size: 0.8rem; color: #d1d5db; }
    tbody td.col-pts { font-family: 'DM Mono', monospace; font-weight: 600; font-size: 0.85rem; color: #eceef1; }
    .sg-pos { color: #c8f04a; } .sg-neg { color: #ff5f5f; } .sg-zero { color: #6b7280; }
    tbody td.diff-pos { color: #4ade80; font-weight: 600; }
    tbody td.diff-neg { color: #f87171; font-weight: 600; }
    tbody td.diff-neu { color: #6b7280; }
    .sep { border-left: 1px solid #262a33; }

    /* ── Probability cells (heatmap boxes) ── */
    td.col-prob { min-width: 60px; padding: 0; }
    .prob-cell {
      font-family: 'DM Mono', monospace; font-size: 0.72rem; font-weight: 600;
      color: #fff; text-align: center; padding: 8px 6px;
    }

    /* ── Zone badges ── */
    .zone-badges { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-top: 1rem; }
    .zone-badge-card {
      text-align: center; padding: 0.75rem 1rem; border-radius: 8px; color: #fff;
      font-weight: 600; font-size: 0.85rem;
    }
    .zone-badge-range { font-size: 0.72rem; font-weight: 400; opacity: 0.85; margin-top: 0.2rem; }

    /* ── Match cards (Proximos Jogos) ── */
    .match-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1rem; }
    .match-card { background: #13161b; border: 1px solid #1e2128; border-radius: 8px; overflow: hidden; }
    .match-card-header {
      padding: 0.5rem 1rem; background: #1a1d24; font-family: 'DM Mono', monospace;
      font-size: 0.7rem; color: #6b7280;
    }
    .match-card-body { padding: 1rem; }
    .match-teams { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
    .match-team { text-align: center; flex: 1; }
    .match-team-name { font-weight: 600; font-size: 0.85rem; margin-bottom: 0.25rem; }
    .match-team-meta { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #6b7280; }
    .match-vs { font-family: 'DM Mono', monospace; font-size: 0.7rem; color: #4b5563; padding: 0 0.5rem; }
    .match-probs { display: flex; gap: 2px; height: 28px; border-radius: 4px; overflow: hidden; margin-bottom: 0.5rem; }
    .match-prob-seg { display: flex; align-items: center; justify-content: center; font-family: 'DM Mono', monospace; font-size: 0.7rem; font-weight: 600; color: #fff; min-width: 32px; }
    .match-lambdas { text-align: center; font-family: 'DM Mono', monospace; font-size: 0.7rem; color: #6b7280; }

    /* ── ELO chart ── */
    .elo-chart-container { background: #13161b; border: 1px solid #1e2128; border-radius: 8px; padding: 1rem; min-height: 400px; }
    .elo-layout { display: flex; gap: 1rem; }
    .elo-canvas-wrap { position: relative; flex: 1; height: 620px; min-width: 0; }
    .elo-canvas-wrap canvas { width: 100% !important; height: 100% !important; }
    .elo-ranking { width: 180px; flex-shrink: 0; }
    .elo-rank-item {
      display: flex; align-items: center; gap: 6px; padding: 5px 8px;
      cursor: pointer; border-radius: 4px; transition: all 0.15s;
      border-left: 3px solid transparent;
    }
    .elo-rank-item:hover { background: #1e2128; }
    .elo-rank-item.inactive { opacity: 0.35; }
    .elo-rank-pos { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; width: 18px; text-align: right; }
    .elo-rank-name { font-size: 0.75rem; color: #eceef1; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .elo-rank-val { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #9ca3af; }
    @media (max-width: 768px) {
      .elo-layout { flex-direction: column; }
      .elo-ranking { width: 100%; max-height: 200px; overflow-y: auto; display: flex; flex-wrap: wrap; gap: 2px; }
      .elo-rank-item { padding: 3px 6px; }
      .elo-canvas-wrap { height: 350px; }
    }

    /* ── Power Ranking table ── */
    .power-ranking { margin-top: 2rem; }
    .pr-table { width: 100%; border-collapse: collapse; font-family: 'DM Mono', monospace; font-size: 0.78rem; }
    .pr-table th { color: #6b7280; font-weight: 400; font-size: 0.68rem; text-transform: uppercase; padding: 0.5rem 0.6rem; border-bottom: 1px solid #262a33; text-align: center; }
    .pr-table th:nth-child(1) { text-align: left; }
    .pr-table td { padding: 0.5rem 0.6rem; border-bottom: 1px solid #1a1d22; text-align: center; }
    .pr-table td:nth-child(1) { text-align: left; color: #eceef1; font-family: 'Inter', sans-serif; font-weight: 600; font-size: 0.82rem; }
    .pr-table tr:hover { background: #1a1d24; }
    .pr-table .pr-team-cell { display: flex; align-items: center; gap: 8px; }
    .pr-table .pr-color-dot { width: 4px; height: 24px; border-radius: 2px; flex-shrink: 0; }
    .pr-val-pos { color: #2ECC71; font-weight: 600; }
    .pr-val-neg { color: #E74C3C; font-weight: 600; }
    .pr-val-zero { color: #6b7280; }

    /* ── Expected Points bars ── */
    .xp-row { display: flex; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid #1a1d22; }
    .xp-row:hover { background: #1a1d24; }
    .xp-rank { font-family: 'DM Mono', monospace; font-size: 0.72rem; color: #6b7280; width: 24px; text-align: right; }
    .xp-team { font-weight: 600; font-size: 0.8rem; width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .xp-bar-wrap { flex: 1; height: 18px; background: #1e2128; border-radius: 3px; overflow: hidden; }
    .xp-bar { height: 100%; border-radius: 3px; transition: width 0.4s ease; }
    .xp-val { font-family: 'DM Mono', monospace; font-size: 0.75rem; color: #d1d5db; width: 45px; text-align: right; }

    /* ── Heatmap ── */
    .heatmap-wrap { overflow-x: auto; }
    .heatmap { border-collapse: collapse; font-size: 0.72rem; }
    .heatmap th { padding: 6px 4px; font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; text-align: center; min-width: 36px; background: #13161b; }
    .heatmap th.team-col { text-align: left; padding-left: 8px; min-width: 120px; }
    .heatmap td { padding: 5px 4px; text-align: center; font-family: 'DM Mono', monospace; font-size: 0.68rem; min-width: 36px; }
    .heatmap td.team-cell { text-align: left; padding-left: 8px; font-weight: 600; font-size: 0.75rem; color: #eceef1; white-space: nowrap; }
    .heatmap .zone-sep { border-left: 2px solid #c8f04a; }

    /* ── Deep Dive ── */
    .dd-select { background: #1e2128; border: 1px solid #262a33; color: #eceef1; padding: 0.5rem 1rem; border-radius: 6px; font-size: 0.85rem; width: 100%; max-width: 300px; margin-bottom: 1rem; }
    .dd-metrics { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.75rem; margin-bottom: 1.5rem; }
    .dd-metric { background: #1a1d24; border-radius: 6px; padding: 0.75rem; text-align: center; }
    .dd-metric-label { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; text-transform: uppercase; margin-bottom: 0.25rem; }
    .dd-metric-value { font-family: 'DM Mono', monospace; font-size: 1.1rem; font-weight: 600; color: #eceef1; }
    .dd-bar-chart { margin-top: 1rem; }
    .dd-bar-row { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
    .dd-bar-label { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #6b7280; width: 24px; text-align: right; }
    .dd-bar-wrap { flex: 1; height: 20px; background: #1e2128; border-radius: 3px; overflow: hidden; }
    .dd-bar { height: 100%; border-radius: 3px; }
    .dd-bar-val { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #9ca3af; width: 40px; }

    /* ── Jogos table ── */
    .jogos-filters { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-bottom: 1rem; }
    .jogos-filters select {
      background: #1e2128; border: 1px solid #262a33; color: #eceef1;
      padding: 0.4rem 0.75rem; border-radius: 4px; font-size: 0.8rem;
    }
    .verdict-badge {
      display: inline-block; padding: 2px 8px; border-radius: 10px;
      font-size: 0.7rem; font-weight: 500; color: #fff;
    }
    .verdict-merecido { background: #2ECC71; }
    .verdict-parcial { background: #F39C12; }
    .verdict-injusto { background: #E74C3C; }
    .verdict-semxg { background: #7f8c8d; }

    /* ── Match detail modal ── */
    .md-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.7); z-index: 500; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 2rem 1rem; }
    .md-modal { background: #13161b; border: 1px solid #262a33; border-radius: 10px; width: 100%; max-width: 720px; padding: 2rem; position: relative; }
    .md-close { position: absolute; top: 12px; right: 16px; font-size: 1.4rem; color: #6b7280; cursor: pointer; background: none; border: none; }
    .md-close:hover { color: #eceef1; }
    .md-header { text-align: center; margin-bottom: 1.5rem; }
    .md-teams { display: flex; justify-content: center; align-items: center; gap: 1.5rem; margin-bottom: 0.5rem; }
    .md-team-name { font-family: 'Syne', sans-serif; font-size: 1.1rem; font-weight: 700; color: #eceef1; }
    .md-score { font-family: 'DM Mono', monospace; font-size: 1.8rem; font-weight: 700; color: #eceef1; }
    .md-meta { font-family: 'DM Mono', monospace; font-size: 0.72rem; color: #6b7280; margin-top: 0.25rem; }
    .md-section-title { font-family: 'Syne', sans-serif; font-size: 0.85rem; font-weight: 600; color: #c8f04a; margin: 1.5rem 0 0.75rem; }
    .md-xg-chart { position: relative; width: 100%; height: 200px; margin-bottom: 1rem; }
    .md-probs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-bottom: 0.5rem; }
    .md-prob { text-align: center; }
    .md-prob-label { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; }
    .md-prob-val { font-family: 'DM Mono', monospace; font-size: 1.3rem; font-weight: 700; color: #eceef1; }
    .md-stats-table { width: 100%; border-collapse: collapse; }
    .md-stats-table td { padding: 0.5rem 0.75rem; border-bottom: 1px solid #1e2128; font-family: 'DM Mono', monospace; font-size: 0.8rem; }
    .md-stats-table td:nth-child(1) { text-align: center; color: #eceef1; font-weight: 600; width: 25%; }
    .md-stats-table td:nth-child(2) { text-align: center; color: #6b7280; }
    .md-stats-table td:nth-child(3) { text-align: center; color: #eceef1; font-weight: 600; width: 25%; }
    .md-odds-table { width: 100%; border-collapse: collapse; margin-bottom: 0.5rem; }
    .md-odds-table th { padding: 0.5rem; font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #6b7280; text-align: center; border-bottom: 1px solid #262a33; }
    .md-odds-table td { padding: 0.5rem; text-align: center; font-family: 'DM Mono', monospace; font-size: 0.8rem; color: #d1d5db; border-bottom: 1px solid #1e2128; }
    .md-odds-table td:first-child { color: #6b7280; }

    /* ── Match forecast modal (FiveThirtyEight style) ── */
    .mf-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.7); z-index: 500; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 2rem 1rem; }
    .mf-modal { background: #13161b; border: 1px solid #262a33; border-radius: 10px; width: 100%; max-width: 680px; padding: 2rem; position: relative; }
    .mf-close { position: absolute; top: 12px; right: 16px; font-size: 1.4rem; color: #6b7280; cursor: pointer; background: none; border: none; }
    .mf-close:hover { color: #eceef1; }
    .mf-header { text-align: center; margin-bottom: 1.5rem; }
    .mf-teams { display: flex; justify-content: center; align-items: center; gap: 1.5rem; }
    .mf-team-name { font-family: 'Syne', sans-serif; font-size: 1.1rem; font-weight: 700; color: #eceef1; }
    .mf-vs { font-family: 'DM Mono', monospace; font-size: 0.8rem; color: #6b7280; }
    .mf-meta { font-family: 'DM Mono', monospace; font-size: 0.72rem; color: #6b7280; margin-top: 0.4rem; }
    .mf-probs-bar { display: flex; height: 32px; border-radius: 6px; overflow: hidden; margin: 1rem 0; }
    .mf-probs-bar > div { display: flex; align-items: center; justify-content: center; font-family: 'DM Mono', monospace; font-size: 0.75rem; font-weight: 600; color: #fff; }
    .mf-poisson-row { display: flex; align-items: flex-end; gap: 1rem; margin-bottom: 1.5rem; }
    .mf-poisson-side { flex: 1; }
    .mf-poisson-title { font-family: 'DM Mono', monospace; font-size: 0.68rem; color: #6b7280; margin-bottom: 0.5rem; text-align: center; }
    .mf-poisson-bars { display: flex; align-items: flex-end; gap: 3px; height: 80px; }
    .mf-poisson-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; }
    .mf-poisson-bar { width: 100%; border-radius: 2px 2px 0 0; min-height: 2px; }
    .mf-poisson-lbl { font-family: 'DM Mono', monospace; font-size: 0.6rem; color: #6b7280; }
    .mf-poisson-pct { font-family: 'DM Mono', monospace; font-size: 0.58rem; color: #9ca3af; }
    .mf-matrix { border-collapse: collapse; margin: 0 auto; }
    .mf-matrix th { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; padding: 4px 2px; text-align: center; min-width: 42px; }
    .mf-matrix td { font-family: 'DM Mono', monospace; font-size: 0.7rem; text-align: center; padding: 6px 4px; min-width: 42px; color: #eceef1; }
    .mf-matrix td.mf-row-header { color: #6b7280; font-weight: 600; background: transparent !important; }
    .mf-result-summary { display: flex; justify-content: center; gap: 2rem; margin-top: 1rem; }
    .mf-result-item { text-align: center; }
    .mf-result-pct { font-family: 'DM Mono', monospace; font-size: 1.1rem; font-weight: 700; color: #eceef1; }
    .mf-result-label { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; }

    /* ── News popup ── */
    .news-popup-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 500; display: flex; align-items: center; justify-content: center; padding: 1rem; }
    .news-popup { background: #13161b; border: 1px solid #262a33; border-radius: 10px; width: 100%; max-width: 480px; padding: 1.5rem; position: relative; }
    .news-popup-close { position: absolute; top: 10px; right: 14px; font-size: 1.3rem; color: #6b7280; cursor: pointer; background: none; border: none; }
    .news-popup-close:hover { color: #eceef1; }
    .news-popup-title { font-family: 'Syne', sans-serif; font-size: 1rem; font-weight: 700; color: #eceef1; margin-bottom: 1rem; display: flex; align-items: center; gap: 0.5rem; }
    .news-item { padding: 0.75rem 0; border-bottom: 1px solid #1e2128; }
    .news-item:last-child { border-bottom: none; }
    .news-item a { color: #60a5fa; text-decoration: none; font-size: 0.85rem; line-height: 1.4; display: block; }
    .news-item a:hover { color: #93c5fd; text-decoration: underline; }
    .news-item .news-date { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; margin-top: 0.3rem; }
    .news-empty { color: #6b7280; font-size: 0.82rem; font-style: italic; padding: 0.5rem 0; }
    .col-team.clickable { cursor: pointer; }
    .col-team.clickable:hover { color: #60a5fa; }

    /* ── Sobre ── */
    .sobre-content { background: #13161b; border: 1px solid #1e2128; border-radius: 8px; padding: 2rem; line-height: 1.7; font-size: 0.88rem; color: #d1d5db; }
    .sobre-content h3 { font-family: 'Syne', sans-serif; font-weight: 700; color: #eceef1; margin: 1.5rem 0 0.75rem; font-size: 1.05rem; }
    .sobre-content h3:first-child { margin-top: 0; }
    .sobre-content p { margin-bottom: 0.75rem; }
    .sobre-content strong { color: #eceef1; }
    .sobre-content .divider { border: none; height: 1px; background: #1e2128; margin: 1.5rem 0; }
    .sobre-content table { white-space: normal; }
    .sobre-content thead th { text-align: left; padding: 8px 10px; position: static; }
    .sobre-content tbody td { text-align: left; padding: 8px 10px; line-height: 1.4; }
    .zone-badge { display: inline-block; padding: 6px 14px; border-radius: 6px; color: #fff; font-weight: 600; font-size: 0.82rem; text-align: center; }

    /* ── Footer ── */
    .footer { max-width: 1280px; margin: 0 auto; padding: 1.5rem; text-align: center; font-size: 0.72rem; color: #4b5563; font-family: 'DM Mono', monospace; }
    .footer a { color: #6b7280; text-decoration: none; }
    .footer a:hover { color: #c8f04a; }

    .error-msg { padding: 3rem 2rem; text-align: center; color: #9ca3af; font-size: 0.9rem; }
    .error-msg strong { color: #ff5f5f; }

    /* ── Live badge ── */
    .live-badge { display: inline-flex; align-items: center; gap: 5px; background: rgba(239,68,68,0.15); color: #ef4444; font-family: 'DM Mono', monospace; font-size: 0.65rem; font-weight: 700; padding: 2px 8px; border-radius: 4px; text-transform: uppercase; letter-spacing: 0.05em; }
    .live-dot { width: 6px; height: 6px; border-radius: 50%; background: #ef4444; animation: livePulse 1.5s ease-in-out infinite; }
    @keyframes livePulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
    .live-score { font-family: 'DM Mono', monospace; font-size: 1.3rem; font-weight: 700; color: #eceef1; text-align: center; margin: 0.3rem 0; letter-spacing: 2px; }
    .match-card.is-live { border-color: rgba(239,68,68,0.4); }
    .match-card.is-live .match-card-header { background: rgba(239,68,68,0.1); }

    /* ── Tooltip (classificação hover) ── */
    .tt-cell { cursor: default; position: relative; }
    .tt-box {
      display: none; position: fixed; z-index: 600;
      background: #1a1d24; border: 1px solid #2a2e38; border-radius: 8px;
      padding: 0.6rem 0.75rem; min-width: 200px; max-width: 320px;
      box-shadow: 0 8px 24px rgba(0,0,0,0.5); pointer-events: none;
    }
    .tt-box.visible { display: block; }
    .tt-title {
      font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280;
      text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.4rem;
    }
    .tt-row {
      display: flex; align-items: center; gap: 6px;
      padding: 3px 0; font-size: 0.75rem; color: #d1d5db;
      border-bottom: 1px solid #1e2128;
    }
    .tt-row:last-child { border-bottom: none; }
    .tt-rod { font-family: 'DM Mono', monospace; font-size: 0.62rem; color: #6b7280; width: 22px; text-align: right; }
    .tt-score { font-family: 'DM Mono', monospace; font-weight: 600; color: #eceef1; min-width: 32px; text-align: center; }
    .tt-opp { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .tt-venue { font-family: 'DM Mono', monospace; font-size: 0.6rem; color: #4b5563; width: 12px; }
    .tt-w { color: #2ECC71; } .tt-d { color: #F39C12; } .tt-l { color: #E74C3C; }

    /* ── Financas ── */
    #fin-table td.fin-val { font-family: 'DM Mono', monospace; font-size: 0.8rem; text-align: right; padding-right: 1.5rem; background: rgba(243,156,18,0.03); }

    /* ── Mapa de Eficiencia ── */
    .eff-chart-wrap { position: relative; width: 100%; height: 520px; }
    .eff-glossary { margin-top: 1.5rem; }
    .eff-glossary table { font-size: 0.8rem; }
    .eff-glossary th { text-align: left; padding: 8px 12px; color: #9ca3af; font-weight: 600; }
    .eff-glossary td { text-align: left; padding: 8px 12px; color: #d1d5db; }

    /* ── Hamburger button (mobile only) ── */
    .nav-toggle {
      display: none; background: none; border: none; color: #eceef1; cursor: pointer;
      font-size: 1.5rem; padding: 0.5rem; line-height: 1; flex-shrink: 0;
    }

    /* ── Responsive ── */
    @media (max-width: 768px) {
      /* Topbar — single line, minimal */
      .topbar-inner { flex-direction: row; align-items: baseline; padding: 0.3rem 0.75rem; gap: 0.4rem; }
      .header-logo { font-size: 1rem; }
      .header-sub { font-size: 0.55rem; }

      /* Top-level mode nav — tight */
      .topnav-link { font-size: 0.72rem; padding: 0.4rem 0.85rem; letter-spacing: 0.02em; }

      /* Sub-navbar — tight */
      .sub-nav-link { font-size: 0.65rem; padding: 0.3rem 0.6rem; }
      .sub-navbar-inner { padding: 0 0.5rem; }

      /* Mobile nav: horizontal scroll */
      .nav-toggle { display: none !important; }
      .navbar-inner {
        flex-direction: row !important; padding: 0 0.5rem !important; overflow-x: auto !important;
        max-height: none !important; scrollbar-width: none; -webkit-overflow-scrolling: touch;
      }
      .navbar-inner::-webkit-scrollbar { display: none; }
      .navbar { padding: 0; }
      .nav-link {
        font-size: 0.68rem; padding: 0.4rem 0.5rem; white-space: nowrap;
        border-bottom: 2px solid transparent; border-left: none !important; width: auto;
      }
      .nav-link.active { border-bottom-color: #c8f04a; border-left-color: transparent !important; }

      /* Container */
      .container { padding: 0.5rem 0.75rem 2rem; }

      /* Jogadores controls — compact */
      .jog-controls { gap: 0.4rem; padding: 0.5rem 0.65rem; margin: 0.5rem 0 0.6rem; }
      .jog-select { min-width: 100px; font-size: 0.7rem; padding: 0.4rem 1.6rem 0.4rem 0.6rem; }
      .jog-search { min-width: 0; flex: 1 1 120px; }
      .jog-search input { font-size: 0.72rem; padding: 0.4rem 0.6rem 0.4rem 1.6rem; }
      .jog-toggle-label { font-size: 0.6rem; }
      .jog-toggle-track { width: 30px; height: 15px; }
      .jog-toggle-track::after { width: 11px; height: 11px; }
      .jog-toggle.active .jog-toggle-track::after { transform: translateX(15px); }

      /* Filters — start collapsed on mobile, compact when open */
      .jog-filter { padding: 0.5rem 0.65rem; margin-bottom: 0.5rem; }
      .jog-filter-title { font-size: 0.75rem; }
      .jog-filter-row { gap: 0.75rem; }
      .jog-range-label { font-size: 0.65rem; }
      .jog-pos-pills { gap: 0.2rem; }
      .jog-pos-pill { font-size: 0.6rem; padding: 0.3rem 0.5rem; }

      /* Inner tabs (Overview/Deep Dive) */
      #jog-inner-tabs { margin-bottom: 0.15rem; }
      #jog-inner-tabs .dd-tab { font-size: 0.7rem; padding: 0.35rem 0.7rem; }

      /* Deep Dive tabs */
      .dd-tabs { gap: 0; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-bottom: 0.6rem; }
      .dd-tabs::-webkit-scrollbar { display: none; }
      .dd-tab { font-size: 0.7rem; padding: 0.35rem 0.6rem; white-space: nowrap; flex-shrink: 0; }

      /* Tables */
      table { font-size: 0.72rem; }
      thead th, tbody td { padding: 6px 4px; }
      tbody td.col-team { min-width: 110px; font-size: 0.75rem; }
      .table-wrap { margin: 0 -0.75rem; border-radius: 0; border-left: none; border-right: none; }

      /* Zone badges */
      .zone-badges { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
      .zone-badge-card { font-size: 0.78rem; padding: 0.6rem 0.75rem; }

      /* Match cards (Próximos Jogos) */
      .match-grid { grid-template-columns: 1fr; }
      .match-card-body { padding: 0.75rem; }
      .match-team-name { font-size: 0.8rem; }

      /* DD Metrics */
      .dd-metrics { grid-template-columns: repeat(2, 1fr); }
      .dd-select { max-width: 100%; }

      /* ── Modals: full-screen mobile ── */
      .md-overlay, .mf-overlay { padding: 0; align-items: stretch; }
      .md-modal, .mf-modal {
        padding: 1rem; border-radius: 0; max-width: 100%;
        min-height: 100vh; min-height: 100dvh;
        border: none; overflow-y: auto;
      }
      .md-close, .mf-close {
        font-size: 1.8rem; top: 8px; right: 12px;
        padding: 8px; /* larger touch target */
      }
      /* Match Detail modal */
      .md-header { margin-bottom: 1rem; }
      .md-teams { gap: 0.5rem; flex-wrap: wrap; justify-content: center; }
      .md-team-name { font-size: 0.85rem; }
      .md-score { font-size: 1.3rem; }
      .md-meta { font-size: 0.68rem; }
      .md-probs { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
      .md-prob-label { font-size: 0.6rem; }
      .md-prob-val { font-size: 1rem; }
      .md-xg-chart { height: 150px; }
      .md-section-title { font-size: 0.78rem; margin: 1rem 0 0.5rem; }
      .md-stats-table { white-space: normal; }
      .md-stats-table td { padding: 0.4rem 0.5rem; font-size: 0.72rem; }
      .md-stats-table td:nth-child(2) { font-size: 0.65rem; } /* stat label smaller */
      .md-odds-table { white-space: normal; }
      .md-odds-table th { font-size: 0.62rem; padding: 0.35rem; }
      .md-odds-table td { font-size: 0.72rem; padding: 0.35rem; }
      /* Match Forecast modal */
      .mf-teams { gap: 0.75rem; flex-wrap: wrap; justify-content: center; }
      .mf-team-name { font-size: 0.85rem; }
      .mf-vs { font-size: 0.7rem; }
      .mf-meta { font-size: 0.65rem; }
      .mf-probs-bar { height: 28px; }
      .mf-probs-bar > div { font-size: 0.68rem; }
      .mf-poisson-row { flex-direction: column; gap: 0.75rem; }
      .mf-poisson-title { font-size: 0.62rem; }
      .mf-poisson-bars { height: 60px; }
      .mf-poisson-pct { font-size: 0.52rem; }
      .mf-poisson-lbl { font-size: 0.55rem; }
      /* Matrix de placares: scroll horizontal */
      .mf-matrix { font-size: 0.62rem; margin: 0; width: 100%; }
      .mf-matrix th { min-width: 0; padding: 3px 2px; font-size: 0.55rem; white-space: nowrap; }
      .mf-matrix td { min-width: 0; padding: 4px 3px; font-size: 0.6rem; }
      .mf-matrix td.mf-row-header { font-size: 0.55rem; white-space: nowrap; }
      .mf-result-summary { gap: 1rem; margin-top: 0.75rem; }
      .mf-result-pct { font-size: 0.95rem; }
      .mf-result-label { font-size: 0.6rem; }
      /* News popup */
      .news-popup { max-width: 100%; border-radius: 8px; padding: 1rem; }
      .news-popup-title { font-size: 0.9rem; }
      .news-item a { font-size: 0.8rem; }

      /* Efficiency chart */
      .eff-chart-wrap { height: 380px; }

      /* Expected points */
      .xp-team { width: 90px; font-size: 0.72rem; }

      /* Sobre */
      .sobre-content { padding: 1rem; font-size: 0.82rem; }

      /* Heatmap: scroll hint */
      .heatmap-wrap { position: relative; }
      .heatmap th.team-col { min-width: 80px; position: sticky; left: 0; z-index: 2; background: #13161b; }
      .heatmap td.team-cell { position: sticky; left: 0; z-index: 2; background: #13161b; }
      .heatmap th { min-width: 30px; font-size: 0.58rem; padding: 4px 2px; }
      .heatmap td { min-width: 30px; font-size: 0.6rem; padding: 3px 2px; }

      /* Power Ranking */
      .pr-table { font-size: 0.7rem; }
      .pr-table th, .pr-table td { padding: 0.4rem 0.35rem; }

      /* Jogos section */
      .jogos-filters { gap: 0.5rem; }
      .jogos-filters select { font-size: 0.75rem; padding: 0.35rem 0.5rem; flex: 1; min-width: 0; }
      #jogos .col-team { white-space: normal; line-height: 1.4; min-width: 130px; }
      #jogos .verdict-badge { font-size: 0.6rem; padding: 2px 6px; }

      /* Financial */
      #fin-table td.fin-val { padding-right: 0.5rem; font-size: 0.7rem; }

      /* Footer */
      .footer { font-size: 0.65rem; padding: 1rem; }

      /* Publico e Renda */
      .pr-kpi-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
      .pr-kpi-value { font-size: 1.1rem; }
      .pr-scatter-grid { grid-template-columns: 1fr !important; }
      #publico-renda .card canvas { max-height: 320px; }
      #jogos .table-wrap[style*="max-height"] { max-height: 400px !important; }

      /* Sobre Mim */
      .sobre-mim-layout { flex-direction: column; align-items: center; text-align: center; gap: 1rem !important; }
      .sobre-mim-layout img { width: 120px !important; height: 120px !important; }
      .sobre-mim-text { min-width: 0 !important; }

      /* Tooltips: hide on touch */
      .tt-box { display: none !important; }
    }

    /* ── Extra small screens (< 480px) ── */
    @media (max-width: 480px) {
      .header-logo { font-size: 1rem; }
      .header-sub { font-size: 0.55rem; }
      .topnav-link { font-size: 0.72rem; padding: 0.45rem 0.65rem; }
      .sub-nav-link { font-size: 0.6rem; padding: 0.35rem 0.55rem; }
      .container { padding: 0.5rem 0.5rem 1.5rem; }
      table { font-size: 0.65rem; }
      thead th, tbody td { padding: 5px 3px; }
      tbody td.col-team { min-width: 90px; font-size: 0.68rem; }
      .card { padding: 0.75rem; }
      .card-title { font-size: 0.88rem; }
      .match-team-name { font-size: 0.72rem; }
      .match-vs { font-size: 0.6rem; }
      .zone-badges { grid-template-columns: 1fr 1fr; gap: 0.4rem; }
      .zone-badge-card { font-size: 0.7rem; padding: 0.5rem; }
      .dd-metrics { grid-template-columns: 1fr 1fr; }
      .dd-metric-value { font-size: 0.95rem; }

      /* Modals extra small */
      .md-modal, .mf-modal { padding: 0.75rem; }
      .md-teams { gap: 0.35rem; }
      .md-team-name { font-size: 0.78rem; }
      .md-score { font-size: 1.2rem; }
      .md-probs { grid-template-columns: repeat(2, 1fr); gap: 0.35rem; }
      .md-prob-val { font-size: 0.9rem; }
      .md-stats-table td { font-size: 0.68rem; padding: 0.3rem 0.35rem; }
      .mf-teams { gap: 0.5rem; }
      .mf-team-name { font-size: 0.78rem; }
      .mf-probs-bar { height: 24px; }
      .mf-probs-bar > div { font-size: 0.6rem; }
      .mf-poisson-bars { height: 50px; }
      .mf-matrix th { font-size: 0.5rem; padding: 2px 1px; }
      .mf-matrix td { font-size: 0.55rem; padding: 3px 2px; }
      .mf-result-pct { font-size: 0.85rem; }

      .elo-canvas-wrap { height: 280px; }
      .elo-ranking { max-height: 160px; }
      .elo-rank-name { font-size: 0.68rem; }
      .eff-chart-wrap { height: 300px; }
      .xp-team { width: 70px; font-size: 0.65rem; }
      .xp-val { width: 38px; font-size: 0.68rem; }
      .sobre-content { padding: 0.75rem; }

      /* Publico e Renda extra small */
      .pr-kpi-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
      .pr-kpi { padding: 0.75rem; }
      .pr-kpi-value { font-size: 1rem; }
      .pr-kpi-label { font-size: 0.6rem; }
      #publico-renda .card canvas { max-height: 280px; }

      /* Sobre Mim extra small */
      .sobre-mim-layout img { width: 100px !important; height: 100px !important; }

      /* Heatmap extra small */
      .heatmap th { min-width: 26px; font-size: 0.52rem; }
      .heatmap td { min-width: 26px; font-size: 0.52rem; padding: 2px 1px; }
      .heatmap th.team-col { min-width: 65px; font-size: 0.55rem; }
      .heatmap td.team-cell { font-size: 0.62rem; }

      /* Jogadores extra small */
      .jog-controls { flex-direction: column; gap: 0.5rem; }
      .jog-search { flex: 1 1 100%; min-width: 0; }
      .jog-select { width: 100%; min-width: 0; }
      .jog-toggle { margin-left: 0; }
      #jog-table thead th { font-size: 0.55rem; padding: 5px 2px; }
      #jog-table tbody td { padding: 6px 2px; font-size: 0.62rem; }
      #jog-table .player-cell { gap: 0.3rem; padding-left: 4px; }
      .player-team-logo, .player-team-logo-fallback { width: 18px; height: 18px; }
      #jog-table .player-name { font-size: 0.65rem; max-width: 100px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      #jog-table .team-cell { display: none; }

      /* Deep Dive extra small */
      .dd-leaders-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
      .dd-leader-card { padding: 0.5rem; }
      .dd-leader-val { font-size: 1rem; }
      .dd-leader-name { font-size: 0.65rem; }
      .dd-leader-team { font-size: 0.58rem; }
      .dd-rank-name { width: 80px; font-size: 0.62rem; }
      .dd-rank-val { width: 36px; font-size: 0.65rem; }
      .dd-rank-row { gap: 0.3rem; }
      .dd-rank-logo { width: 14px; height: 14px; }
      .dd-scatter-wrap { height: 240px; }
      .dd-tab { font-size: 0.65rem; padding: 0.45rem 0.55rem; }
      .dd-card { padding: 0.6rem 0.7rem; }

      /* Filter extra small */
      .jog-filter-row { flex-direction: column; gap: 0.75rem; }
      .jog-filter-mins { min-width: 0; flex: 1 1 100%; }
      .jog-pos-pill { font-size: 0.58rem; padding: 0.3rem 0.5rem; }
      #dd-team-filter { font-size: 0.68rem; }
    }

    /* ════════════════════════════════════════════════ */
    /* HOME — 3-column grid (StatMuse / The Analyst)   */
    /* ════════════════════════════════════════════════ */
    .home-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 0.5rem; }
    .home-card { background: #13161b; border: 1px solid #1e2128; border-radius: 8px; display: flex; flex-direction: column; min-height: 520px; }
    .home-card-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 0.78rem; color: #c8f04a; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.85rem 1rem; border-bottom: 1px solid #1e2128; margin: 0; }
    .home-card-body { padding: 0; flex: 1; overflow: auto; min-height: 0; }
    .home-loading { color: #6b7280; font-size: 0.75rem; padding: 1rem; text-align: center; font-family: 'DM Mono', monospace; }

    .home-table { width: 100%; border-collapse: collapse; font-family: 'DM Mono', monospace; font-size: 0.72rem; }
    .home-table thead th { background: #0d0f12; color: #6b7280; text-transform: uppercase; font-size: 0.62rem; font-weight: 600; padding: 0.55rem 0.4rem; text-align: right; border-bottom: 1px solid #1e2128; position: sticky; top: 0; z-index: 1; }
    .home-table th:nth-child(1), .home-table th:nth-child(2) { text-align: left; }
    .home-table td { padding: 0.4rem; border-bottom: 1px solid #1a1d23; color: #d1d5db; text-align: right; }
    .home-table tbody tr:hover { background: rgba(200, 240, 74, 0.04); }
    .home-table td:nth-child(1) { color: #6b7280; width: 22px; text-align: center; font-weight: 600; }
    .home-table td:nth-child(2) { text-align: left; color: #eceef1; }
    .home-table .ht-team { display: flex; align-items: center; gap: 6px; }
    .home-table .ht-team img { width: 16px; height: 16px; object-fit: contain; flex-shrink: 0; }
    .home-table .ht-team .ht-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 130px; }
    .home-table .ht-pts { color: #eceef1; font-weight: 600; }
    .home-table .ht-prob { font-weight: 500; padding: 0.25rem 0.35rem; border-radius: 3px; display: inline-block; min-width: 38px; }
    .home-table .ht-prob.tit-hi { background: rgba(176, 126, 255, 0.18); color: #c8a8ff; }
    .home-table .ht-prob.lib-hi { background: rgba(46, 204, 113, 0.15); color: #4ade80; }
    .home-table .ht-prob.reb-hi { background: rgba(231, 76, 60, 0.18); color: #f87171; }
    .home-table .ht-prob.dim { color: #4b5563; }

    .home-chart-wrap { position: relative; width: 100%; height: 340px; padding: 0.75rem; box-sizing: border-box; }
    .home-chart-wrap canvas { width: 100% !important; height: 100% !important; display: block; }
    #home-elo-status { font-family: 'DM Mono', monospace; }

    .home-insight { padding: 0.7rem 0.9rem; font-size: 0.74rem; line-height: 1.55; color: #d1d5db; border-bottom: 1px solid #1e2128; font-family: 'DM Mono', monospace; background: rgba(200, 240, 74, 0.025); }
    .home-insight strong { color: #eceef1; font-weight: 600; }
    .home-insight .ins-pos { color: #4ade80; font-weight: 600; }
    .home-insight .ins-neg { color: #f87171; font-weight: 600; }
    .home-insight .ins-hl { color: #c8f04a; font-weight: 600; }

    .home-tabs { display: flex; gap: 4px; padding: 0.6rem 0.75rem; border-bottom: 1px solid #1e2128; background: #0d0f12; flex-wrap: wrap; }
    .home-tab { background: transparent; color: #6b7280; border: 1px solid #1e2128; border-radius: 4px; padding: 0.35rem 0.7rem; font-size: 0.65rem; font-family: 'DM Mono', monospace; cursor: pointer; transition: all 0.15s ease; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
    .home-tab:hover { color: #d1d5db; border-color: #2a2d35; background: #13161b; }
    .home-tab.active { background: #c8f04a; color: #0d0f12; border-color: #c8f04a; }

    .home-news { list-style: none; padding: 0; margin: 0; }
    .home-news li { border-bottom: 1px solid #1e2128; padding: 0.7rem 0.85rem; transition: background 0.15s; }
    .home-news li:last-child { border-bottom: none; }
    .home-news li:hover { background: rgba(200, 240, 74, 0.03); }
    .home-news a { color: #eceef1; text-decoration: none; font-size: 0.78rem; line-height: 1.4; display: block; }
    .home-news a:hover { color: #c8f04a; }
    .home-news .hn-meta { color: #6b7280; font-size: 0.62rem; font-family: 'DM Mono', monospace; margin-top: 0.35rem; text-transform: uppercase; letter-spacing: 0.04em; }
    .home-news .hn-team { color: #c8f04a; font-weight: 600; }
    .home-news .hn-fonte { color: #9ca3af; font-weight: 600; }

    /* HOME — ELO 5J: chart + side hot/cold */
    .home-elo-row { display: flex; gap: 0.5rem; padding: 0; height: 340px; }
    .home-elo-row .home-chart-flex { flex: 1; height: 100%; padding: 0.6rem; min-width: 0; }
    .home-elo-side { width: 110px; flex-shrink: 0; padding: 0.5rem 0.5rem 0.5rem 0; display: flex; flex-direction: column; gap: 0.4rem; justify-content: center; }
    .home-elo-side .es-card { background: #0d0f12; border: 1px solid #1e2128; border-radius: 6px; padding: 0.5rem 0.55rem; display: flex; flex-direction: column; align-items: center; gap: 0.25rem; text-align: center; }
    .home-elo-side .es-card.es-hot { border-color: rgba(251, 146, 60, 0.4); background: rgba(251, 146, 60, 0.05); }
    .home-elo-side .es-card.es-cold { border-color: rgba(96, 165, 250, 0.4); background: rgba(96, 165, 250, 0.05); }
    .home-elo-side .es-icon { font-size: 1.2rem; line-height: 1; }
    .home-elo-side .es-team { display: flex; align-items: center; gap: 0.3rem; font-size: 0.66rem; color: #eceef1; font-family: 'Inter', sans-serif; font-weight: 600; }
    .home-elo-side .es-team img { width: 14px; height: 14px; object-fit: contain; }
    .home-elo-side .es-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 70px; }
    .home-elo-side .es-delta { font-family: 'DM Mono', monospace; font-size: 0.78rem; font-weight: 700; }
    .home-elo-side .es-delta.up { color: #fb923c; }
    .home-elo-side .es-delta.down { color: #60a5fa; }

    /* HOME — Pts vs xPTS dumbbell list */
    .home-xpts { list-style: none; padding: 0; margin: 0; }
    .home-xpts li { display: grid; grid-template-columns: minmax(110px, 130px) 36px 1fr 32px; align-items: center; gap: 0.4rem; padding: 0.55rem 0.85rem; border-bottom: 1px solid #1e2128; font-family: 'DM Mono', monospace; }
    .home-xpts li:last-child { border-bottom: none; }
    .home-xpts li:hover { background: rgba(200, 240, 74, 0.03); }
    .home-xpts .xp-name { color: #eceef1; font-size: 0.72rem; font-family: 'Inter', sans-serif; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; gap: 0.3rem; }
    .home-xpts .xp-name img { width: 14px; height: 14px; object-fit: contain; flex-shrink: 0; }
    .home-xpts .xp-xpts-val { color: #94a3b8; font-size: 0.7rem; text-align: right; font-weight: 600; }
    .home-xpts .xp-pts-val { color: #c8f04a; font-size: 0.8rem; font-weight: 700; text-align: right; }
    .home-xpts .xp-track { position: relative; height: 8px; background: #1a1d23; border-radius: 4px; }
    .home-xpts .xp-line { position: absolute; top: 0; height: 100%; border-radius: 4px; }
    .home-xpts .xp-line.over { background: #4ade80; }
    .home-xpts .xp-line.under { background: #f87171; }
    .home-xpts .xp-line.neutral { background: #4b5563; }
    .home-xpts .xp-dot { position: absolute; top: 50%; width: 11px; height: 11px; border-radius: 50%; transform: translate(-50%, -50%); border: 2px solid #0d0f12; box-shadow: 0 0 0 1px rgba(0,0,0,0.4); }
    .home-xpts .xp-dot-x { background: #94a3b8; z-index: 1; }
    .home-xpts .xp-dot-p { background: #c8f04a; z-index: 2; }
    .home-xpts-legend { display: grid; grid-template-columns: minmax(110px, 130px) 36px 1fr 32px; gap: 0.4rem; padding: 0.45rem 0.85rem; border-bottom: 1px solid #1e2128; font-family: 'DM Mono', monospace; font-size: 0.6rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.04em; }
    .home-xpts-legend .lg-xpts { color: #94a3b8; text-align: right; }
    .home-xpts-legend .lg-pts { color: #c8f04a; text-align: right; }
    .home-xpts-legend .lg-track { text-align: center; }

    /* HOME — Top G+A list */
    .home-ga { list-style: none; padding: 0; margin: 0; counter-reset: ga; }
    .home-ga li { display: grid; grid-template-columns: 24px 16px 1fr auto; align-items: center; gap: 0.5rem; padding: 0.55rem 0.85rem; border-bottom: 1px solid #1e2128; font-family: 'DM Mono', monospace; }
    .home-ga li:last-child { border-bottom: none; }
    .home-ga li:hover { background: rgba(200, 240, 74, 0.04); }
    .home-ga .ga-rank { color: #6b7280; font-size: 0.7rem; font-weight: 700; text-align: center; }
    .home-ga img { width: 16px; height: 16px; object-fit: contain; }
    .home-ga .ga-name { color: #eceef1; font-size: 0.78rem; font-family: 'Inter', sans-serif; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .home-ga .ga-team { color: #6b7280; font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.03em; margin-left: 0.4rem; }
    .home-ga .ga-stats { font-size: 0.7rem; color: #d1d5db; text-align: right; white-space: nowrap; }
    .home-ga .ga-total { color: #c8f04a; font-weight: 700; }
    .home-ga .ga-split { color: #6b7280; }

    /* HOME — Proxima rodada (faixa horizontal acima do grid) */
    .home-next { margin-top: 0.5rem; margin-bottom: 1rem; background: #13161b; border: 1px solid #1e2128; border-radius: 8px; }
    .home-next-header { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 1rem; border-bottom: 1px solid #1e2128; }
    .home-next-header .home-card-title { padding: 0; border: none; }
    .home-next-rod { color: #6b7280; font-weight: 500; margin-left: 0.4rem; }
    .home-next-link { color: #c8f04a; font-family: 'DM Mono', monospace; font-size: 0.7rem; text-decoration: none; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; }
    .home-next-link:hover { color: #d8ff5a; }
    .home-next-row { display: flex; gap: 0.6rem; padding: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory; }
    .home-next-row::-webkit-scrollbar { height: 6px; }
    .home-next-row::-webkit-scrollbar-track { background: #0d0f12; }
    .home-next-row::-webkit-scrollbar-thumb { background: #2a2d35; border-radius: 3px; }
    .hn-card { flex: 0 0 220px; scroll-snap-align: start; background: #0d0f12; border: 1px solid #1e2128; border-radius: 6px; padding: 0.6rem 0.7rem; cursor: pointer; transition: border-color 0.15s, background 0.15s; }
    .hn-card:hover { border-color: #2a2d35; background: #15181e; }
    .hn-card.is-live { border-color: rgba(231, 76, 60, 0.4); background: rgba(231, 76, 60, 0.04); }
    .hn-when { color: #6b7280; font-family: 'DM Mono', monospace; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.45rem; display: flex; align-items: center; gap: 0.4rem; }
    .hn-live-dot { width: 6px; height: 6px; background: #E74C3C; border-radius: 50%; display: inline-block; animation: hnPulse 1.4s ease-in-out infinite; }
    @keyframes hnPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
    .hn-teams { display: flex; flex-direction: column; gap: 0.3rem; margin-bottom: 0.55rem; }
    .hn-team-row { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: #eceef1; }
    .hn-team-row img { width: 16px; height: 16px; object-fit: contain; flex-shrink: 0; }
    .hn-team-row .hn-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .hn-team-row .hn-fav { font-weight: 700; color: #c8f04a; }
    .hn-probs { display: flex; height: 6px; border-radius: 3px; overflow: hidden; background: #0d0f12; margin-bottom: 0.3rem; }
    .hn-prob-seg { height: 100%; }
    .hn-prob-h { background: #2ECC71; }
    .hn-prob-d { background: #7f8c8d; }
    .hn-prob-a { background: #E74C3C; }
    .hn-prob-labels { display: flex; justify-content: space-between; font-family: 'DM Mono', monospace; font-size: 0.6rem; color: #9ca3af; letter-spacing: 0.04em; }
    .hn-prob-labels .hn-pct-h { color: #4ade80; font-weight: 600; }
    .hn-prob-labels .hn-pct-a { color: #f87171; font-weight: 600; }

    /* Tabela do home — linhas clicaveis (abre modal de noticias) */
    .home-table tbody tr { cursor: pointer; }

    /* Modal de noticias por time */
    .tn-modal { background: #13161b; border: 1px solid #262a33; border-radius: 10px; width: 100%; max-width: 640px; padding: 1.5rem 1.5rem 1rem; position: relative; max-height: 85vh; display: flex; flex-direction: column; }
    .tn-close { position: absolute; top: 0.6rem; right: 0.85rem; background: none; border: none; color: #6b7280; font-size: 1.6rem; cursor: pointer; line-height: 1; }
    .tn-close:hover { color: #eceef1; }
    .tn-header { display: flex; align-items: center; gap: 0.7rem; padding-bottom: 0.85rem; margin-bottom: 0.85rem; border-bottom: 1px solid #1e2128; }
    .tn-header img { width: 32px; height: 32px; object-fit: contain; }
    .tn-header h3 { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 1.05rem; color: #eceef1; margin: 0; }
    .tn-header .tn-sub { font-family: 'DM Mono', monospace; font-size: 0.65rem; color: #6b7280; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.15rem; }
    .tn-list { list-style: none; padding: 0; margin: 0; overflow-y: auto; flex: 1; }
    .tn-list li { border-bottom: 1px solid #1e2128; padding: 0.75rem 0.25rem; transition: background 0.15s; }
    .tn-list li:last-child { border-bottom: none; }
    .tn-list li:hover { background: rgba(200, 240, 74, 0.04); }
    .tn-list a { color: #eceef1; text-decoration: none; font-size: 0.82rem; line-height: 1.45; display: block; }
    .tn-list a:hover { color: #c8f04a; }
    .tn-meta { color: #6b7280; font-size: 0.62rem; font-family: 'DM Mono', monospace; margin-top: 0.4rem; text-transform: uppercase; letter-spacing: 0.04em; }
    .tn-meta .tn-fonte { color: #9ca3af; font-weight: 600; }
    .tn-empty { color: #6b7280; font-size: 0.85rem; padding: 2rem 0.5rem; text-align: center; font-family: 'DM Mono', monospace; }

    /* Tablet + Mobile: stack vertical e reordena pra Insights -> Noticias -> Tabela */
    @media (max-width: 1024px) {
      .home-grid { grid-template-columns: 1fr; gap: 0.75rem; }
      .home-card { min-height: auto; }
      .home-card-body { max-height: 520px; }
      .home-card:nth-child(1) { order: 3; } /* Tabela & Probabilidades por ultimo */
      .home-card:nth-child(2) { order: 1; } /* Card de insights (graficos/tabs) primeiro */
      .home-card:nth-child(3) { order: 2; } /* Noticias no meio */
      .hn-card { flex-basis: 200px; }
    }

    /* Mobile: ajustes finos de espacamento e tamanhos */
    @media (max-width: 600px) {
      .home-next-header { padding: 0.7rem 0.75rem; }
      .home-next-row { padding: 0.55rem; gap: 0.5rem; }
      .hn-card { flex-basis: 175px; padding: 0.5rem 0.6rem; }
      .home-card-title { font-size: 0.72rem; padding: 0.7rem 0.85rem; }
      .home-card-body { max-height: none; }
      .home-tabs { padding: 0.45rem 0.6rem; gap: 3px; flex-wrap: wrap; }
      .home-tab { font-size: 0.6rem; padding: 0.3rem 0.55rem; }
      /* Lista G+A: nome com mais espaco em mobile */
      .home-ga li { padding: 0.5rem 0.6rem; gap: 0.4rem; }
      .home-ga .ga-name { font-size: 0.74rem; }
      .home-ga .ga-stats { font-size: 0.66rem; }
      /* Lista xPTS: shrink mais agressivo do nome pra caber tudo */
      .home-xpts li, .home-xpts-legend { grid-template-columns: minmax(95px, 1fr) 32px minmax(70px, 1.1fr) 28px; padding: 0.5rem 0.6rem; gap: 0.35rem; }
      .home-xpts .xp-pts-val { font-size: 0.74rem; }
      /* Tabela do home: reduz fonte e padding */
      .home-table { font-size: 0.68rem; }
      .home-table thead th { padding: 0.45rem 0.3rem; font-size: 0.58rem; }
      .home-table td { padding: 0.35rem; }
      .home-table .ht-team .ht-name { max-width: 95px; }
      /* Modal de noticias por time: full screen */
      .tn-modal { max-height: 100vh; border-radius: 0; padding: 1rem; }
      /* Insight banner mais compacto */
      .home-insight { padding: 0.55rem 0.7rem; font-size: 0.7rem; }
    }
