:root{
  --snhl-deep:#020711;--snhl-panel:rgba(7,18,34,.86);--snhl-line:rgba(130,176,232,.28);--snhl-blue:#2d83ff;--snhl-text:#eef6ff;--snhl-muted:#9eb1ca;
}
html{background:#020711}
body{
  background-color:#020711!important;
  background-image:linear-gradient(rgba(1,5,13,.88),rgba(1,6,16,.94)),url('../images/hockey-rink-wallpaper.jpg')!important;
  background-position:center!important;background-size:cover!important;background-attachment:fixed!important;
}
.app-bg{opacity:.35!important;filter:brightness(.42) saturate(.8)!important}
/* Image de marque plus présente */
.league-logo,.brand-logo,.top .logo,.hero-logo,.portal-logo{object-fit:contain!important;filter:drop-shadow(0 10px 24px rgba(0,0,0,.5))}
.league-logo{width:150px!important;max-height:135px!important}
.brand-logo{width:125px!important;height:110px!important}
.top .logo,.logo{width:120px!important;max-height:110px!important}
/* Boutons communs */
.snhl-admin-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid rgba(100,164,240,.45);border-radius:12px;background:rgba(15,43,78,.72);color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;transition:.18s ease}
.snhl-admin-link:hover{transform:translateY(-2px);background:rgba(30,92,165,.8)}
/* Footer commun */
.snhl-common-footer{width:min(1680px,calc(100% - 32px));margin:30px auto 18px;padding:0;position:relative;z-index:5;color:var(--snhl-text)}
.snhl-footer-inner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 22px;border:1px solid var(--snhl-line);border-radius:20px;background:rgba(5,15,29,.84);box-shadow:0 18px 48px rgba(0,0,0,.3);backdrop-filter:blur(14px)}
.snhl-footer-inner img{width:72px;height:58px;object-fit:contain}
.snhl-footer-inner strong{display:block;font-size:15px;letter-spacing:.08em}
.snhl-footer-inner span{display:block;color:var(--snhl-muted);font-size:12px;margin-top:3px}
.snhl-footer-meta{color:var(--snhl-muted);font-size:12px;text-align:right}
@media(max-width:760px){
 body{background-attachment:scroll!important}
 .league-logo{width:105px!important;max-height:95px!important}.brand-logo{width:92px!important;height:82px!important}.top .logo,.logo{width:90px!important;max-height:82px!important}
 .snhl-common-footer{width:calc(100% - 20px);margin:20px auto 10px}.snhl-footer-inner{grid-template-columns:auto 1fr;padding:14px;gap:11px}.snhl-footer-inner img{width:54px;height:45px}.snhl-footer-meta{grid-column:1/-1;text-align:center;border-top:1px solid rgba(130,176,232,.15);padding-top:10px}
}

/* Saison commune du portail */
.snhl-season-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:7px 13px;border-radius:999px;background:rgba(9,24,46,.92);border:1px solid rgba(117,174,255,.45);box-shadow:0 8px 24px rgba(0,0,0,.28);color:#eaf4ff;font:800 12px/1 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;backdrop-filter:blur(10px)}
.snhl-season-badge.snhl-season-fixed{position:fixed;top:52px;left:10px;z-index:9999}
@media(max-width:700px){.snhl-season-badge.snhl-season-fixed{top:50px;left:8px;font-size:10px;padding:6px 10px;min-height:28px}}


