/* Football Position Chart — diseño tipo liga europea */
:root {
    --fpc-navy: #1a3052;
    --fpc-navy-dark: #142640;
    --fpc-bg: #d8e2ec;
    --fpc-row-white: #ffffff;
    --fpc-row-alt: #edf2f7;
    --fpc-text: #2c3e50;
    --fpc-text-muted: #5a6d7e;
    --fpc-border: #d0dae4;
    --fpc-zone-champions: #1b5e20;
    --fpc-zone-champions-bg: #e8f5e9;
    --fpc-zone-europa: #2980b9;
    --fpc-zone-europa-bg: #e3f2fd;
    --fpc-zone-mid: #1d4ed8;
    --fpc-zone-relegation: #dc2626;
    --fpc-zone-relegation-bg: #fee2e2;
    --fpc-form-win: #66bb6a;
    --fpc-form-draw: #b0bec5;
    --fpc-form-loss: #ef5350;
    --fpc-font: "Montserrat", "Segoe UI", system-ui, sans-serif;
    --ms-gold: #c9a227;
    --ms-gold-light: #e8d48b;
    /*--fpc-bg-pts: #c6e8d1;
    --fpc-bg-pts-alt: #bddec7;*/

    --fpc-bg-pts: #d3f7de;
    --fpc-bg-pts-alt: #c6e8d1;
}

.fpc-page {
  /*font-family: var(--fpc-font);*/
/*  background: var(--fpc-bg);*/
/*  min-height: 100%;*/
  padding: 1.5rem 1rem 2rem;
}

.fpc-chart {
  max-width: 960px;
  margin: 0 auto;
}

.fpc-chart__title {
    text-align: center;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--gtd-green);
    margin: 0 0 1.25rem;
    text-transform: uppercase;
}

.fpc-chart__toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0.75rem;
}

.fpc-chart__print {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.85rem;
    font-family: var(--fpc-font);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--gtd-green);
    background: #fff;
    border: 1px solid var(--fpc-border);
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s;
}

.fpc-chart__print:hover {
  background: var(--fpc-row-alt);
}

.fpc-table-wrap {
  background: #fff;
  border-radius: 10px 10px 8px 8px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(26, 48, 82, 0.1);
}

.fpc-table {
  width: 100%;
  border-collapse: collapse;
/*  font-size: 0.875rem;*/
  color: var(--fpc-text);
}

    .fpc-table thead th {
        /*background: var(--fpc-navy);*/
        /*background: var(--gtd-green) !important;*/
        /*color: #fff;*/
        /*font-size: 0.72rem;*/
        font-weight: 700;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        padding: 0.85rem 0.6rem;
        text-align: center;
        border: none;
    }

        .fpc-table thead th.fpc-th-zone {
            width: 5px;
            min-width: 5px;
            max-width: 5px;
            padding: 0;
            /*background: var(--gtd-green);*/
            border-radius: 10px 0 0 0;
        }

.fpc-table thead th.fpc-th-pos {
  width: 40px;
}

.fpc-table thead th:first-child {
  border-radius: 0;
}

.fpc-table thead th.fpc-th-zone + th {
  border-radius: 0;
}

.fpc-table thead th.fpc-th-team {
  text-align: left;
  padding-left: 0.25rem;
  min-width: 160px;
}

.fpc-table thead th:last-child {
  border-radius: 0 10px 0 0;
}

.fpc-table thead th.fpc-th-form {
  min-width: 130px;
  padding-right: 1rem;
}

.fpc-table tbody tr {
  border-bottom: 1px solid var(--fpc-border);
}

.fpc-table tbody tr:last-child {
  border-bottom: none;
}

.fpc-table tbody tr.fpc-row--alt td:not(.fpc-td-zone-indicator):not(.fpc-td-pos):not(.fpc-td-team) {
  background: var(--fpc-row-alt);
}

