:root {
  --fc-petrol-950: #031f29;
  --fc-petrol-900: #06323e;
  --fc-petrol-800: #0b4a57;
  --fc-petrol-700: #126574;
  --fc-petrol-100: #dceef1;
  --fc-cream: #d9f7f5;
  --fc-cream-soft: #edf8fa;
  --fc-paper: #f8fcfd;
  --fc-ink: #102f38;
  --fc-muted: #567078;
  --fc-copper: #38aebb;
  --fc-copper-dark: #167b89;
  --fc-border: rgba(11, 74, 87, .14);
  --fc-shadow: 0 14px 34px rgba(3, 31, 41, .10);
  --fc-shadow-lg: 0 22px 52px rgba(3, 31, 41, .18);
  --fc-navbar-h: 78px;
}

html, body { min-height: 100%; }

body.fc-body {
  color: var(--fc-ink);
  background:
    radial-gradient(circle at 8% 0%, rgba(56, 174, 187, .14), transparent 28rem),
    radial-gradient(circle at 92% 5%, rgba(11, 74, 87, .14), transparent 32rem),
    linear-gradient(180deg, #f4fafb 0%, #dfeef1 100%);
}

a { transition: color .18s ease, background-color .18s ease, transform .18s ease, box-shadow .18s ease; }

.fc-navbar {
  position: sticky;
  top: 0;
  z-index: 1030;
  min-height: var(--fc-navbar-h);
  background: rgba(7, 31, 36, .96);
  border-bottom: 1px solid rgba(217, 247, 245, .16);
  box-shadow: 0 10px 30px rgba(7, 31, 36, .22);
  backdrop-filter: blur(12px);
}

.fc-navbar .container { max-width: 1400px; }
.fc-navbar .navbar-brand { display: flex; align-items: center; gap: .65rem; color: var(--fc-cream) !important; font-weight: 900; letter-spacing: .055em; }
.fc-brand-logo { width: 42px; height: 42px; object-fit: cover; object-position: 50% 16%; border-radius: 13px; border: 2px solid rgba(217, 247, 245, .65); background: var(--fc-cream); }
.fc-home-link { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; color: var(--fc-cream) !important; background: rgba(217, 247, 245, .10); border: 1px solid rgba(217, 247, 245, .16); }
.fc-home-link:hover { transform: translateY(-1px); background: rgba(217, 247, 245, .18); }
.fc-navbar .nav-link { color: rgba(241, 252, 253, .86) !important; border-radius: 12px; padding: .62rem .72rem !important; font-weight: 700; white-space: nowrap; }
.fc-navbar .nav-link:hover, .fc-navbar .nav-link:focus { color: var(--fc-cream) !important; background: rgba(217, 247, 245, .10); }
.fc-navbar .nav-link.active, .fc-navbar .dropdown-toggle.active { color: var(--fc-petrol-950) !important; background: var(--fc-cream); }
.fc-navbar .dropdown-menu { min-width: 235px; padding: .55rem; margin-top: .5rem; border: 1px solid var(--fc-border); border-radius: 16px; background: var(--fc-paper); box-shadow: var(--fc-shadow-lg); }
.fc-navbar .dropdown-item { padding: .62rem .8rem; border-radius: 11px; color: var(--fc-ink); font-weight: 650; }
.fc-navbar .dropdown-item:hover, .fc-navbar .dropdown-item:focus { color: var(--fc-petrol-900); background: var(--fc-petrol-100); }
.fc-navbar .dropdown-header { color: var(--fc-muted); font-weight: 800; }
.fc-navbar .navbar-toggler { border: 1px solid rgba(217, 247, 245, .28); background: rgba(217, 247, 245, .10); box-shadow: none !important; }
.fc-navbar .navbar-toggler-icon { filter: invert(92%) sepia(20%) saturate(437%); }
.fc-season-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .48rem .76rem; border-radius: 999px; color: var(--fc-petrol-950); background: linear-gradient(135deg, #e8f8fa, var(--fc-cream)); font-size: .78rem; font-weight: 850; white-space: nowrap; }
.fc-user-toggle { display: inline-flex; align-items: center; gap: .55rem; background: rgba(217, 247, 245, .10); border: 1px solid rgba(217, 247, 245, .16); }
.fc-user-toggle .avatar-sm { border: 2px solid var(--fc-cream); border-radius: 999px !important; }
.fc-user-name { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.fc-main { position: relative; }
.fc-container { max-width: 1400px; position:relative; margin: 0 auto; padding: 2rem 1.25rem 3.5rem; }
.fc-container::before { content:""; position:absolute; z-index:0; top:.75rem; right:1.5rem; width:112px; height:145px; background:url("../img/calcio_illustration_hover.png") center 14%/cover no-repeat; border-radius:24px; opacity:.13; filter:saturate(.75) contrast(1.08); pointer-events:none; }
.fc-container > * { position:relative; z-index:1; }
.fc-page-index .fc-container::before { display:none; }
.fc-container > .fc-eyebrow:first-child,.fc-container > .fc-title:nth-child(2),.fc-container > .fc-lead:nth-child(3) { padding-right:130px; }
.fc-eyebrow { margin-bottom: .55rem; color: var(--fc-copper-dark); font-size: .78rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.fc-title { margin: 0; color: var(--fc-petrol-950); font-weight: 900; letter-spacing: -.035em; }
.fc-lead { max-width: 720px; color: var(--fc-muted); }

.fc-hero { position: relative; min-height: 350px; overflow: hidden; padding: clamp(1.6rem, 4vw, 3.5rem); border: 1px solid rgba(217, 247, 245, .18); border-radius: 30px; color: #f7fcfd; background: linear-gradient(125deg, var(--fc-petrol-950), var(--fc-petrol-800)); box-shadow: var(--fc-shadow-lg); }
.fc-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 75% 40%, rgba(56, 174, 187, .22), transparent 28%), linear-gradient(90deg, transparent 50%, rgba(217, 247, 245, .08)); pointer-events: none; }
.fc-hero::after { content:""; position:absolute; z-index:1; top:-16%; right:2%; width:min(32%,300px); height:132%; background:url("../img/calcio_illustration_hover.png") center 18%/cover no-repeat; opacity:.26; filter:saturate(.65) contrast(1.08); mask-image:linear-gradient(to left,#000 66%,transparent 100%); pointer-events:none; }
.fc-hero-copy { position: relative; z-index: 2; max-width: 690px; }
.fc-hero .fc-eyebrow { color: var(--fc-cream); }
.fc-hero h1 { max-width: 650px; font-size: clamp(2.35rem, 5vw, 5rem); font-weight: 950; line-height: .93; letter-spacing: -.055em; }
.fc-hero p { max-width: 560px; color: rgba(241, 252, 253, .78); font-size: 1.05rem; }
.fc-hero-art { position: absolute; z-index: 1; right: clamp(-55px, 1vw, 10px); bottom: -35px; width: min(38%, 400px); height: 118%; object-fit: cover; object-position: 50% 16%; opacity: .82; mix-blend-mode: luminosity; mask-image: linear-gradient(to left, #000 60%, transparent 100%); }
.fc-status-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .78rem; border: 1px solid rgba(217, 247, 245, .25); border-radius: 999px; color: var(--fc-cream); background: rgba(217, 247, 245, .09); font-size: .82rem; font-weight: 800; }
.fc-btn-primary { border: 0; color: #f7fcfd; background: linear-gradient(135deg, var(--fc-petrol-700), var(--fc-copper)); box-shadow: 0 10px 24px rgba(3, 31, 41, .18); font-weight: 850; }
.fc-btn-primary:hover { color: #fff; background: linear-gradient(135deg,var(--fc-petrol-800),var(--fc-copper-dark)); transform: translateY(-2px); }
.fc-btn-outline { border: 1px solid rgba(217, 247, 245, .35); color: #f7fcfd; font-weight: 800; }
.fc-btn-outline:hover { color: var(--fc-petrol-950); background: var(--fc-cream); }

.fc-card { padding: 1.35rem; border: 1px solid var(--fc-border); border-radius: 22px; background: rgba(248, 252, 253, .94); box-shadow: var(--fc-shadow); }
.fc-card-title { margin-bottom: .35rem; color: var(--fc-petrol-950); font-weight: 850; }
.fc-card p { color: var(--fc-muted); }
.fc-icon { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border-radius: 14px; color: var(--fc-cream); background: linear-gradient(135deg, var(--fc-petrol-700), var(--fc-petrol-900)); box-shadow: 0 10px 22px rgba(7, 31, 36, .16); }
.fc-icon.fc-icon-copper { background: linear-gradient(135deg, var(--fc-copper), var(--fc-copper-dark)); }
.fc-link-card { display: block; color: inherit; text-decoration: none; }
.fc-link-card:hover { color: inherit; transform: translateY(-4px); box-shadow: var(--fc-shadow-lg); }
.fc-link-card .bi-arrow-up-right { color: var(--fc-copper-dark); }
.fc-section-title { color: var(--fc-petrol-950); font-size: 1.35rem; font-weight: 900; letter-spacing: -.02em; }
.fc-soft-panel { border: 1px dashed rgba(18, 63, 70, .24); border-radius: 18px; background: rgba(220, 233, 231, .42); }
.fc-club-editor { position: sticky; top: calc(var(--fc-navbar-h) + 1rem); }
.fc-club-logo-preview { position: relative; width: 112px; height: 112px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--fc-border); border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 6px rgba(220, 233, 231, .34); }
.fc-club-logo-preview img { position: relative; z-index: 2; width: 88px; height: 88px; object-fit: contain; }
.fc-club-logo-preview span { position: absolute; color: var(--fc-muted); font-size: 2.2rem; }
.fc-club-logo-preview.is-empty img, .fc-club-logo-preview.has-error img { display: none; }
.fc-club-logo-preview.has-error { border-color: rgba(220, 53, 69, .42); background: rgba(220, 53, 69, .06); }
.fc-club-crest { width: 46px; height: 46px; flex: 0 0 46px; object-fit: contain; padding: 4px; border: 1px solid var(--fc-border); border-radius: 13px; background: #fff; }
.fc-club-crest-empty { display: inline-flex; align-items: center; justify-content: center; color: var(--fc-muted); background: rgba(220, 233, 231, .42); }
.fc-match-crest { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; object-fit: contain; padding: 4px; border: 1px solid var(--fc-border); border-radius: 14px; background: #fff; box-shadow: 0 6px 15px rgba(7, 31, 36, .08); }
.fc-match-crest-sm { width: 42px; height: 42px; }
.fc-match-crest-lg { width: 74px; height: 74px; padding: 7px; border-radius: 20px; }
.fc-match-crest-empty { color: var(--fc-muted); background: rgba(220, 233, 231, .48); }
.fc-dashboard-fixture { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: .65rem; }
.fc-dashboard-team { min-width: 0; display: flex; align-items: center; gap: .6rem; }
.fc-dashboard-team strong { overflow: hidden; text-overflow: ellipsis; line-height: 1.15; }
.fc-dashboard-team-away { justify-content: flex-end; text-align: right; }
.fc-dashboard-team.is-qualified { color:#146b52; }
.fc-dashboard-team.is-qualified strong { padding:.25rem .42rem; border:1px solid rgba(31,143,105,.32); border-radius:8px; background:linear-gradient(135deg,#e1f7ed,#c8efdc); box-shadow:0 3px 10px rgba(31,143,105,.12); }
.fc-dashboard-team.is-qualified > i { flex:0 0 auto; color:#18835f; font-size:.85rem; }
.fc-dashboard-separator { color: var(--fc-copper-dark); font-size: 1.2rem; font-weight: 900; }
.fc-prediction-matchup { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; gap: 1rem; padding: 1rem; border: 1px solid var(--fc-border); border-radius: 20px; background: linear-gradient(135deg, rgba(220, 238, 241, .58), rgba(200, 232, 237, .34)); }
.fc-prediction-team { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .4rem; text-align: center; }
.fc-prediction-team strong { line-height: 1.15; }
.fc-prediction-team small { color: var(--fc-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.fc-match-vs { align-self: center; color: var(--fc-copper-dark); font-size: .8rem; font-weight: 950; letter-spacing: .08em; }
.fc-live-score { display: inline-flex; align-items: center; gap: .42rem; margin-top: .65rem; padding: .32rem .7rem; border-radius: 999px; background: #d9f7eb; color: #0e6650; font-size: .78rem; font-weight: 900; letter-spacing: .025em; }
.fc-live-score .bi { color: #d94841; animation: fc-live-pulse 1.2s ease-in-out infinite; }
@keyframes fc-live-pulse { 50% { opacity: .32; transform: scale(.84); } }
.fc-api-panel { border-left: 5px solid var(--fc-petrol-700); }
.fc-result-chip { display: inline-flex; align-items: center; padding: .3rem .62rem; border: 1px solid var(--fc-border); border-radius: 999px; font-size: .75rem; font-weight: 850; }
.fc-result-chip.is-ok { color: #175f4a; background: #dff5e9; border-color: rgba(23, 95, 74, .2); }
.fc-result-chip.is-warning { color: #185b77; background: #dcecf8; border-color: rgba(24, 91, 119, .2); }
.fc-result-chip.is-muted { color: var(--fc-muted); background: #edf0ef; }
.fc-result-chip.is-source { color: var(--fc-petrol-800); background: var(--fc-petrol-100); }
.fc-pigrobot-badge { display: inline-flex; align-items: center; gap: .25rem; margin-left: .35rem; padding: .16rem .45rem; border: 1px solid rgba(24,91,119,.2); border-radius: 999px; color: #185b77; background: #dcecf8; font-size: .7rem; font-style: normal; font-weight: 850; line-height: 1.2; vertical-align: middle; white-space: nowrap; }
.fc-pigrobot-badge i { font-size: .78rem; }
.fc-result-counts { display: grid; gap: .2rem; color: var(--fc-muted); font-size: .85rem; }
.fc-result-counts strong { color: var(--fc-petrol-900); }
.fc-result-card { border-left: 5px solid var(--fc-copper); }
.fc-result-entry { display: grid; grid-template-columns: minmax(150px, 1fr) 82px auto 82px minmax(150px, 1fr) minmax(190px, .75fr) auto; align-items: center; gap: .8rem; padding: 1.1rem; border-radius: 20px; background: linear-gradient(135deg, rgba(220, 238, 241, .58), rgba(197, 229, 235, .34)); }
.fc-result-team { min-width: 0; display: flex; align-items: center; gap: .8rem; }
.fc-result-team strong { overflow: hidden; text-overflow: ellipsis; }
.fc-result-team-away { flex-direction: row-reverse; text-align: right; }
.fc-score-input { height: 58px; padding: .25rem; border: 2px solid rgba(18, 63, 70, .2); border-radius: 16px; color: var(--fc-petrol-950); background: #fff; text-align: center; font-size: 1.6rem; font-weight: 950; }
.fc-score-separator { color: var(--fc-copper-dark); font-size: 1.6rem; font-weight: 950; }
.fc-qualified-field { min-width: 0; }
.fc-result-save { min-height: 48px; white-space: nowrap; }
.fc-result-tools { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem 1rem; padding-top: 1rem; border-top: 1px solid var(--fc-border); }
.fc-result-tools form { margin: 0; }
.fc-api-id-form { width: min(270px, 100%); }
.fc-summary-card { min-height: 142px; display: flex; align-items: center; gap: 1rem; }
.fc-summary-icon { width: 52px; height: 52px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 17px; color: var(--fc-cream); background: linear-gradient(145deg, var(--fc-petrol-700), var(--fc-petrol-950)); font-size: 1.3rem; }
.fc-mini-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; }
.fc-mini-stats span { display: flex; flex-direction: column; color: var(--fc-muted); font-size: .7rem; line-height: 1.15; }
.fc-mini-stats strong { color: var(--fc-petrol-950); font-size: 1.15rem; }
.fc-mini-podium { display: flex; justify-content: space-between; gap: .5rem; color: var(--fc-muted); font-size: .78rem; }
.fc-mini-podium span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc-mini-podium strong { color: var(--fc-petrol-900); }
.fc-dashboard-result { height: 100%; padding: 1rem; border: 1px solid var(--fc-border); border-radius: 18px; background: linear-gradient(135deg, rgba(220, 238, 241, .58), rgba(196, 229, 234, .32)); }
.fc-dashboard-score { color: var(--fc-petrol-950); font-size: 1.3rem; font-weight: 950; white-space: nowrap; }
.fc-points-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 50px; padding: .35rem .65rem; border-radius: 999px; color: var(--fc-cream); background: var(--fc-petrol-900); font-size: .82rem; font-weight: 900; white-space: nowrap; }
.fc-chart-player { color: var(--fc-petrol-800); text-decoration: none; }
.fc-chart-player:hover { color: var(--fc-copper-dark); text-decoration: underline; }
.fc-chart-box { position: relative; height: 330px; margin-top: 1rem; }
.fc-chart-empty { position: absolute; inset: 0; display: grid; place-items: center; padding: 2rem; border: 1px dashed var(--fc-border); border-radius: 18px; color: var(--fc-muted); text-align: center; }
.fc-result-stat { display: flex; align-items: center; gap: 1rem; }
.fc-result-stat > i { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; color: var(--fc-cream); background: var(--fc-petrol-800); font-size: 1.25rem; }
.fc-result-stat small, .fc-result-stat strong { display: block; }
.fc-result-stat small { color: var(--fc-muted); }
.fc-result-stat strong { color: var(--fc-petrol-950); font-size: 1.7rem; }
.fc-personal-result { height: 100%; border-left: 5px solid var(--fc-petrol-700); }
.fc-personal-result.is-perfect { border-left-color: var(--fc-copper); box-shadow: 0 14px 34px rgba(56,174,187,.18); }
.fc-result-scoreboard { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 1rem; }
.fc-result-scoreboard > div { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center; }
.fc-result-scoreboard > span { color: var(--fc-petrol-950); font-size: 1.65rem; font-weight: 950; }
.fc-result-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.fc-result-comparison > div { padding: .75rem; border-radius: 14px; background: rgba(220,233,231,.45); }
.fc-result-comparison small, .fc-result-comparison strong { display: block; }
.fc-result-comparison small { color: var(--fc-muted); }
.fc-result-qualified-pick { display:inline-flex; align-items:center; gap:.25rem; margin-top:.55rem; padding:.25rem .5rem; border-radius:999px; color:#146b52; background:#dff5e9; font-size:.76rem; font-weight:750; }
.fc-result-qualified-pick.is-prediction { color:#155e75; background:#dff3f6; }
.fc-score-breakdown { display: flex; flex-wrap: wrap; gap: .45rem; }
.fc-score-breakdown span { padding: .32rem .55rem; border: 1px solid var(--fc-border); border-radius: 999px; color: var(--fc-muted); background: #fff; font-size: .75rem; }
.fc-score-breakdown strong { color: var(--fc-petrol-900); }
.fc-eye-btn { width:36px; height:36px; display:inline-grid; place-items:center; flex:0 0 auto; border-radius:50%; }
.fc-modal-content { overflow:hidden; border:1px solid var(--fc-border); border-radius:20px; box-shadow:0 24px 60px rgba(7,31,36,.24); }
.fc-modal-content .modal-header { color:var(--fc-cream); background:var(--fc-petrol-800); }
.fc-modal-content .modal-header .btn-close { filter:invert(1) grayscale(1); }
.fc-modal-content thead th { color:var(--fc-petrol-800); background:var(--fc-cream); white-space:nowrap; }
.fc-autosave-status { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .65rem .8rem; border: 1px dashed rgba(18,63,70,.25); border-radius: 14px; color: var(--fc-muted); background: rgba(220,233,231,.3); font-size: .83rem; font-weight: 750; text-align: center; }
.fc-autosave-status.is-saving { color: var(--fc-copper-dark); background: rgba(200,232,237,.48); }
.fc-autosave-status.is-saving i { animation: fc-spin .8s linear infinite; }
.fc-autosave-status.is-saved { color: #175f4a; border-style: solid; border-color: rgba(23,95,74,.2); background: #dff5e9; }
.fc-autosave-status.is-error { color: #842029; border-style: solid; border-color: rgba(132,32,41,.2); background: #f8d7da; }
@keyframes fc-spin { to { transform: rotate(360deg); } }
.fc-auto-logic { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 1rem; padding: 1.1rem; border: 1px solid var(--fc-border); border-radius: 22px; background: rgba(248,252,253,.82); }
.fc-auto-logic > div { display: grid; grid-template-columns: auto 1fr; gap: .1rem .7rem; align-items: center; }
.fc-auto-logic > div > span { grid-row: 1 / 3; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 13px; color: var(--fc-cream); background: var(--fc-petrol-900); font-weight: 900; }
.fc-auto-logic strong, .fc-auto-logic small { display: block; }
.fc-auto-logic small { color: var(--fc-muted); }
.fc-auto-logic > i { color: var(--fc-copper); font-size: 1.35rem; }
.fc-cup-builder { overflow: hidden; }
.fc-plan-stat { height: 100%; padding: 1rem; border-radius: 17px; background: rgba(220,233,231,.45); }
.fc-plan-stat small, .fc-plan-stat strong { display: block; }
.fc-plan-stat small { color: var(--fc-muted); }
.fc-plan-stat strong { color: var(--fc-petrol-950); font-size: 1.8rem; }
.fc-cup-plan { display: flex; align-items: stretch; gap: .65rem; overflow-x: auto; padding: .35rem .1rem 1rem; }
.fc-cup-plan-stage { min-width: 215px; flex: 1 0 215px; overflow: hidden; border: 1px solid var(--fc-border); border-radius: 18px; background: #fff; }
.fc-cup-stage-head { display: flex; align-items: center; gap: .65rem; padding: .8rem; color: var(--fc-cream); background: var(--fc-petrol-800); }
.fc-cup-plan-stage.is-ranking .fc-cup-stage-head { background: var(--fc-copper-dark); }
.fc-cup-plan-stage.is-final .fc-cup-stage-head { background: linear-gradient(135deg,var(--fc-petrol-800),var(--fc-copper)); }
.fc-cup-stage-head > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: rgba(255,255,255,.12); }
.fc-cup-stage-head small, .fc-cup-stage-head strong { display: block; }
.fc-cup-stage-head small { opacity: .7; font-size: .65rem; letter-spacing: .1em; }
.fc-cup-stage-body { display: flex; flex-direction: column; gap: .35rem; padding: .8rem; }
.fc-cup-stage-body small { color: var(--fc-muted); }
.fc-source-ids { color: var(--fc-copper-dark); font-size: .68rem; word-break: break-word; }
.fc-cup-plan-arrow { align-self: center; color: var(--fc-copper); font-size: 1.3rem; }
.fc-cup-hero { min-height: 250px; }
.fc-phase-progress { margin-top: .7rem; color: var(--fc-muted); font-size: .82rem; }
.fc-phase-progress > div { height: 6px; overflow: hidden; margin-top: .4rem; border-radius: 999px; background: var(--fc-petrol-100); }
.fc-phase-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--fc-copper),var(--fc-petrol-700)); }
.fc-cup-ranking .list-group-item { margin-bottom: .3rem; border: 0; border-radius: 10px; }
.fc-ranking-direct { background: #dff5e9 !important; box-shadow: inset 4px 0 #23865f; }
.fc-ranking-preliminary { background: #dcecf8 !important; box-shadow: inset 4px 0 #388fb4; }
.fc-ranking-legend { display: flex; flex-wrap: wrap; gap: .45rem; color: var(--fc-muted); font-size: .75rem; }
.fc-ranking-legend span::before { content:""; width: 9px; height: 9px; display: inline-block; margin-right: .35rem; border-radius: 3px; }
.fc-ranking-legend .is-direct::before { background:#23865f; }
.fc-ranking-legend .is-preliminary::before { background:#388fb4; }
.fc-bracket { display: flex; align-items: flex-start; gap: 2.2rem; overflow-x: auto; min-height: 760px; position: relative; padding: .25rem .25rem 1rem; background: linear-gradient(135deg,rgba(220,238,241,.44),rgba(196,228,234,.28)); border-radius: 18px; }
.fc-bracket-connectors { position:absolute; inset:0; z-index:1; overflow:visible; pointer-events:none; }
.fc-bracket-connectors path { fill:none; stroke:rgba(29,89,96,.48); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.fc-bracket-round { min-width: 240px; flex: 1 0 240px; position: relative; z-index:2; }
.fc-bracket-round-title { min-height: 86px; margin-bottom: .75rem; padding: .7rem; border-radius: 14px; color: var(--fc-cream); background: var(--fc-petrol-800); }
.fc-bracket-round-title small,.fc-bracket-round-title strong,.fc-bracket-round-title span { display: block; }
.fc-bracket-round-title span { margin-top:.35rem; color:rgba(241,252,253,.74); font-size:.72rem; }
.fc-bracket-duels { display:flex; flex-direction:column; padding-top:calc((pow(2,var(--round-depth)) - 1) * 59px); gap:max(14px,calc((pow(2,var(--round-depth)) * 118px) - 104px)); }
.fc-bracket-round.is-preliminary-round .fc-bracket-duels { display:grid; grid-template-rows:repeat(var(--main-duels),104px); gap:14px; padding-top:0; }
.fc-bracket-round.is-preliminary-round .fc-bracket-duel { grid-row:var(--pre-target); }
.fc-bracket-duel { min-height:104px; position:relative; padding: .65rem; border: 1px solid var(--fc-border); border-radius: 14px; background: #fff; box-shadow: 0 8px 20px rgba(7,31,36,.08); }
.fc-bracket-duel > div { min-width:0; display: flex; justify-content: space-between; gap: .5rem; padding: .35rem; }
.fc-bracket-duel > div > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-bracket-duel > div > strong { flex:0 0 auto; }
.fc-bracket-duel > div + div { border-top: 1px solid var(--fc-border); }
.fc-bracket-duel.is-finished { border-color: rgba(35,134,95,.3); }
.fc-bracket-duel.is-running { border-color: rgba(216,155,49,.48); box-shadow: 0 8px 22px rgba(216,155,49,.12); }
.fc-bracket-duel > div.is-winner { margin-inline: -.3rem; padding-inline: .65rem; border-radius: 9px; color: #11543f; background: #dff5e9; font-weight: 900; }
.fc-bracket-duel > div.is-loser { color: var(--fc-muted); opacity: .68; }
.fc-duel-status { position:absolute; z-index:2; top:-10px; right:10px; padding:.18rem .48rem; border:1px solid rgba(56,143,180,.3); border-radius:999px; color:#185b77; background:#dcecf8; font-size:.62rem; font-weight:850; white-space:nowrap; }
.fc-duel-status.is-final { color:#175f4a; border-color:rgba(23,95,74,.22); background:#dff5e9; }
.fc-avatar { flex:0 0 auto; object-fit:cover; border:2px solid rgba(18,63,70,.16) !important; background:#fff; }
.fc-cup-avatar { width:28px; height:28px; margin-right:.45rem; vertical-align:middle; }
.fc-cup-team-logo { width:28px; height:28px; margin-right:.45rem; vertical-align:middle; object-fit:contain; padding:2px; border-radius:8px; background:#fff; border:1px solid rgba(18,63,70,.16); }
.fc-dashboard-avatar { box-shadow:0 7px 16px rgba(7,31,36,.16); }
.fc-ranking-card-head { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.2rem; border-bottom:1px solid var(--fc-border); background:linear-gradient(180deg,#f8fcfd,#e8f4f6); }
.fc-ranking-card-head small { color:var(--fc-muted); }
.fc-ranking-table thead th { padding:.8rem; color:var(--fc-cream); background:var(--fc-petrol-800); border:0; white-space:nowrap; }
.fc-ranking-table tbody td,.fc-ranking-table tbody th { padding:.72rem .8rem; border-color:var(--fc-border); }
.fc-ranking-table tr.is-current-user > * { background:rgba(199,232,237,.58); }
.fc-ranking-user { display:inline-flex; align-items:center; gap:.65rem; color:var(--fc-petrol-900); text-decoration:none; font-weight:850; }
.fc-rank-number { width:34px; height:34px; display:inline-grid; place-items:center; border-radius:999px; color:var(--fc-petrol-900); background:var(--fc-petrol-100); font-weight:900; }
.fc-ranking-points { display:inline-flex; min-width:52px; justify-content:center; padding:.35rem .6rem; border-radius:999px; color:var(--fc-cream); background:var(--fc-petrol-900); }
.fc-btn-dark { min-height:50px; border:0; border-radius:15px; color:var(--fc-cream); background:linear-gradient(135deg,var(--fc-petrol-800),var(--fc-petrol-950)); font-weight:850; }
.fc-btn-dark:disabled { opacity:.48; }
.fc-chart-card .fc-chart-box { height:275px; }
.fc-team-podium { min-height:420px; overflow:hidden; }
.fc-podium-stage { min-height:310px; display:flex; align-items:flex-end; justify-content:center; gap:.45rem; padding-top:1rem; }
.fc-podium-team { width:31%; display:flex; flex-direction:column; align-items:center; gap:.35rem; padding:.75rem .35rem 0; border:0; border-radius:18px 18px 6px 6px; color:var(--fc-ink); background:linear-gradient(180deg,#fff,#e9ddc3); }
.fc-podium-team.is-1 { order:2; min-height:250px; background:linear-gradient(180deg,#fff3bd,#d9a82e); }
.fc-podium-team.is-2 { order:1; min-height:205px; background:linear-gradient(180deg,#f5f6f7,#aeb8c0); }
.fc-podium-team.is-3 { order:3; min-height:175px; background:linear-gradient(180deg,#f8dfc7,#b87333); }
.fc-podium-team .fc-team-logo { width:58px; height:58px; }
.fc-podium-team b { margin-top:auto; font-size:2rem; }
.fc-podium-team strong { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; }
.fc-team-logo { width:46px; height:46px; display:grid; place-items:center; flex:0 0 auto; overflow:hidden; border-radius:14px; color:var(--fc-cream); background:var(--fc-petrol-800); }
.fc-team-logo img { width:100%; height:100%; object-fit:contain; padding:4px; background:#fff; }
.fc-team-list { display:flex; flex-direction:column; }
.fc-team-row { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto auto; align-items:center; gap:.75rem; padding:.85rem 1rem; border:0; border-bottom:1px solid var(--fc-border); color:var(--fc-ink); background:rgba(248,252,253,.94); text-align:left; }
.fc-team-row:hover,.fc-team-row.active { background:var(--fc-petrol-100); }
.fc-team-row-name,.fc-team-row-points { display:flex; flex-direction:column; min-width:0; }
.fc-team-row-name strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-team-row-name small,.fc-team-row-points small { color:var(--fc-muted); }
.fc-team-row-points { text-align:right; }
.fc-team-row-points strong { font-size:1.25rem; }
.fc-team-detail-head { display:flex; align-items:center; gap:.8rem; }
.fc-team-detail-head h2 { margin:0; font-size:1.25rem; font-weight:900; }
.fc-team-members { display:flex; flex-direction:column; gap:.5rem; }
.fc-team-members > div { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.55rem; padding:.6rem; border-radius:13px; background:rgba(220,233,231,.35); }
.fc-team-members > div.is-counted { box-shadow:inset 4px 0 var(--fc-copper); background:rgba(199,232,237,.46); }
.fc-team-members span:nth-child(2) { display:flex; flex-direction:column; min-width:0; }
.fc-team-members small { color:var(--fc-muted); font-size:.68rem; }
.fc-member-avatar { width:38px; height:38px; }
.fc-member-avatar img { width:38px !important; height:38px !important; }
@media (min-width:1200px) {
  .fc-ranking-sticky,.fc-team-sticky { position:sticky; top:calc(var(--fc-navbar-h) + 1rem); }
}
.fc-dashboard-hero { min-height:300px; position:relative; display:grid; grid-template-columns:175px minmax(0,1fr) 280px; align-items:center; gap:1.6rem; overflow:hidden; padding:1.6rem 2rem; border-radius:30px; color:#f7fcfd; background:linear-gradient(120deg,var(--fc-petrol-950),var(--fc-petrol-700) 62%,#218d9c); box-shadow:var(--fc-shadow-lg); }
.fc-dashboard-hero::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 82% 10%,rgba(255,255,255,.18),transparent 18rem); pointer-events:none; }
.fc-dashboard-hero-art { position:absolute; z-index:1; right:20px; bottom:-100px; width:280px; opacity:.3; mix-blend-mode:luminosity; }
.fc-dashboard-profile,.fc-dashboard-welcome,.fc-dashboard-actions { position:relative; z-index:2; }
.fc-dashboard-profile { display:flex; flex-direction:column; align-items:center; gap:.65rem; }
.fc-dashboard-profile-avatar { width:148px !important; height:148px !important; display:grid; place-items:center; border:7px solid rgba(241,252,253,.94) !important; border-radius:50%; background:var(--fc-cream); box-shadow:0 16px 30px rgba(0,0,0,.22); font-size:3rem; }
.fc-dashboard-profile a { color:var(--fc-cream); text-decoration:none; font-weight:800; }
.fc-dashboard-kicker,.fc-dashboard-event { display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .8rem; border:1px solid rgba(255,255,255,.2); border-radius:999px; background:rgba(255,255,255,.1); font-size:.8rem; font-weight:850; }
.fc-dashboard-welcome h1 { margin:.85rem 0 .35rem; font-size:clamp(2rem,3vw,3rem); font-weight:950; letter-spacing:-.04em; }
.fc-dashboard-welcome p { max-width:680px; margin-bottom:1rem; color:rgba(241,252,253,.8); }
.fc-dashboard-actions { display:grid; gap:.65rem; }
.fc-dashboard-actions a,.fc-dashboard-actions button { width:100%; display:flex; align-items:center; justify-content:center; gap:.55rem; min-height:54px; border:1px solid rgba(255,255,255,.28); border-radius:15px; color:var(--fc-petrol-950); background:#f7fcfd; text-decoration:none; font-weight:900; }
.fc-dashboard-actions a:nth-child(2) { color:#f7fcfd; background:rgba(255,255,255,.11); }
.fc-dashboard-actions .is-dark { color:var(--fc-cream); background:var(--fc-petrol-950); }
.fc-dashboard-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:1.25rem; }
.fc-dashboard-grid > .fc-card { min-width:0; }
.fc-dash-card-head { display:flex; align-items:center; justify-content:space-between; gap:.65rem; margin-bottom:1rem; }
.fc-dash-card-head h2 { display:flex; align-items:center; gap:.5rem; margin:0; color:var(--fc-petrol-950); font-size:1.15rem; font-weight:900; }
.fc-dash-card-head a { color:var(--fc-copper-dark); font-size:.82rem; font-weight:800; text-decoration:none; }
.fc-dash-ranking-row,.fc-dash-team-row { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; align-items:center; gap:.55rem; padding:.52rem 0; border-bottom:1px solid var(--fc-border); }
.fc-dash-team-row { grid-template-columns:auto auto minmax(0,1fr) auto; }
.fc-dash-ranking-row strong,.fc-dash-team-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fc-dash-football-match { padding:.72rem 0; border-bottom:1px solid var(--fc-border); }
.fc-dash-football-match small { color:var(--fc-muted); }
.fc-dash-football-match > div { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.45rem; margin-top:.25rem; }
.fc-dash-football-match > div span:last-child { text-align:right; }
.fc-dash-football-match em { display:block; margin-top:.3rem; color:var(--fc-copper-dark); font-size:.75rem; font-style:normal; font-weight:800; text-align:right; }
.fc-dash-cup-match { margin-bottom:.7rem; padding:.7rem; border:1px solid var(--fc-border); border-radius:14px; background:rgba(220,233,231,.32); }
.fc-dash-cup-match > small { display:block; margin-bottom:.35rem; color:var(--fc-muted); }
.fc-dash-cup-match > div { display:flex; justify-content:space-between; gap:.5rem; padding:.28rem .35rem; border-radius:8px; }
.fc-dash-cup-match > div + div { border-top:1px solid var(--fc-border); }
.fc-dash-cup-match > div.is-winner { color:#175f4a; background:#dff5e9; font-weight:900; }
.fc-dash-chat { max-height:300px; overflow:auto; }
.fc-dash-chat > div { display:flex; align-items:flex-start; gap:.55rem; padding:.55rem 0; border-bottom:1px solid var(--fc-border); }
.fc-dash-chat p { display:grid; flex:1; margin:0; }
.fc-dash-chat p small { color:var(--fc-muted); }
.fc-dash-chat p span { margin-top:.2rem; }
.fc-dash-empty { padding:1.2rem; border:1px dashed var(--fc-border); border-radius:14px; color:var(--fc-muted); text-align:center; }
.fc-dash-cups { display:flex; flex-direction:column; gap:1.25rem; }
.fc-dash-cups > section { position:static; display:block; width:100%; overflow:visible; }
.fc-dash-cups > section + section { margin:0; padding-top:1.25rem; border-top:2px solid var(--fc-border); }
.fc-dash-football-match em.is-played { color:#175f4a; }
.fc-predicted-qualifier { display:inline-flex; align-items:center; gap:.18rem; margin-left:.35rem; padding:.12rem .38rem; border-radius:999px; color:#125841; background:#dff5e9; white-space:nowrap; }
.fc-dash-football-match em.is-missing { display:inline-flex; justify-content:flex-end; align-items:center; gap:.3rem; color:#9a3412; }
.fc-bet-distribution,.fc-dash-result-meta { display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:.35rem !important; margin-top:.55rem !important; }
.fc-bet-distribution span,.fc-dash-result-meta span { padding:.35rem .25rem; border-radius:9px; color:var(--fc-muted); background:rgba(220,233,231,.52); font-size:.7rem; text-align:center !important; }
.fc-bet-distribution b,.fc-dash-result-meta b { color:var(--fc-petrol-900); }
.fc-bet-distribution b { font-size:.9rem; }
.fc-live-dashboard { border:1px solid rgba(18,123,122,.28); background:linear-gradient(135deg,#f7fffe,#e5f7f4); }
.fc-live-dashboard .fc-dash-card-head span { color:var(--fc-muted); font-size:.78rem; font-weight:700; }
.fc-live-refresh-meta { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.45rem 1rem; text-align:right; }
.fc-live-refresh-meta b { color:var(--fc-petrol-800); font-variant-numeric:tabular-nums; }
.fc-live-dashboard-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:.75rem; }
.fc-live-dashboard-match { padding:.8rem; border:1px solid #b9e2da; border-radius:14px; background:#fff; }
.fc-live-dashboard-status { display:inline-flex; align-items:center; gap:.3rem; margin-bottom:.5rem; color:#c53636; font-size:.72rem; font-weight:950; }
.fc-live-dashboard-status .bi { animation:fc-live-pulse 1.1s ease-in-out infinite; }
.fc-live-dashboard-match > div { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.4rem; }
.fc-live-dashboard-match > div span { min-width:0; display:flex; align-items:center; gap:.45rem; }
.fc-live-dashboard-match > div span:last-child { justify-content:flex-end; text-align:right; }
.fc-live-dashboard-match img { width:30px; height:30px; object-fit:contain; padding:2px; border:1px solid var(--fc-border); border-radius:9px; background:#fff; }
.fc-live-dashboard-match > div b { color:var(--fc-petrol-950); font-size:1.12rem; }
.fc-dash-football-match.is-exact { margin-inline:-.45rem; padding-inline:.45rem; border:1px solid rgba(56,174,187,.3); border-radius:13px; background:linear-gradient(135deg,#ddf5f5,#f8fcfd); }
.fc-community-result-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; }
.fc-community-result-stats > div { display:flex; flex-direction:column; padding:.75rem; border:1px solid var(--fc-border); border-radius:14px; background:rgba(220,233,231,.4); }
.fc-community-result-stats small,.fc-community-result-stats span { color:var(--fc-muted); }
.fc-community-result-stats strong { color:var(--fc-petrol-900); font-size:1.35rem; }
.fc-community-result-stats span { font-size:.7rem; }
.fc-perfect-callout { display:inline-flex; align-items:center; gap:.4rem; margin-top:.75rem; padding:.38rem .7rem; border-radius:999px; color:#0d6070; background:#d8f2f3; font-size:.78rem; font-weight:900; }
@media (max-width:575.98px) {
  .fc-container::before { width:78px; height:105px; right:.8rem; opacity:.1; }
  .fc-container > .fc-eyebrow:first-child,.fc-container > .fc-title:nth-child(2),.fc-container > .fc-lead:nth-child(3) { padding-right:78px; }
  .fc-community-result-stats { grid-template-columns:1fr; }
}
@media (max-width:1199.98px) {
  .fc-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fc-dashboard-hero { grid-template-columns:135px minmax(0,1fr); }
  .fc-dashboard-profile-avatar { width:118px !important; height:118px !important; }
  .fc-dashboard-actions { grid-column:1/-1; grid-template-columns:repeat(3,1fr); }
}
@media (max-width:767.98px) {
  .fc-dashboard-hero { grid-template-columns:1fr; padding:1.3rem; text-align:center; }
  .fc-dashboard-welcome p { margin-inline:auto; }
  .fc-dashboard-actions { grid-template-columns:1fr; }
  .fc-dashboard-grid { grid-template-columns:1fr; }
  .fc-dashboard-hero-art { right:-80px; opacity:.16; }
}
.fc-placeholder { max-width: 980px; min-height: 490px; display: grid; place-items: center; margin: 0 auto; padding: clamp(2rem, 7vw, 5rem); text-align: center; border: 1px solid var(--fc-border); border-radius: 28px; background: rgba(248, 252, 253, .92); box-shadow: var(--fc-shadow-lg); }
.fc-placeholder-icon { width: 86px; height: 86px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; border-radius: 26px; color: var(--fc-cream); background: linear-gradient(145deg, var(--fc-petrol-700), var(--fc-petrol-950)); box-shadow: 0 18px 34px rgba(7, 31, 36, .22); font-size: 2.1rem; }
.fc-placeholder h1 { color: var(--fc-petrol-950); font-weight: 950; letter-spacing: -.04em; }
.fc-placeholder p { max-width: 610px; margin: .75rem auto 1.5rem; color: var(--fc-muted); }
.fc-progress-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .48rem .78rem; border-radius: 999px; color: var(--fc-copper-dark); background: rgba(56, 174, 187, .14); font-size: .82rem; font-weight: 850; }

.fc-footer { margin-top: auto; color: rgba(241, 252, 253, .74); background: var(--fc-petrol-950); border-top: 1px solid rgba(217, 247, 245, .14); }
.fc-footer-inner { max-width: 1400px; margin: 0 auto; min-height: 74px; padding: .85rem 1.35rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.fc-footer strong { color: var(--fc-cream); }
.fc-footer a { color: rgba(241, 252, 253, .74); text-decoration: none; }
.fc-footer a:hover { color: var(--fc-cream); }

@media (max-width: 1399.98px) {
  .fc-season-badge { display: none; }
  .fc-navbar .nav-link { padding-inline: .62rem !important; }
}

@media (max-width: 991.98px) {
  .fc-club-editor { position: static; }
  .fc-navbar .navbar-collapse { margin-top: .85rem; padding: .9rem; border: 1px solid rgba(217, 247, 245, .14); border-radius: 18px; background: var(--fc-petrol-900); box-shadow: var(--fc-shadow-lg); }
  .fc-season-badge { display: inline-flex; margin-top: .4rem; }
  .fc-hero-art { right: -80px; width: 48%; opacity: .55; }
  .fc-result-entry { grid-template-columns: minmax(110px, 1fr) 70px auto 70px minmax(110px, 1fr); }
  .fc-qualified-field { grid-column: 1 / 4; }
  .fc-result-save { grid-column: 4 / 6; }
  .fc-auto-logic { grid-template-columns: 1fr; }
  .fc-auto-logic > i { transform: rotate(90deg); justify-self: center; }
}

@media (max-width: 575.98px) {
  .fc-container { padding: 1.15rem .85rem 2.5rem; }
  .fc-brand-text { font-size: .94rem; letter-spacing: .02em; }
  .fc-brand-logo, .fc-home-link { width: 38px; height: 38px; }
  .fc-hero { min-height: 500px; border-radius: 24px; }
  .fc-hero-copy { text-align: center; }
  .fc-hero h1 { font-size: 2.7rem; }
  .fc-hero-art { right: 0; bottom: -135px; width: 100%; height: 76%; opacity: .25; mask-image: linear-gradient(to bottom, transparent, #000 35%); }
  .fc-footer-inner { flex-direction: column; text-align: center; }
  .fc-match-crest-sm { width: 36px; height: 36px; }
  .fc-match-crest-lg { width: 62px; height: 62px; }
  .fc-dashboard-fixture { gap: .4rem; }
  .fc-dashboard-team { gap: .4rem; font-size: .9rem; }
  .fc-prediction-matchup { gap: .55rem; padding: .8rem .55rem; }
  .fc-prediction-team { font-size: .92rem; }
  .fc-summary-card { min-height: 122px; }
  .fc-result-comparison { grid-template-columns: 1fr; }
  .fc-result-entry { grid-template-columns: 1fr 58px auto 58px 1fr; gap: .4rem; padding: .8rem .55rem; }
  .fc-result-team { flex-direction: column; gap: .35rem; text-align: center; font-size: .82rem; }
  .fc-result-team-away { flex-direction: column; }
  .fc-result-team .fc-match-crest-lg { width: 52px; height: 52px; }
  .fc-score-input { height: 50px; font-size: 1.25rem; }
  .fc-qualified-field, .fc-result-save { grid-column: 1 / -1; }
}