/* Barre de navigation harmonisée des modules */
.snhl-module-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto;position:relative;z-index:20}
.snhl-tool-btn,.snhl-tool-season{min-height:40px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 13px;border-radius:11px;border:1px solid rgba(120,174,239,.34);background:rgba(8,28,52,.78);color:#edf6ff;text-decoration:none;font:800 12px/1 Arial,sans-serif;letter-spacing:.01em;white-space:nowrap;backdrop-filter:blur(10px);transition:transform .16s ease,background .16s ease,border-color .16s ease}
button.snhl-tool-btn{cursor:pointer}
.snhl-tool-btn:hover{transform:translateY(-2px);background:rgba(24,74,126,.86);border-color:rgba(104,174,255,.72)}
.snhl-tool-home{background:rgba(23,91,166,.88);border-color:rgba(96,174,255,.62)}
.snhl-tool-season{color:#bcd2ed;background:rgba(6,18,34,.72);cursor:default}
.snhl-tool-btn span:first-child{font-size:15px;line-height:1}
@media(max-width:900px){.snhl-module-toolbar{width:100%;justify-content:flex-start;margin:10px 0 0}.snhl-tool-btn,.snhl-tool-season{flex:1 1 auto}}
@media(max-width:560px){.snhl-module-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.snhl-tool-btn,.snhl-tool-season{width:100%;padding:10px 8px;font-size:11px}.snhl-tool-season{grid-column:1/-1}.snhl-tool-btn span:first-child{font-size:14px}}


/* Titres principaux harmonisés avec « LE PORTAIL DES DG » */
.hero h1,
.top .title h1,
.topbar .brand h1,
.brand h1,
main.card > h1,
.login-card h1,
.admin-layout > .panel h1,
.team-title h1,
#teamPageTitle{
  font-family:Inter,Arial,Helvetica,sans-serif!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:-.035em!important;
  line-height:.98!important;
  text-shadow:0 3px 16px rgba(0,0,0,.42)!important;
}
.top .title h1,.topbar .brand h1{font-size:clamp(30px,3vw,48px)!important}
@media(max-width:700px){.top .title h1,.topbar .brand h1{font-size:clamp(25px,7.5vw,36px)!important}}


/* === SNHL Portal v7.0 : thèmes et PWA === */
:root{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
html[data-theme="light"] body{background:linear-gradient(rgba(235,242,250,.82),rgba(225,235,247,.9)),url('../images/hockey-rink-wallpaper.jpg') center/cover fixed!important;color:#14243a!important}
html[data-theme="light"] .glass-panel,html[data-theme="light"] .snhl-module-toolbar,html[data-theme="light"] .snhl-common-footer,html[data-theme="light"] .card,html[data-theme="light"] .panel{background:rgba(248,251,255,.88)!important;border-color:rgba(25,74,120,.18)!important;color:#14243a!important;box-shadow:0 18px 45px rgba(31,64,96,.14)!important}
html[data-theme="light"] .snhl-tool-btn,html[data-theme="light"] .snhl-tool-season{background:#edf4fb!important;color:#17304e!important;border-color:#bfd0e2!important}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{background:#fff!important;color:#14243a!important;border-color:#b9cbe0!important}
html[data-theme="light"] table,html[data-theme="light"] th,html[data-theme="light"] td{color:#14243a!important}
html[data-theme="light"] th{background:#eaf2fa!important}
html[data-theme="light"] a{color:#155fb0}
.snhl-theme-fab{position:fixed;right:16px;bottom:16px;z-index:9999;border:1px solid rgba(255,255,255,.18);background:rgba(9,24,43,.92);color:#fff;border-radius:999px;padding:11px 14px;font-weight:800;cursor:pointer;box-shadow:0 12px 32px rgba(0,0,0,.3)}
html[data-theme="light"] .snhl-theme-fab{background:#fff;color:#17304e;border-color:#b9cbe0}
@media(max-width:680px){.snhl-theme-fab{right:10px;bottom:10px;padding:10px;font-size:0}.snhl-theme-fab [data-theme-icon]{font-size:18px}}

/* === Portail v8.1 : finition visuelle commune === */
:root{--snhl-deep:#070a0f;--snhl-panel:rgba(16,21,30,.90);--snhl-line:rgba(255,255,255,.11);--snhl-blue:#2d7ff9;--snhl-text:#f4f7fb;--snhl-muted:#9ca8b7}
body{background-image:radial-gradient(circle at 78% 12%,rgba(35,80,145,.17),transparent 28%),linear-gradient(rgba(4,7,11,.80),rgba(4,7,11,.95)),url('../images/hockey-rink-wallpaper.jpg')!important}
.panel,.card,.hero,.top,.topbar,.team-bar-panel{border-color:var(--snhl-line)!important;box-shadow:0 20px 52px rgba(0,0,0,.38)!important;backdrop-filter:blur(14px)}
button,a,.panel,.card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}
button:hover,a.snhl-tool-btn:hover{transform:translateY(-2px)}
.snhl-common-footer{color:var(--snhl-text)}
.snhl-footer-inner{background:rgba(12,17,25,.9);border-color:var(--snhl-line)}
.snhl-module-toolbar{gap:9px}.snhl-tool-btn,.snhl-tool-season{background:rgba(16,24,35,.9);border-color:var(--snhl-line);min-height:42px}.snhl-tool-home{background:rgba(45,127,249,.22);border-color:rgba(80,150,255,.5)}
@media(max-width:760px){.hero,.top,.topbar{padding-left:14px!important;padding-right:14px!important}.snhl-module-toolbar{overflow:visible}.snhl-common-footer{width:calc(100% - 14px)}}


/* === Portail SNHL v8.3 : texture commune et finition des modules === */
:root{
  --snhl-texture:
    radial-gradient(circle at 14% 8%,rgba(255,255,255,.028),transparent 25%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.009) 0 1px,transparent 1px 11px),
    linear-gradient(145deg,rgba(255,255,255,.014),transparent 46%);
}
.card,.panel,.glass-panel,.hero,.top,.topbar,.summary-panel,.table-wrap,.team-bar-panel,
.modal-card,.success-card,.admin-trade-card,.kanban-column,.asset-list,.selected-team-card,
.selected-box,.flow-team,.review-card,.analysis-box,.notification-badge,.stat{
  position:relative;
  isolation:isolate;
}
.card::after,.panel::after,.glass-panel::after,.hero::after,.top::after,.topbar::after,
.summary-panel::after,.table-wrap::after,.team-bar-panel::after,.modal-card::after,
.success-card::after,.admin-trade-card::after,.kanban-column::after,.asset-list::after,
.selected-team-card::after,.selected-box::after,.flow-team::after,.review-card::after,
.analysis-box::after,.notification-badge::after,.stat::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background-image:var(--snhl-texture);opacity:.38;
}
.top,.hero,.topbar{overflow:visible!important}
.card,.panel,.glass-panel,.summary-panel,.table-wrap{border-color:rgba(151,188,233,.19)!important}
.card:hover,.panel:hover{border-color:rgba(151,188,233,.32)!important}

/* Harmonisation visuelle Repêchage et Protections */
body .hero,body .top,body .topbar{
  background:
    radial-gradient(circle at 88% 5%,rgba(56,130,232,.17),transparent 30%),
    var(--snhl-texture),rgba(7,16,29,.89)!important;
}
body .table-wrap,body .summary-panel,body .team-bar-panel{
  background:var(--snhl-texture),rgba(7,16,29,.82)!important;
  box-shadow:0 22px 55px rgba(0,0,0,.34)!important;
}
body table thead th{background:linear-gradient(180deg,rgba(28,61,100,.94),rgba(10,28,51,.96))!important}
body tbody tr{transition:background .16s ease,transform .16s ease}
body tbody tr:hover{background:rgba(55,128,225,.10)!important}


/* === Portail SNHL v8.6 : typographie, mode clair et alignements === */
:root{
  --snhl-font:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
html,body,button,input,select,textarea,table,th,td,a,.btn,.snhl-tool-btn,.snhl-tool-season{
  font-family:var(--snhl-font)!important;
}
body{font-weight:400}
p,small,.muted,.brand p,.hero p,.panel p{font-weight:400}
nav a,.portal-nav a,.snhl-module-toolbar a{font-weight:650!important}
h1,h2,h3,h4,.brand h1,.hero h1,.top .title h1,#teamPageTitle{
  font-family:var(--snhl-font)!important;
  font-weight:850!important;
}
/* Le style des titres reste fort, mais moins massif et plus uniforme. */
.hero h1,.top .title h1,.topbar .brand h1,.brand h1,main.card>h1,.login-card h1,.admin-layout>.panel h1,.team-title h1,#teamPageTitle{
  font-weight:850!important;
  letter-spacing:-.025em!important;
}

/* Mode clair mieux contrasté dans tous les modules. */
html[data-theme="light"] body{
  background:
    radial-gradient(circle at 78% 12%,rgba(53,115,181,.12),transparent 30%),
    linear-gradient(rgba(238,244,251,.90),rgba(225,235,246,.96)),
    url('../images/hockey-rink-wallpaper.jpg') center/cover fixed!important;
  color:#12243a!important;
}
html[data-theme="light"] .app-bg{opacity:.12!important;filter:grayscale(.15) brightness(1.08)!important}
html[data-theme="light"] .card,
html[data-theme="light"] .panel,
html[data-theme="light"] .glass,
html[data-theme="light"] .glass-panel,
html[data-theme="light"] .hero,
html[data-theme="light"] .top,
html[data-theme="light"] .topbar,
html[data-theme="light"] .summary-panel,
html[data-theme="light"] .table-wrap,
html[data-theme="light"] .team-bar-panel,
html[data-theme="light"] .modal-card,
html[data-theme="light"] .admin-trade-card,
html[data-theme="light"] .kanban-column{
  background-color:rgba(250,252,255,.94)!important;
  color:#12243a!important;
  border-color:rgba(30,78,126,.20)!important;
  box-shadow:0 16px 38px rgba(38,72,105,.14)!important;
}
html[data-theme="light"] .card::after,
html[data-theme="light"] .panel::after,
html[data-theme="light"] .glass-panel::after,
html[data-theme="light"] .hero::after,
html[data-theme="light"] .top::after,
html[data-theme="light"] .topbar::after,
html[data-theme="light"] .summary-panel::after,
html[data-theme="light"] .table-wrap::after,
html[data-theme="light"] .team-bar-panel::after{
  opacity:.08!important;
}
html[data-theme="light"] .eyebrow,html[data-theme="light"] .muted,html[data-theme="light"] small,
html[data-theme="light"] .brand p,html[data-theme="light"] .hero p,html[data-theme="light"] .panel p{
  color:#526b86!important;
}
html[data-theme="light"] input,html[data-theme="light"] select,html[data-theme="light"] textarea{
  background:#fff!important;color:#12243a!important;border-color:#b6c9dd!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
}
html[data-theme="light"] table tbody tr:hover{background:#edf5fd!important}
html[data-theme="light"] th{background:linear-gradient(180deg,#e8f1fa,#dce9f5)!important;color:#173452!important}
html[data-theme="light"] td{border-color:rgba(26,73,119,.12)!important}
html[data-theme="light"] .snhl-common-footer .snhl-footer-inner{background:rgba(249,252,255,.94)!important;color:#12243a!important}

/* Le bouton flottant demeure l'unique commande de thème visible. */
.snhl-module-toolbar [data-theme-toggle],.top-actions [data-theme-toggle]{display:none!important}

/* Fondation responsive commune à tous les modules. */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video{max-width:100%}
button,input,select,textarea{font:inherit}
@media(max-width:680px){
  input,select,textarea{max-width:100%;min-width:0}
  .card,.panel,.glass-panel,.modal-card{max-width:100%}
}

/* Centre des salaires : contrôles alignés à droite et symétriques. */
.salary-control-stack{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:9px;min-width:310px}
.salary-control-stack .snhl-module-toolbar{justify-content:flex-end;width:100%}
.salary-control-label{display:block;color:#9fb3cf;font-size:10px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;margin:1px 3px -3px}
.salary-control-stack>.season-select{min-width:180px;align-self:flex-end}
.salary-select-row{display:flex;justify-content:flex-end;align-items:flex-end;gap:10px;width:100%}
.salary-select-group{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.salary-team-group .team-select{min-width:240px}
@media(max-width:1050px){
  .salary-control-stack{width:100%;min-width:0;align-items:stretch}
  .salary-control-stack .snhl-module-toolbar{justify-content:flex-start}
  .salary-select-row{justify-content:flex-start;flex-wrap:wrap}
  .salary-select-group{align-items:flex-start;flex:1 1 210px}
  .salary-select-group .season-select{width:100%;min-width:0}
}
@media(max-width:640px){.salary-select-row{display:grid;grid-template-columns:1fr}.salary-select-group{width:100%}}

/* Repêchage : les trois cartes commencent exactement au même niveau. */
.draft-layout{align-items:start!important}
.draft-layout>.panel,.draft-layout>.summary-panel{margin-top:0!important;align-self:start!important}
.draft-summary{top:18px!important}

/* V7.4 — garanties communes pour téléphone, clavier et lisibilité */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid #66baff!important;outline-offset:3px!important;
  box-shadow:0 0 0 2px rgba(5,14,25,.9)!important;
}
button,input,select,textarea{min-height:44px}
button,[role="button"],summary,label[for]{touch-action:manipulation}
.table-wrap,[class*="table-wrap"],.responsive-table{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
table{max-width:100%}
dialog,.modal,.modal-card{max-width:min(100% - 20px,760px)}
@media(max-width:680px){
  body{font-size:16px}
  .wrap,.layout,.shell,main{min-width:0}
  .wrap,.layout{max-width:100%}
  form,.form-grid,.field-grid{min-width:0}
  input,select,textarea{width:100%;font-size:16px!important}
  .actions,.button-row,.form-actions{flex-wrap:wrap}
  .actions>* ,.button-row>* ,.form-actions>*{max-width:100%}
  .modal-card{max-height:calc(100dvh - 20px);overflow-y:auto}
}
@media(max-width:390px){
  .card,.panel,.glass-panel,.hero{border-radius:14px!important}
  .card,.panel,.glass-panel{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
