/* Futebol Viseu · Competition Hub 2026/27 · design override */
:root{
  --fv402-navy:#071827;
  --fv402-navy-2:#0b2638;
  --fv402-green:#78c800;
  --fv402-green-dark:#4d8d00;
  --fv402-bg:#f3f6f9;
  --fv402-card:#fff;
  --fv402-line:#dfe6ed;
  --fv402-text:#142235;
  --fv402-muted:#687587;
  --fv402-shadow:0 12px 34px rgba(15,34,51,.075);
}
body.fv223-league-page{background:var(--fv402-bg)!important;color:var(--fv402-text)!important}
body.fv223-league-page .fv-comp-hero.fv143-simple-hero{
  margin:0!important;border:0!important;border-bottom:3px solid var(--fv402-green)!important;
  background:linear-gradient(120deg,#061521 0%,#082638 62%,#0d342a 100%)!important;
  box-shadow:none!important;overflow:hidden!important;position:relative!important
}
body.fv223-league-page .fv-comp-hero.fv143-simple-hero:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 82% 30%,rgba(120,200,0,.14),transparent 31%),linear-gradient(90deg,rgba(255,255,255,.025),transparent 42%)
}
body.fv223-league-page .fv-comp-hero.fv143-simple-hero .fv-wrap{padding-top:22px!important;padding-bottom:22px!important}
body.fv223-league-page .fv281-hero-inner{min-height:76px!important;gap:18px!important;position:relative!important;z-index:1!important}
body.fv223-league-page .fv281-comp-logo{width:70px!important;height:70px!important;object-fit:contain!important;border-radius:16px!important;padding:7px!important;background:#fff!important;border:1px solid rgba(255,255,255,.28)!important;box-shadow:0 12px 30px rgba(0,0,0,.22)!important}
body.fv223-league-page .fv143-simple-copy h1{color:#fff!important;font-size:clamp(28px,3.2vw,44px)!important;letter-spacing:-.04em!important;line-height:1.03!important;margin:0!important}

.fv402-comp-nav{display:flex!important;grid-template-columns:none!important;gap:8px!important;overflow-x:auto!important;scrollbar-width:none!important;margin-top:14px!important;margin-bottom:14px!important;padding:5px!important;border:1px solid var(--fv402-line)!important;border-radius:16px!important;background:rgba(255,255,255,.94)!important;box-shadow:0 7px 24px rgba(15,34,51,.045)!important;position:sticky!important;top:72px!important;z-index:50!important}
.fv402-comp-nav::-webkit-scrollbar{display:none!important}
.fv402-comp-nav a{flex:0 0 auto!important;max-width:none!important;min-height:39px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:9px 14px!important;border-radius:11px!important;border:0!important;background:transparent!important;color:#415064!important;font-size:12px!important;font-weight:900!important;text-decoration:none!important;white-space:nowrap!important}
.fv402-comp-nav a:hover{background:#edf3f7!important;color:#102033!important}
.fv402-comp-nav a.active{background:var(--fv402-navy)!important;color:#fff!important;box-shadow:0 6px 16px rgba(7,24,39,.16)!important}

body.fv223-league-page .fv-series-layout{gap:16px!important;margin-top:14px!important;margin-bottom:36px!important}
body.fv223-league-page .fv-series-card{border:1px solid var(--fv402-line)!important;border-radius:20px!important;background:#fff!important;box-shadow:var(--fv402-shadow)!important;overflow:hidden!important}
body.fv223-league-page .fv304-round-head,body.fv223-league-page .fv-series-card-head{padding:18px 18px 14px!important;border-bottom:1px solid #e8edf2!important;background:linear-gradient(180deg,#fff,#fbfcfd)!important}
body.fv223-league-page .fv309-round-heading h2,body.fv223-league-page .fv311-standings-title{font-size:23px!important;letter-spacing:-.03em!important;color:#132234!important}
body.fv223-league-page .fv309-round-meta,body.fv223-league-page .fv307-table-note{color:#778397!important;font-size:11px!important;font-weight:800!important}
body.fv223-league-page .fv304-round-arrow,body.fv223-league-page .fv304-round-form select{min-height:38px!important;border-radius:10px!important;border:1px solid #d9e1e8!important;background:#f8fafb!important;color:#23354a!important;font-weight:900!important}
body.fv223-league-page .fv304-day-title{padding:10px 14px!important;background:#eff4f7!important;color:#516074!important;font-size:10px!important;font-weight:950!important;letter-spacing:.065em!important;text-transform:uppercase!important}
body.fv223-league-page .fv304-round-games{gap:8px!important;padding:10px!important}
body.fv223-league-page .fv304-game-card{border:1px solid #e4eaf0!important;border-radius:14px!important;background:#fff!important;box-shadow:none!important;transition:transform .16s ease,box-shadow .16s ease!important}
body.fv223-league-page .fv304-game-card:hover{transform:translateY(-1px)!important;box-shadow:0 9px 24px rgba(18,38,55,.07)!important}
body.fv223-league-page .fv-viseu-game{border-left:4px solid var(--fv402-green)!important}
body.fv223-league-page .fv304-main-score{font-size:21px!important;letter-spacing:-.02em!important}
body.fv223-league-page .fv304-state-label{font-size:9px!important;font-weight:950!important}
body.fv223-league-page .fv-table-wrap{border-radius:0!important}
body.fv223-league-page .fv-table thead th{position:sticky!important;top:0!important;background:#0b1d2c!important;color:#fff!important;border:0!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.045em!important}
body.fv223-league-page .fv-table tbody tr:nth-child(even){background:#f9fbfc!important}
body.fv223-league-page .fv-table tbody tr:hover{background:#f1f7eb!important}
body.fv223-league-page .fv-position-up td:first-child{box-shadow:inset 4px 0 0 var(--fv402-green)!important}

/* generic hub pages */
body.fv402-hub-page{margin:0;background:var(--fv402-bg);color:var(--fv402-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.fv402-shell{width:min(1240px,calc(100% - 28px));margin:0 auto}
.fv402-hero{border-bottom:3px solid var(--fv402-green);background:linear-gradient(120deg,#061521 0%,#082638 62%,#0d342a 100%);color:#fff;padding:25px 0 23px}
.fv402-hero-inner{display:flex;align-items:center;gap:17px}
.fv402-hero-logo{width:70px;height:70px;object-fit:contain;padding:7px;box-sizing:border-box;background:#fff;border-radius:16px;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.fv402-eyebrow{display:block;margin:0 0 5px;color:#9add5a;font-size:10px;font-weight:950;letter-spacing:.1em;text-transform:uppercase}
.fv402-hero h1{margin:0;font-size:clamp(27px,3.2vw,43px);line-height:1;letter-spacing:-.04em}.fv402-hero p{margin:8px 0 0;color:#c7d3dd;font-size:13px;font-weight:700}
.fv402-main{padding:0 0 38px}.fv402-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:14px 0;flex-wrap:wrap}
.fv402-select,.fv402-input{min-height:42px;padding:9px 12px;border:1px solid #d7e0e8;border-radius:11px;background:#fff;color:#17283b;font-weight:800;outline:none;box-sizing:border-box}.fv402-select{min-width:min(100%,330px)}.fv402-input{min-width:min(100%,280px);flex:1 1 260px}
.fv402-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 16px}.fv402-stat{background:#fff;border:1px solid var(--fv402-line);border-radius:15px;padding:14px;box-shadow:0 6px 18px rgba(15,34,51,.04)}.fv402-stat strong{display:block;font-size:24px;line-height:1;color:#102033}.fv402-stat span{display:block;margin-top:5px;color:#718095;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.fv402-card{background:#fff;border:1px solid var(--fv402-line);border-radius:18px;box-shadow:var(--fv402-shadow);overflow:hidden;margin:14px 0}.fv402-card-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 17px;border-bottom:1px solid #e8edf2}.fv402-card-head h2{margin:0;font-size:20px;letter-spacing:-.025em}.fv402-card-head span{color:#718095;font-size:11px;font-weight:800}.fv402-card-body{padding:14px}
.fv402-empty{padding:22px;border:1px dashed #ccd6df;border-radius:14px;background:#f9fbfc;color:#6d7a8c;text-align:center;font-weight:800}
.fv402-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.fv402-team-card{border:1px solid #e2e8ee;border-radius:15px;background:#fff;padding:13px;text-decoration:none;color:inherit;display:flex;gap:12px;align-items:center;transition:.15s}.fv402-team-card:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(18,38,55,.07)}.fv402-team-card img{width:50px;height:50px;object-fit:contain}.fv402-team-card strong{display:block;font-size:14px}.fv402-team-card small{display:block;margin-top:4px;color:#768396;font-size:11px;font-weight:750}
.fv402-squad-groups{display:grid;gap:10px}.fv402-squad-group{border:1px solid #e4eaf0;border-radius:14px;background:#fafcfd;padding:12px}.fv402-squad-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.fv402-squad-title h3{margin:0;font-size:14px}.fv402-squad-title span{font-size:10px;color:#7a8798;font-weight:900;text-transform:uppercase}.fv402-player-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.fv402-player{border:1px solid #e3e9ef;border-radius:11px;background:#fff;padding:10px;min-width:0}.fv402-player strong{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fv402-player span{display:block;margin-top:4px;color:#788598;font-size:10.5px;font-weight:750}
.fv402-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}.fv402-tabs::-webkit-scrollbar{display:none}.fv402-tabs a{white-space:nowrap;padding:9px 12px;border-radius:10px;background:#fff;border:1px solid #dce4eb;color:#435268;text-decoration:none;font-size:11px;font-weight:900}.fv402-tabs a.active{background:#071827;border-color:#071827;color:#fff}
.fv402-market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fv402-market-card{position:relative;border:1px solid #e2e8ee;border-radius:15px;background:#fff;padding:13px;overflow:hidden}.fv402-market-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#a4afbc}.fv402-market-card.entrada:before{background:#61b510}.fv402-market-card.saida:before{background:#e65555}.fv402-market-card.renovacao:before{background:#3d82c4}.fv402-market-type{display:inline-flex;border-radius:999px;padding:5px 8px;background:#f1f4f7;color:#536174;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}.fv402-market-card strong{display:block;margin-top:10px;font-size:14px}.fv402-market-card p{margin:5px 0 0;color:#6b788a;font-size:11px;font-weight:750;line-height:1.35}
.fv402-scorer-table{width:100%;border-collapse:collapse}.fv402-scorer-table th,.fv402-scorer-table td{padding:10px 11px;border-bottom:1px solid #edf1f4;text-align:left;font-size:12px}.fv402-scorer-table th{background:#0b1d2c;color:#fff;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em}.fv402-scorer-table td:last-child,.fv402-scorer-table th:last-child{text-align:center}.fv402-scorer-table tbody tr:nth-child(even){background:#fafcfd}.fv402-scorer-rank{font-weight:950;color:#6b7788}.fv402-scorer-goals{display:inline-grid;place-items:center;min-width:33px;height:30px;border-radius:9px;background:#eef8e5;color:#4a8800;font-weight:950}
@media(max-width:900px){.fv402-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.fv402-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fv402-player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fv402-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fv402-comp-nav{top:64px!important}}
@media(max-width:600px){body.fv223-league-page .fv281-comp-logo{width:54px!important;height:54px!important;border-radius:13px!important}.fv402-comp-nav{width:calc(100% - 16px)!important;margin-left:auto!important;margin-right:auto!important;padding:4px!important;border-radius:13px!important}.fv402-comp-nav a{min-height:35px!important;padding:7px 10px!important;font-size:10.5px!important}body.fv223-league-page .fv-series-layout{width:calc(100% - 12px)!important}body.fv223-league-page .fv304-round-head,body.fv223-league-page .fv-series-card-head{padding:13px 12px 10px!important}.fv402-shell{width:calc(100% - 16px)}.fv402-hero{padding:18px 0}.fv402-hero-logo{width:54px;height:54px;border-radius:13px}.fv402-hero h1{font-size:25px}.fv402-hero p{font-size:11px}.fv402-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.fv402-stat{padding:11px}.fv402-stat strong{font-size:20px}.fv402-team-grid,.fv402-market-grid{grid-template-columns:1fr}.fv402-player-grid{grid-template-columns:1fr}.fv402-card{border-radius:15px}.fv402-card-head{padding:13px}.fv402-card-body{padding:10px}.fv402-scorer-table th,.fv402-scorer-table td{padding:8px 7px;font-size:10.5px}.fv402-scorer-table th:nth-child(3),.fv402-scorer-table td:nth-child(3){display:none}}