.fpc-table tbody tr.fpc-row--highlight td:not(.fpc-td-zone-indicator):not(.fpc-td-pos):not(.fpc-td-team) {
  background: #e3f2fd !important;
}

.fpc-table tbody tr.fpc-row--highlight.fpc-row--alt td:not(.fpc-td-zone-indicator):not(.fpc-td-pos):not(.fpc-td-team) {
  background: #d6eaf8 !important;
}

.fpc-table tbody td {
  padding: 0.7rem 0.3rem;
  text-align: center;
  vertical-align: middle;
}

/* Zona + posición + equipo */
.fpc-td-zone-indicator {
  width: 5px;
  min-width: 5px;
  max-width: 5px;
  padding: 0;
  border: none;
}

.fpc-td-pos {
  font-weight: 700;
  font-size: 0.9rem;
  color: #4b5563;
  width: 40px;
  padding: 0.85rem 0.4rem 0.85rem 0.65rem;
  text-align: center;
  background: #fff;
}

.fpc-td-team {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  text-align: left !important;
  padding: 0.85rem 0.75rem !important;
  min-width: 180px;
  background: #fff;
}

.fpc-team-name {
  font-weight: 700;
  font-size: 0.95rem;
  color: #1f2937;
  line-height: 1.3;
}

.fpc-zone-badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  flex-shrink: 0;
}

.fpc-zone-badge--champions {
  background: var(--fpc-zone-champions-bg);
  color: var(--fpc-zone-champions);
}

.fpc-zone-badge--europa {
  background: var(--fpc-zone-europa-bg);
  color: var(--fpc-zone-europa);
}

.fpc-zone-badge--relegation {
  background: var(--fpc-zone-relegation-bg);
  color: var(--fpc-zone-relegation);
}

/* Barras y fondos por zona (solo cols zona / pos / equipo) */
.fpc-table tbody tr[data-zone="champions"] .fpc-td-zone-indicator {
  background: var(--fpc-zone-champions);
}

.fpc-table tbody tr[data-zone="champions"] .fpc-td-pos,
.fpc-table tbody tr[data-zone="champions"] .fpc-td-team {
  background: linear-gradient(90deg, var(--fpc-zone-champions-bg) 0%, #fff 55%);
}

.fpc-table tbody tr[data-zone="europa"] .fpc-td-zone-indicator {
  background: var(--fpc-zone-europa);
}

.fpc-table tbody tr[data-zone="europa"] .fpc-td-pos,
.fpc-table tbody tr[data-zone="europa"] .fpc-td-team {
  background: linear-gradient(90deg, var(--fpc-zone-europa-bg) 0%, #fff 55%);
}

.fpc-table tbody tr[data-zone="mid"] .fpc-td-zone-indicator {
  background: var(--fpc-zone-mid);
}

.fpc-table tbody tr[data-zone="mid"] .fpc-td-pos,
.fpc-table tbody tr[data-zone="mid"] .fpc-td-team {
  background: #fff;
}

.fpc-table tbody tr[data-zone="none"] .fpc-td-zone-indicator {
  background: #d1d5db;
}

.fpc-table tbody tr[data-zone="none"] .fpc-td-pos,
.fpc-table tbody tr[data-zone="none"] .fpc-td-team {
  background: #fff;
}

.fpc-table tbody tr[data-zone="relegation"] .fpc-td-zone-indicator {
  background: var(--fpc-zone-relegation);
}

.fpc-table tbody tr[data-zone="relegation"] .fpc-td-pos,
.fpc-table tbody tr[data-zone="relegation"] .fpc-td-team {
  background: linear-gradient(90deg, var(--fpc-zone-relegation-bg) 0%, #fff 55%);
}

.fpc-table tbody tr.fpc-row--highlight .fpc-td-pos,
.fpc-table tbody tr.fpc-row--highlight .fpc-td-team {
  filter: brightness(0.97);
}

.fpc-td-goals {
  font-weight: 500;
  color: var(--fpc-text-muted);
  font-size: 0.82rem;
}

.fpc-td-pts {
    font-weight: 800;
    /*font-size: 0.95rem;*/
    /*font-size: 1.1rem;*/
    color: var(--gtd-green);
}

.fpc-bg-pts {
    background: var(--fpc-bg-pts) !important;
}

.fpc-bg-pts-alt {
    background: var(--fpc-bg-pts-alt) !important;
}

/* Form badges */
.fpc-form {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.fpc-form__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 5px;
  font-size: 0.65rem;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  cursor: default;
}

.fpc-form__badge--G { background: var(--fpc-form-win); }
.fpc-form__badge--E { background: var(--fpc-form-draw); }
.fpc-form__badge--P { background: var(--fpc-form-loss); }

/* Legend */
.fpc-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem 2rem;
  margin-top: 1.25rem;
  padding: 0.75rem;
}

.fpc-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--fpc-text-muted);
}

