:root{--salary-blue:#1597ff;--salary-ice:#74c8ff}
body.salary-portal{background:radial-gradient(ellipse at 14% 5%,rgba(73,180,255,.2),transparent 35rem),radial-gradient(ellipse at 83% 46%,rgba(21,116,194,.18),transparent 42rem),radial-gradient(ellipse at 42% 92%,rgba(79,164,222,.1),transparent 38rem),linear-gradient(145deg,#020a14 0%,#071a2d 44%,#08243c 70%,#03101d 100%);color:#f4f8fd;min-height:100vh}
body.salary-portal:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.12;background-image:linear-gradient(112deg,transparent 0 28%,rgba(190,229,255,.12) 28.2%,transparent 28.7% 100%),linear-gradient(166deg,transparent 0 43%,rgba(204,237,255,.08) 43.15%,transparent 43.7% 100%),linear-gradient(28deg,transparent 0 66%,rgba(172,218,250,.07) 66.1%,transparent 66.55% 100%),radial-gradient(ellipse at 24% 35%,rgba(186,229,255,.12),transparent 22%),radial-gradient(ellipse at 76% 68%,rgba(137,207,255,.09),transparent 27%);background-size:880px 620px,760px 540px,1040px 720px,100% 100%,100% 100%;mix-blend-mode:screen}
body.salary-portal:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.055;background:repeating-linear-gradient(174deg,transparent 0 94px,rgba(218,242,255,.18) 95px,transparent 97px 184px);filter:blur(.25px)}
.salary-portal .site-header{position:relative;z-index:1000}
.salary-shell{position:relative;z-index:1;width:min(1480px,calc(100% - 40px));margin:0 auto;padding:28px 0 52px}
.salary-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,560px);align-items:center;gap:28px;min-height:190px;margin-bottom:18px;padding:28px 32px;overflow:visible;border:1px solid rgba(65,157,224,.34);border-radius:24px;background:linear-gradient(118deg,rgba(14,40,67,.97),rgba(6,21,37,.95));box-shadow:0 24px 70px rgba(0,0,0,.26)}
.salary-hero:after{content:"SNHL";position:absolute;right:3%;top:-25%;font:190px/1 "Bebas Neue",sans-serif;color:rgba(89,174,237,.045);pointer-events:none}
.salary-hero-copy,.salary-actions{position:relative;z-index:2}
.salary-kicker{display:block;margin-bottom:7px;color:#68c2ff;font:700 12px/1 Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.salary-hero h1{margin:0;font:clamp(42px,5vw,68px)/.95 "Bebas Neue",sans-serif;letter-spacing:.025em;color:#fff}
.salary-hero p{max-width:720px;margin:12px 0 0;color:#a9bdd1;font:500 15px/1.65 Inter,sans-serif}
.salary-actions{display:grid;gap:12px}.salary-actions .global-player-search{width:100%;max-width:none}
.salary-actions-row{display:flex;align-items:end;justify-content:flex-end;gap:10px;flex-wrap:wrap}.salary-actions-row .salary-select-group{min-width:175px}
.salary-control-label{display:block;margin:0 0 6px;color:#8fa8c0;font:700 10px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.salary-portal .search,.salary-portal .season-select{min-height:46px;border:1px solid rgba(75,150,205,.42);border-radius:12px;background:#071727;color:#eef7ff;font:500 14px Inter,sans-serif}
.salary-portal .search:focus,.salary-portal .season-select:focus{outline:2px solid rgba(21,151,255,.45);border-color:#1597ff}
.salary-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 17px;border:1px solid rgba(74,159,220,.48);border-radius:12px;background:rgba(16,66,105,.5);color:#dff3ff;text-decoration:none;font:600 13px Inter,sans-serif;cursor:pointer;transition:.2s ease}
.salary-button:hover{transform:translateY(-1px);border-color:#52baff;background:rgba(21,151,255,.18)}.salary-button.primary{border-color:#1597ff;background:linear-gradient(135deg,#138ee8,#0864b8);color:#fff}
.salary-portal .layout{width:100%;max-width:none;margin:0;padding:0}.salary-portal .glass{border-color:rgba(69,145,201,.3);background:linear-gradient(145deg,rgba(12,31,51,.93),rgba(6,20,35,.92));box-shadow:0 14px 44px rgba(0,0,0,.16)}
.salary-portal .metric{border-top:2px solid rgba(31,159,250,.75)}.salary-portal .metric strong,.salary-portal h2{color:#f7fbff}.salary-portal .eyebrow{color:#60bbf7}.salary-portal .panel,.salary-portal .metric,.salary-portal .team-logo-nav-shell{border-radius:18px}
.team-logo-nav-shell{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;margin:12px 0 14px;padding:8px;border:1px solid rgba(69,145,201,.3);background:linear-gradient(145deg,rgba(12,31,51,.93),rgba(6,20,35,.92));box-shadow:0 14px 44px rgba(0,0,0,.16)}
.salary-portal .team-logo-strip{min-width:0;margin:0;padding:4px!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;mask-image:none;-webkit-mask-image:none;touch-action:pan-x;scrollbar-width:thin;scrollbar-color:rgba(62,164,232,.72) rgba(7,28,46,.55)}
.salary-portal .team-logo-strip::-webkit-scrollbar{display:block;height:5px}.salary-portal .team-logo-strip::-webkit-scrollbar-track{background:rgba(7,28,46,.55);border-radius:10px}.salary-portal .team-logo-strip::-webkit-scrollbar-thumb{background:rgba(62,164,232,.72);border-radius:10px}
.team-logo-arrow{display:grid;place-items:center;width:38px;height:48px;padding:0;border:1px solid rgba(80,164,220,.38);border-radius:12px;background:rgba(12,48,76,.72);color:#bfe7ff;font:400 30px/1 Inter,sans-serif;cursor:pointer;transition:.18s ease}.team-logo-arrow:hover{border-color:#4eb8f6;background:rgba(20,121,190,.35);color:#fff}.team-logo-arrow:active{transform:scale(.96)}
.salary-portal table thead{background:#0b2740}.salary-portal table tbody tr:hover{background:rgba(29,145,222,.09)}.salary-portal .league-bar-fill{background:linear-gradient(90deg,#0872c8,#28a8ff)}
.salary-cache-status{color:#7290aa;font:12px Inter,sans-serif;text-align:right}
.salary-site-footer{position:relative;z-index:2;border-top:1px solid rgba(83,151,202,.25);background:#050e19}.salary-site-footer .container{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:120px}.salary-site-footer img{width:58px;height:68px;object-fit:contain}.salary-site-footer strong{font:22px/1 Oswald,sans-serif;letter-spacing:.035em;color:#f4f8fd}.salary-site-footer p{margin:7px 0 0;color:#8096ad;font:13px Inter,sans-serif}.salary-site-footer nav{display:flex;gap:18px;flex-wrap:wrap}.salary-site-footer a{color:#9fb4c9;text-decoration:none;font:600 13px Inter,sans-serif}.salary-site-footer a:hover{color:#62c1ff}
html[data-theme="light"] body.salary-portal{background:radial-gradient(ellipse at 12% 4%,rgba(73,180,255,.28),transparent 34rem),radial-gradient(ellipse at 88% 46%,rgba(34,135,207,.15),transparent 40rem),linear-gradient(145deg,#e9f6ff 0%,#d5edfb 48%,#eef8fd 100%);color:#10263a}
html[data-theme="light"] body.salary-portal:before{opacity:.26;mix-blend-mode:multiply;background-image:linear-gradient(112deg,transparent 0 28%,rgba(56,127,177,.11) 28.2%,transparent 28.7% 100%),linear-gradient(166deg,transparent 0 43%,rgba(57,139,195,.09) 43.15%,transparent 43.7% 100%),linear-gradient(28deg,transparent 0 66%,rgba(64,143,197,.08) 66.1%,transparent 66.55% 100%),radial-gradient(ellipse at 24% 35%,rgba(255,255,255,.55),transparent 22%),radial-gradient(ellipse at 76% 68%,rgba(255,255,255,.42),transparent 27%)}
html[data-theme="light"] body.salary-portal:after{opacity:.12;background:repeating-linear-gradient(174deg,transparent 0 94px,rgba(61,136,187,.15) 95px,transparent 97px 184px)}
html[data-theme="light"] .salary-hero{border-color:rgba(32,119,179,.28);background:linear-gradient(118deg,rgba(245,251,255,.96),rgba(222,241,252,.94));box-shadow:0 20px 55px rgba(21,76,112,.12)}
html[data-theme="light"] .salary-hero:after{color:rgba(15,107,173,.055)}
html[data-theme="light"] .salary-hero h1,html[data-theme="light"] .salary-portal h2,html[data-theme="light"] .salary-portal .metric strong{color:#0a2135}
html[data-theme="light"] .salary-hero p{color:#48677f}
html[data-theme="light"] .salary-kicker,html[data-theme="light"] .salary-portal .eyebrow{color:#0875be}
html[data-theme="light"] .salary-control-label{color:#45677f}
html[data-theme="light"] .salary-portal .search,html[data-theme="light"] .salary-portal .season-select{border-color:rgba(38,111,162,.35);background:rgba(255,255,255,.82);color:#10283b}
html[data-theme="light"] .salary-button{border-color:rgba(30,112,171,.4);background:rgba(236,248,255,.88);color:#0b5e99}
html[data-theme="light"] .salary-button:hover{background:#fff;border-color:#1387d7}
html[data-theme="light"] .salary-button.primary{background:linear-gradient(135deg,#148ee3,#0969ba);color:#fff}
html[data-theme="light"] .salary-portal .glass{border-color:rgba(42,116,169,.24);background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(226,241,251,.89));box-shadow:0 13px 38px rgba(25,75,108,.09)}
html[data-theme="light"] .team-logo-nav-shell{border-color:rgba(42,116,169,.24);background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(226,241,251,.89));box-shadow:0 13px 38px rgba(25,75,108,.09)}
html[data-theme="light"] .team-logo-arrow{border-color:rgba(34,118,176,.32);background:rgba(225,243,253,.9);color:#0a70b2}
html[data-theme="light"] .salary-portal .team-logo-strip{scrollbar-color:rgba(25,126,192,.62) rgba(187,218,237,.62)}
html[data-theme="light"] .salary-portal .metric{border-top-color:#178bd7}
html[data-theme="light"] .salary-portal table{color:#183148}
html[data-theme="light"] .salary-portal table thead{background:#d6ecf9;color:#153047}
html[data-theme="light"] .salary-portal table tbody tr{border-color:rgba(45,112,158,.16)}
html[data-theme="light"] .salary-portal table tbody tr:hover{background:rgba(25,137,207,.09)}
html[data-theme="light"] .salary-portal .salary-list,html[data-theme="light"] .salary-portal .league-bars{color:#183148}
html[data-theme="light"] .salary-cache-status{color:#54728a}
html[data-theme="light"] .salary-site-footer{border-top-color:rgba(41,112,163,.24);background:#d9edf9}
html[data-theme="light"] .salary-site-footer strong{color:#102a40}
html[data-theme="light"] .salary-site-footer p,html[data-theme="light"] .salary-site-footer a{color:#4d6c84}
html[data-theme="light"] .salary-site-footer a:hover{color:#0875be}
@media(max-width:900px){.salary-shell{width:min(100% - 24px,1480px);padding-top:18px}.salary-hero{grid-template-columns:1fr;padding:23px;min-height:0}.salary-actions-row{justify-content:flex-start}.salary-portal .dashboard-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.salary-shell{width:min(100% - 16px,1480px)}.salary-hero{padding:20px 16px;border-radius:18px}.salary-hero h1{font-size:42px}.salary-hero p{font-size:13px}.salary-actions-row,.salary-actions-row>*{width:100%}.salary-portal .dashboard-grid-wide{grid-template-columns:1fr}.salary-portal .overview-charts,.salary-portal .secondary-charts{grid-template-columns:1fr}.team-logo-nav-shell{grid-template-columns:1fr;padding:7px}.team-logo-arrow{display:none}.salary-portal .team-logo-strip{padding:5px!important;scroll-snap-type:x proximity}.salary-site-footer .container{grid-template-columns:auto 1fr;padding:24px 16px}.salary-site-footer nav{grid-column:1/-1}.salary-site-footer strong{font-size:17px}}
@media(max-width:390px){.salary-shell{width:calc(100% - 12px)}.salary-portal .team-logo-link{width:50px;height:50px;min-width:50px}.salary-portal .team-logo-link img{width:36px;height:36px}.salary-portal .team-logo-strip{gap:7px}.salary-hero{padding-inline:14px}}

/* V7.4 — centre des salaires mobile et accessible */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #66baff!important;outline-offset:3px!important}
.salary-portal .table-wrap,.salary-portal .salary-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
@media(max-width:620px){
 .salary-portal input,.salary-portal select,.salary-portal textarea{font-size:16px!important}
 .salary-actions-row{display:grid;grid-template-columns:1fr}
 .salary-actions-row>*{min-width:0!important}
 .salary-button{min-height:44px}
 .salary-site-footer .container{width:calc(100% - 16px)}
}

/* V8.4 - alignement lisible du tableau des joueurs */
.salary-portal #playersTable th,
.salary-portal #playersTable td{box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums}
.salary-portal #playersTable th:first-child,
.salary-portal #playersTable td:first-child{text-align:left;padding-left:18px}
.salary-portal #playersTable th:nth-child(2),.salary-portal #playersTable td:nth-child(2),
.salary-portal #playersTable th:nth-child(3),.salary-portal #playersTable td:nth-child(3),
.salary-portal #playersTable th:nth-child(7),.salary-portal #playersTable td:nth-child(7),
.salary-portal #playersTable th:nth-child(8),.salary-portal #playersTable td:nth-child(8){text-align:center}
.salary-portal #playersTable th:nth-child(4),.salary-portal #playersTable td:nth-child(4),
.salary-portal #playersTable th:nth-child(5),.salary-portal #playersTable td:nth-child(5),
.salary-portal #playersTable th:nth-child(6),.salary-portal #playersTable td:nth-child(6){text-align:right}

/* V8.0.1 — navigation fiable sur Safari iPhone */
@media(max-width:760px){
 .salary-portal .site-header{
  position:sticky!important;
  top:0!important;
  z-index:4000!important;
  isolation:auto!important;
  overflow:visible!important;
 }
 .salary-portal .site-header .header-inner{position:relative!important}
 .salary-portal .site-header .menu-button{
  position:relative!important;
  z-index:4002!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-appearance:none;
  background:linear-gradient(145deg,#0b2135,#081827)!important;
  border-color:rgba(92,176,235,.62)!important;
  color:#f2f8ff!important;
 }
 .salary-portal .site-header .main-menu{
  position:absolute!important;
  z-index:4001!important;
  top:calc(100% + 2px)!important;
  right:8px!important;
  left:8px!important;
  width:auto!important;
  max-height:calc(100dvh - 94px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  pointer-events:auto!important;
  background:rgba(6,20,35,.99)!important;
  border:1px solid rgba(80,153,207,.58)!important;
  box-shadow:0 24px 65px rgba(0,0,0,.68)!important;
 }
 .salary-portal .site-header .main-menu:not(.open){display:none!important}
 .salary-portal .site-header .main-menu.open{display:flex!important}
 .salary-portal .site-header .main-menu a,
 .salary-portal .site-header .main-menu summary,
 .salary-portal .site-header .main-menu button{
  position:relative;
  z-index:1;
  pointer-events:auto!important;
  touch-action:manipulation!important;
 }
 html[data-theme=light] .salary-portal .site-header .main-menu{
  background:rgba(248,252,255,.995)!important;
  border-color:#9bbbd5!important;
 }
}

/* V8.4.1 - priorite finale pour les logos et les colonnes joueurs */
.salary-portal .team-logo-nav-shell,
.salary-portal .team-logo-strip{position:relative;isolation:isolate;overflow-y:hidden}
.salary-portal .team-logo-link{position:relative!important;z-index:3!important;pointer-events:auto!important;touch-action:manipulation!important}
.salary-portal .team-logo-link img{pointer-events:none!important}
.salary-portal #playersTable{table-layout:fixed!important;width:100%!important;min-width:920px!important}
.salary-portal #playersTable th,.salary-portal #playersTable td{vertical-align:middle!important;font-variant-numeric:tabular-nums!important}
.salary-portal #playersTable th:nth-child(1),.salary-portal #playersTable td:nth-child(1){width:21%!important;text-align:left!important;padding-left:18px!important}
.salary-portal #playersTable th:nth-child(2),.salary-portal #playersTable td:nth-child(2){width:10%!important;text-align:left!important}
.salary-portal #playersTable th:nth-child(3),.salary-portal #playersTable td:nth-child(3){width:7%!important;text-align:center!important}
.salary-portal #playersTable th:nth-child(4),.salary-portal #playersTable td:nth-child(4){width:15%!important;text-align:right!important}
.salary-portal #playersTable th:nth-child(5),.salary-portal #playersTable td:nth-child(5){width:15%!important;text-align:right!important}
.salary-portal #playersTable th:nth-child(6),.salary-portal #playersTable td:nth-child(6){width:11%!important;text-align:right!important}
.salary-portal #playersTable th:nth-child(7),.salary-portal #playersTable td:nth-child(7){width:8%!important;text-align:center!important}
.salary-portal #playersTable th:nth-child(8),.salary-portal #playersTable td:nth-child(8){width:13%!important;text-align:center!important}