.fpc-legend__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  flex-shrink: 0;
}

.fpc-legend__dot--champions { background: var(--fpc-zone-champions); }
.fpc-legend__dot--europa { background: var(--fpc-zone-europa); }
.fpc-legend__dot--mid { background: var(--fpc-zone-mid); }
.fpc-legend__dot--relegation { background: var(--fpc-zone-relegation); }

/* Print */
@media print {
  @page {
    size: portrait;
    margin: 12mm;
  }

  .card-body{
      padding: 0px !important;
  }

  .fpc-page {
    /*background: #fff !important;*/
    padding: 0 !important;
  }

  .no-print,
  .gtd-overlay,
  .gtd-sidebar,
  .gtd-topbar {
    display: none !important;
  }

  .gtd-main {
    margin-left: 0 !important;
    width: 100% !important;
  }

  .fpc-chart {
    max-width: 100%;
  }

  .fpc-chart__title {
    font-size: 14pt;
    margin-bottom: 8pt;
  }

  .fpc-table {
    font-size: 8.5pt;
  }

    .fpc-table thead th {
        /*font-size: 7pt;*/
        padding: 5pt 3pt;
        /*background: var(--gtd-green) !important;*/
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

  .fpc-table tbody td {
    padding: 4pt 3pt;
  }

  .fpc-td-zone-indicator,
  .fpc-td-pos,
  .fpc-td-team,
  .fpc-zone-badge,
  .fpc-form__badge,
  .fpc-legend__dot {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .fpc-td-pos,
  .fpc-td-team {
    padding-top: 4pt;
    padding-bottom: 4pt;
  }

/*  .fpc-team-name {
    font-size: 8.5pt;
  }*/

  .fpc-form__badge {
    width: 14pt;
    height: 14pt;
    font-size: 6pt;
  }

  .fpc-table-wrap {
    box-shadow: none;
    border: 0.5pt solid #999;
  }

  .fpc-legend {
    font-size: 7pt;
    margin-top: 8pt;
  }
}

@media (max-width: 767.98px) {

    .fpc-card-action {
        margin-top: .50rem !important
    }

  .fpc-page {
    padding: 1rem 0.5rem;
  }

  .fpc-table-wrap {
    overflow-x: auto;
  }

  .fpc-table {
    /*font-size: 0.78rem;*/
   /* min-width: 640px;*/
  }

  .fpc-form__badge {
    width: 18px;
    height: 18px;
    font-size: 0.58rem;
  }
}

.ms-divider {
    height: 1px;
    margin: 0.45rem 0;
    background: linear-gradient(90deg, transparent, var(--ms-gold) 10%, var(--ms-gold-light) 50%, var(--ms-gold) 90%, transparent);
    margin-bottom: 20px;
}

.ms-header__title {
    font-family: var(--ms-serif);
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--ms-gold-light);
    letter-spacing: 0.06em;
    margin: 0 0 0.35rem;
    line-height: 1.15;
    text-transform: uppercase;
}