
:root{
  --green:#052f24;--green2:#0a5b42;--green3:#0d8058;--cream:#f3eedf;--paper:#fffdf8;
  --gold:#f2be3c;--ink:#0b3026;--muted:#6b766e;--line:#d7dacd;--safe:env(safe-area-inset-bottom)
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;overflow-x:hidden;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Arial,sans-serif;-webkit-text-size-adjust:100%}
body{min-height:100vh}
button,input,select{font:inherit}
button{cursor:pointer}
#app{min-height:100vh;padding-bottom:calc(152px + var(--safe))}

.hero{
  height:132px;
  background:#123a2e url("assets/hero-clean.jpg") center center/cover no-repeat;
  border-bottom:3px solid #06291f;
  position:relative;
  overflow:hidden
}
.hero:after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(2,28,21,.02),rgba(2,28,21,.12));
  pointer-events:none
}

#screen{padding:11px 12px 22px;max-width:560px;margin:auto}
.eyebrow{font-size:11px;color:#13855b;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
h1{font-size:33px;line-height:1;margin:3px 0 10px}
h2{font-size:19px;margin:0 0 9px}
h3{margin:0 0 6px}
p{line-height:1.35}
.muted{color:var(--muted)}
.between{display:flex;justify-content:space-between;gap:10px;align-items:center}
.card{background:var(--paper);border:1px solid var(--line);border-radius:15px;padding:12px;margin-bottom:10px;box-shadow:0 8px 20px rgba(7,47,36,.075)}
.card.dark{background:linear-gradient(160deg,#0d6047,#07372a);color:white;border:0}
.btn{border:0;border-radius:10px;padding:10px 12px;font-weight:900}
.primary{background:var(--green3);color:#fff}
.gold{background:var(--gold);color:#173126}
.ghost{background:#edf0e8;color:var(--ink)}
.danger{background:#fde5e1;color:#952f2f}
.full{width:100%}

.nav{
  position:fixed;left:0;right:0;bottom:0;height:calc(70px + var(--safe));padding-bottom:var(--safe);
  background:#052f24;display:grid;grid-template-columns:repeat(6,1fr);z-index:100;
  border-top:1px solid rgba(255,255,255,.10)
}
.nav button{border:0;background:none;color:#a8b8b0;font-size:20px;font-weight:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.nav span{font-size:10px}
.nav button.active{color:var(--gold)}

.sticky-action{
  position:fixed;left:10px;right:10px;bottom:calc(78px + var(--safe));z-index:95;
  background:rgba(5,47,36,.98);border-radius:14px;padding:8px;box-shadow:0 10px 26px rgba(0,0,0,.28)
}
.sticky-action.hidden{display:none}
.sticky-action button{width:100%;border:0;border-radius:10px;background:var(--gold);color:#173126;font-weight:950;padding:12px;font-size:15px}

.market-head{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:10px;align-items:start}
.budget-mini{background:#f6f1e4;border-radius:12px;text-align:center;padding:8px}
.budget-mini span{display:block;font-size:10px;color:#68746d}
.budget-mini b{display:block;font-size:20px}

.roundbar{display:flex;align-items:center;gap:8px;margin:8px 0 10px}
.roundbar .dot{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ddd9cc;font-weight:950}
.roundbar .dot.on{background:#11875d;color:#fff}
.roundbar .line{flex:1;height:2px;background:#d3d0c3}

.rule{background:#e8f4ef;border-left:5px solid #1ba06f;border-radius:10px;padding:10px 11px;margin-bottom:10px;font-size:13px;line-height:1.3}

.envelope{background:linear-gradient(160deg,#0d6047,#07372a);color:white;border-radius:15px;padding:12px;margin-bottom:10px}
.envelope-title{color:var(--gold);font-weight:950;letter-spacing:.14em;font-size:11px}
.envgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}
.envbox{background:#fffdf7;color:var(--ink);border-radius:10px;padding:8px;min-height:58px}
.envbox small{display:block;color:#6b766e;font-size:9px}
.envbox b{display:block;font-size:17px;margin-top:2px}

.needgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.need{background:#fff0d8;border-radius:8px;padding:7px;font-size:9px}
.need.ok{background:#e2f2e6}
.need b{display:block;font-size:13px}

.filters{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.filters input,.filters select{width:100%;min-width:0;padding:9px;border:1px solid #d3d6ca;border-radius:9px;background:#fff;color:#102f26}

.playerlist{display:grid;gap:7px;margin-top:9px}
.pcard{background:#fffdf8;border:1px solid #e0e2d7;border-radius:12px;padding:9px}
.ptop{display:grid;grid-template-columns:46px minmax(0,1fr) 49px;gap:7px;align-items:center}
.ptop .jersey{width:44px;height:44px}
.pname{font-size:14px;font-weight:950}
.pmeta{font-size:10px;color:#717d74;display:flex;gap:4px;align-items:center}
.pmeta img{width:16px;height:16px}
.pvalue{text-align:right;font-size:14px;font-weight:950}
.pbid{display:grid;grid-template-columns:34px 1fr 34px 92px;gap:6px;margin-top:8px}
.pbid button{border:0;border-radius:8px;background:#e9e6da;color:#1f73d7;font-weight:950;height:34px}
.pbid input{width:100%;min-width:0;border:1px solid #cbd0c4;border-radius:8px;height:34px;text-align:center;font-weight:950;font-size:15px}
.pbid .add{background:var(--green3);color:#fff}

.cartrow{display:grid;grid-template-columns:minmax(0,1fr) 78px 32px;gap:7px;align-items:center;background:#f1eee3;border-radius:9px;padding:8px;margin-bottom:6px}
.cartrow .amount{text-align:right;font-weight:950}

.suggestions{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}
.suggestion{min-width:132px;background:#f1efe5;border-radius:10px;padding:8px}
.suggestion img{width:48px;height:48px}
.suggestion b{display:block;font-size:13px}
.suggestion small{display:block;color:#6b766e;font-size:10px;margin-bottom:6px}

.pitchwrap{background:#072f24;border-radius:15px;padding:7px;box-shadow:0 7px 0 #031d17}
.pitch{position:relative;aspect-ratio:.62;background:url("assets/pitch-grass.jpg") center/cover;border:3px solid rgba(255,255,255,.78);overflow:hidden}
.pitch:before,.pitch:after{content:"";position:absolute;left:4%;right:4%;border-top:2px solid rgba(255,255,255,.72)}
.pitch:before{top:22%}.pitch:after{bottom:22%}
.mid{position:absolute;left:4%;right:4%;top:50%;border-top:2px solid rgba(255,255,255,.72)}
.try{position:absolute;left:4%;right:4%;height:11%;border-top:2px solid rgba(255,255,255,.72);border-bottom:2px solid rgba(255,255,255,.72)}
.try.top{top:3%}.try.bottom{bottom:3%}
.slot{position:absolute;transform:translate(-50%,-50%);width:64px;text-align:center}
.slot img{width:44px;height:44px;filter:drop-shadow(0 3px 2px rgba(0,0,0,.35))}
.slot em{display:block;background:#052c22;color:white;border-radius:6px;padding:3px 4px;font-size:8px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.kpi{background:#f0eee4;border-radius:10px;padding:8px;text-align:center}
.kpi b{display:block;font-size:18px}
.score{text-align:center;background:#082f24;color:white;border-radius:14px;padding:15px}
.score strong{font-size:40px}
.bonus{background:#f1efe5;border-radius:10px;padding:9px;margin-bottom:7px}

@media (min-width:700px){
  #app{max-width:500px;margin:auto;box-shadow:0 0 30px rgba(0,0,0,.18)}
  .nav,.sticky-action{max-width:500px;margin:auto}
}


/* ===== V13 — MERCATO PAR POSTE, TYPE FEUILLE D'ENCHERES ===== */
.market-sheet{display:grid;gap:9px}
.pos-block{background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 7px 18px rgba(7,47,36,.06)}
.pos-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:11px 12px;background:#faf8ef;border-bottom:1px solid #e3e4d9}
.pos-title{display:flex;align-items:center;gap:8px;font-weight:950}
.pos-title .mini-shirt{width:25px;height:25px;opacity:.9}
.pos-count{font-size:12px;font-weight:900;color:#66746b}
.pos-count.bad{color:#a44235}
.pos-count.good{color:#168559}
.selected-list{display:grid}
.selected-player{display:grid;grid-template-columns:42px minmax(0,1fr) 120px 30px;gap:7px;align-items:center;padding:9px 10px;border-bottom:1px solid #ecece4;background:#fffdf8}
.selected-player:last-child{border-bottom:0}
.selected-player img{width:38px;height:38px}
.selected-player .sp-name{font-size:13px;font-weight:950}
.selected-player .sp-meta{font-size:10px;color:#738078}
.selected-player .editbid{display:grid;grid-template-columns:28px 1fr 28px;gap:4px}
.selected-player .editbid button{height:31px;border:0;border-radius:8px;background:#ece8dc;color:#2175d9;font-weight:950}
.selected-player .editbid input{width:100%;min-width:0;height:31px;border:1px solid #cbd0c4;border-radius:8px;text-align:center;font-weight:950}
.selected-player .remove{height:31px;border:0;border-radius:8px;background:#fde5e1;color:#9b2f2f;font-weight:950}
.add-pos{width:100%;border:0;background:#fffdf8;color:#3156c7;text-align:left;padding:11px 12px;font-weight:900}
.add-pos strong{font-size:18px;margin-right:6px}
.market-summary-sticky{position:fixed;left:10px;right:10px;bottom:calc(78px + var(--safe));z-index:95;background:#052f24;color:#fff;border-radius:14px;padding:9px 10px;box-shadow:0 10px 26px rgba(0,0,0,.28)}
.market-summary-sticky .sumline{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;margin-bottom:7px;font-size:12px}
.market-summary-sticky .sumline b{font-size:14px}
.market-summary-sticky button{width:100%;border:0;border-radius:10px;background:var(--gold);color:#173126;font-weight:950;padding:12px;font-size:15px}
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.46);z-index:140;display:flex;align-items:flex-end}
.drawer{width:100%;max-height:84vh;overflow:auto;background:var(--cream);border-radius:22px 22px 0 0;padding:12px 12px calc(18px + var(--safe));box-shadow:0 -12px 30px rgba(0,0,0,.22)}
.drawer-grab{width:42px;height:5px;border-radius:99px;background:#c8c8bf;margin:0 auto 10px}
.drawer-head{position:sticky;top:0;z-index:3;background:var(--cream);padding-bottom:8px}
.drawer-list{display:grid;gap:7px}
.drawer-player{background:#fffdf8;border:1px solid #dedfd5;border-radius:12px;padding:9px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px;align-items:center}
.drawer-player img{width:42px;height:42px}
.drawer-player .dp-name{font-size:14px;font-weight:950}
.drawer-player .dp-meta{font-size:10px;color:#748077}
.drawer-player .choose{border:0;background:var(--green3);color:#fff;border-radius:9px;padding:8px 10px;font-weight:900}
.drawer-search{width:100%;padding:10px;border:1px solid #ced2c7;border-radius:10px;background:#fff}
.market-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;margin-bottom:7px}
.market-intro .roundbig{font-size:34px;font-weight:950;line-height:1}
.market-intro .budgetbox{background:#fffdf7;border:1px solid var(--line);border-radius:12px;padding:7px 9px;text-align:center}
.market-intro .budgetbox small{display:block;color:#6c776f;font-size:9px}
.market-intro .budgetbox b{font-size:19px}
.reserve-note{font-size:11px;color:#6a766e;margin-top:7px}

html,body{touch-action:manipulation}button,a,.btn,.add-pos,.choose,.nav button{touch-action:manipulation}input,select,textarea{font-size:16px!important;touch-action:manipulation}


/* ===== V15 — terrain rugby, matchs détaillés, classement ===== */
.nav{grid-template-columns:repeat(6,1fr)}
.nav button{font-size:9px;gap:3px}
.navico{width:22px;height:22px;display:grid;place-items:center;font-style:normal;font-weight:950;font-size:10px;position:relative}
.homeico:before{content:"";width:13px;height:11px;border:2px solid currentColor;border-top:0;border-radius:2px;transform:translateY(3px)}
.homeico:after{content:"";position:absolute;width:11px;height:11px;border-left:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);top:2px}
.marketico:before,.marketico:after{content:"";position:absolute;width:17px;border-top:2px solid currentColor}
.marketico:before{top:7px}.marketico:after{bottom:7px}
.marketico{border-left:0}
.ballico{border:2px solid currentColor;border-radius:55% 45% 55% 45%;transform:rotate(-25deg)}
.ballico:after{content:"";width:10px;border-top:2px solid currentColor;transform:rotate(25deg)}
.rankico,.teamico{border:2px solid currentColor;border-radius:7px}
.moreico{font-size:13px}

.hero-panel{background:linear-gradient(145deg,#073e30,#052b22);color:#fff;border-radius:15px;padding:14px;margin-bottom:10px;box-shadow:0 9px 18px rgba(4,42,32,.18)}
.hero-panel small{color:#d7d8a6}.hero-panel h2{margin:3px 0 8px}.hero-panel p{font-size:12px;color:#dce5df}
.home-score{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.home-score div b{display:block;font-size:14px;margin-top:2px}
.home-score>strong{font-size:31px;color:#f4cf3b}
.mini-link{grid-column:1/-1;border:0;background:transparent;color:#fff;text-align:right;font-weight:900}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.dash-tile{border:1px solid #dadccf;background:#fffdf8;border-radius:13px;padding:12px;text-align:left;color:#14352c}
.dash-tile b,.dash-tile small{display:block}.dash-tile small{color:#758077;margin-top:3px}
.tile-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:10px;background:#0b6b4d;color:#fff;font-weight:950;margin-bottom:9px}
.visual-card{overflow:hidden;position:relative}
.visual-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-35px;top:-40px;background:#f0c92e;opacity:.22}
.headline{font-size:18px;font-weight:950;line-height:1.1;margin:10px 0 5px}
.tag{display:inline-block;background:#e6efe9;color:#176346;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:950;text-transform:uppercase}
.text-btn{border:0;background:none;color:#2466c7;font-weight:900}
.mini-table-row,.history-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #e7e7df}
.history-row{grid-template-columns:minmax(0,1fr) auto}

/* Real rugby field rather than a generic grass card */
.rugby-board{background:#062b21;border-radius:16px;padding:9px;box-shadow:0 8px 0 #031c16;margin-bottom:12px}
.rugby-board .pitch{position:relative;aspect-ratio:.63;overflow:hidden;border:3px solid rgba(255,255,255,.9);
background:
linear-gradient(90deg,rgba(255,255,255,.035) 0 50%,rgba(0,0,0,.025) 50% 100%),
repeating-linear-gradient(0deg,#207a43 0,#207a43 58px,#277f47 58px,#277f47 116px);
background-size:100% 100%,100% 100%;box-shadow:inset 0 0 30px rgba(0,0,0,.22)}
.rugby-board .pitch:before,.rugby-board .pitch:after{content:none}
.rugby-board .mid,.rugby-board .line22,.rugby-board .line10,.rugby-board .goal-line{position:absolute;left:0;right:0;border-top:2px solid rgba(255,255,255,.92)}
.rugby-board .mid{top:50%}.l22top{top:22%}.l22bot{top:78%}.l10top{top:39%;border-top-style:dashed!important}.l10bot{top:61%;border-top-style:dashed!important}
.gtop{top:8%}.gbot{top:92%}
.rugby-board .pitch:after{content:"";display:block;position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed rgba(255,255,255,.22)}
.posts{position:absolute;left:50%;width:42px;height:25px;transform:translateX(-50%);z-index:2}
.posts-top{top:5.5%}.posts-bottom{bottom:5.5%;transform:translateX(-50%) rotate(180deg)}
.posts i{position:absolute;top:0;height:24px;border-left:3px solid #fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}
.posts i:first-child{left:8px}.posts i:nth-child(2){right:8px}.posts b{position:absolute;left:8px;right:8px;top:13px;border-top:3px solid #fff}
.selector-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.selector-strip>div{background:#fffdf8;border:1px solid #dfe0d5;border-radius:12px;padding:10px}
.selector-strip small,.selector-strip b{display:block}.selector-strip b{font-size:12px;margin:3px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.selector-strip button{border:0;background:#e7eee9;color:#176346;border-radius:7px;padding:6px 8px;font-weight:900}
.match-cta{margin-bottom:10px}
.bench-strip{display:flex;gap:7px;overflow-x:auto;padding:4px 0}
.bench-strip>div{min-width:54px;text-align:center}.bench-strip img{width:44px;height:44px}.bench-strip small{display:block;font-size:9px;overflow:hidden;text-overflow:ellipsis}

/* Match centre */
.scoreboard{display:grid;grid-template-columns:1fr 110px 1fr;align-items:center;gap:6px;background:linear-gradient(145deg,#062e24,#0b513b);color:#fff;border-radius:16px;padding:15px 8px;margin-bottom:10px;box-shadow:0 9px 18px rgba(4,42,32,.18)}
.side{text-align:center;min-width:0}.side b{font-size:10px;display:block;line-height:1.1;margin-top:6px}.crest,.tiny-crest{display:grid;place-items:center;margin:auto;width:39px;height:39px;border:2px solid #f2cf3a;border-radius:12px;background:#fff;color:#0a513c;font-size:10px;font-weight:950}
.score-center{text-align:center}.score-center small,.score-center em{display:block;font-size:8px;font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:#d5dfd9}
.score-center strong{display:flex;align-items:center;justify-content:center;gap:8px;font-size:34px;line-height:1.1;color:#f5d039}.score-center strong i{font-size:16px;color:#fff;font-style:normal}
.timeline{display:grid}.event{display:grid;grid-template-columns:34px 25px minmax(0,1fr) 30px;gap:5px;align-items:center;padding:8px 0;border-bottom:1px solid #e9e9e1}
.event time{font-weight:950;color:#6d776f}.event div b,.event div small{display:block}.event div b{font-size:12px}.event div small{font-size:10px;color:#758077}
.event.theirs{opacity:.72}.event.ours div b{color:#0a6849}
.rating-row{display:grid;grid-template-columns:38px minmax(0,1fr) 40px;gap:7px;align-items:center;padding:7px 0;border-bottom:1px solid #e9e9e1}
.rating-row img{width:35px;height:35px}.rating-row span b,.rating-row span small{display:block}.rating-row span b{font-size:12px}.rating-row span small{font-size:9px;color:#758077}
.rating-row>strong{display:grid;place-items:center;height:34px;border-radius:9px;background:#e8ece8}.rating-row>strong.hot{background:#0b7452;color:#fff}

/* Standings */
.stand-card{background:#fffdf8;border:1px solid #dadccf;border-radius:13px;overflow:hidden;margin-bottom:10px}
.stand-head,.stand-row{display:grid;grid-template-columns:24px minmax(100px,1fr) 23px 23px 23px 23px 42px 34px;gap:2px;align-items:center;padding:8px 7px;font-size:9px}
.stand-head{background:#07382b;color:#fff;font-weight:900;text-transform:uppercase}
.stand-row{border-bottom:1px solid #e9e9e1}.stand-row.me{background:#fff5c5}
.stand-row>span{display:flex;align-items:center;gap:5px;font-weight:900;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stand-row em{font-style:normal;text-align:center}.stand-row>strong{text-align:center;font-size:12px}
.tiny-crest{width:22px;height:22px;border-radius:6px;border-width:1px;font-size:6px;margin:0;flex:0 0 auto}

@media (max-width:370px){
 .stand-head,.stand-row{grid-template-columns:20px minmax(84px,1fr) 20px 20px 20px 20px 36px 30px;font-size:8px;padding-left:4px;padding-right:4px}
 .scoreboard{grid-template-columns:1fr 96px 1fr}
 .selected-player{grid-template-columns:38px minmax(0,1fr) 108px 28px}
}

/* V15.2 click reliability */
button,[role="button"],.nav button{pointer-events:auto!important;touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,.08)}
.nav{z-index:500!important}
#stickyAction{z-index:450}

/* ===== V16 rankings + league setup ===== */
.match-explain{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 2px}
.match-explain span{background:#eef2ed;border-radius:8px;padding:7px;text-align:center;font-size:10px}
.seg-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px;background:#e6eadf;padding:4px;border-radius:12px}
.seg{border:0;background:transparent;border-radius:9px;padding:9px 6px;font-weight:900;color:#617067}
.seg.active{background:#07382b;color:#fff}
.leader-row{display:grid;grid-template-columns:24px 38px minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px 0;border-bottom:1px solid #e8e9e1}
.leader-row img{width:34px;height:34px}.leader-row span{font-size:12px;font-weight:900}.leader-row span small{display:block;color:#7b857e;font-size:9px;font-weight:600}
.leader-row>strong{font-size:13px;color:#0b6a4c}
.field-label{display:block;font-size:11px;font-weight:900;margin:9px 0;color:#53645b}
.field-label input,.field-label select{display:block;width:100%;margin-top:5px;border:1px solid #cfd5cb;border-radius:10px;padding:10px;background:#fff}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}
.settings-grid label{background:#eef2ed;border-radius:9px;padding:8px;font-size:10px}
.invite-code{margin-top:10px;background:#07382b;color:#fff;border-radius:13px;padding:13px;text-align:center}
.invite-code small,.invite-code span{display:block;color:#c9d8d1}.invite-code strong{display:block;font-size:29px;letter-spacing:.08em;color:#f5d039;margin:4px 0}

/* V17 */
.rating-row>strong.cold{background:#f4ded8;color:#9a3f34}
.card .tag{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== V17.1 — propriétaire fantasy visible ===== */
.fantasy-owner{
  display:block!important;
  margin-top:2px;
  color:#0b6a4c!important;
  font-size:9px!important;
  font-weight:850!important;
}
.owner-badge{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  margin-top:3px;
  padding:3px 6px;
  border-radius:999px;
  background:#e8efe9;
  color:#1b5c46;
  font-size:8px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.owner-badge.mine{
  background:#fff2b9;
  color:#6f5710;
}
.leader-row span small + small{margin-top:2px}
.rating-row span{min-width:0}
.rating-row span .fantasy-owner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event div .fantasy-owner{margin-top:1px}

/* ===== V17.2 contrast fixes ===== */
.card.dark .kpi{
  background:rgba(255,255,255,.10);
  color:#fff;
  border:1px solid rgba(255,255,255,.12)
}
.card.dark .kpi b{color:#f5cf3f}
.card.dark .kpi span{color:#eef6f2}

/* ===== V17.2 match visual ===== */
.match-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;background:#e5e9df;border-radius:10px;padding:4px;margin:10px 0 8px}
.match-tab{border:0;border-radius:8px;background:transparent;padding:8px;font-size:11px;font-weight:900;color:#66736b}
.match-tab.active{background:#07382b;color:#fff}

.match-pitch{
  position:relative;
  aspect-ratio:.64;
  border:3px solid rgba(255,255,255,.92);
  border-radius:4px;
  overflow:hidden;
  margin:0 0 12px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035) 0 50%,rgba(0,0,0,.025) 50% 100%),
    repeating-linear-gradient(0deg,#247d46 0,#247d46 48px,#2a854c 48px,#2a854c 96px);
  box-shadow:inset 0 0 26px rgba(0,0,0,.20),0 5px 12px rgba(6,50,38,.14)
}
.match-pitch:after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed rgba(255,255,255,.25)}
.mp-mid,.mp-22,.mp-10,.mp-goal{position:absolute;left:0;right:0;border-top:2px solid rgba(255,255,255,.92)}
.mp-mid{top:50%}.mp-22.top{top:22%}.mp-22.bottom{top:78%}.mp-10.top{top:39%;border-top-style:dashed}.mp-10.bottom{top:61%;border-top-style:dashed}.mp-goal.top{top:8%}.mp-goal.bottom{top:92%}
.mp-posts{position:absolute;left:50%;width:34px;height:22px;transform:translateX(-50%);z-index:2}
.mp-posts.top{top:5.2%}.mp-posts.bottom{bottom:5.2%;transform:translateX(-50%) rotate(180deg)}
.mp-posts i{position:absolute;top:0;height:22px;border-left:3px solid #fff}.mp-posts i:first-child{left:6px}.mp-posts i:nth-child(2){right:6px}.mp-posts b{position:absolute;left:6px;right:6px;top:12px;border-top:3px solid #fff}

.match-slot{position:absolute;transform:translate(-50%,-50%);width:68px;text-align:center;z-index:3}
.match-shirt-wrap{position:relative;display:inline-block}
.match-slot img{width:38px;height:38px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.32))}
.note-dot{position:absolute;right:-12px;top:-7px;min-width:27px;height:23px;padding:0 4px;border-radius:999px;background:#e8ece8;color:#17372e;border:2px solid #fff;display:grid;place-items:center;font-size:9px;font-weight:950;box-shadow:0 2px 5px rgba(0,0,0,.18)}
.note-dot.good{background:#0b7452;color:#fff}.note-dot.bad{background:#ad493b;color:#fff}
.match-slot em{display:block;background:#06372a;color:#fff;border-radius:6px;padding:2px 4px;font-size:7px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:-2px}
.event-badges{display:block;min-height:13px;margin-top:2px;font-size:9px;background:rgba(255,255,255,.92);color:#123a2e;border-radius:999px;padding:1px 4px;white-space:nowrap}
.event.missed{background:#fff2ef;border-left:3px solid #c65b4e;padding-left:5px}
.event.missed b{color:#9c3f34!important}

/* ===== V17.3 consistency pass ===== */
.event>span{width:30px;height:30px;display:grid;place-items:center}
.event-icon{width:27px;height:27px;display:block}
.event-badges{display:flex!important;justify-content:center;gap:2px;background:rgba(255,255,255,.94)}
.event-badges img{width:13px!important;height:13px!important;filter:none!important}
@media(max-width:380px){.hero{height:118px}}

/* ===== V17.4 — mêmes pictos rugby dans les Tops ===== */
.rank-title{
  display:flex;
  align-items:center;
  gap:9px;
}
.section-rugby-icon{
  width:30px;
  height:30px;
  flex:0 0 30px;
  object-fit:contain;
}
.section-star{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#f2c53c;
  color:#15382e;
  font-size:18px;
  line-height:1;
  flex:0 0 30px;
}

/* ===== V17.5 — identité pictographique 100% XV des Copains ===== */
.ui-inline-icon,.owner-icon{
  width:14px;height:14px;display:inline-block;vertical-align:-2px;object-fit:contain
}
.headline-icon{
  width:25px;height:25px;display:inline-block;vertical-align:-6px;margin-right:5px;object-fit:contain
}
.fantasy-owner{display:flex!important;align-items:center;gap:4px}
.rank-title .section-rugby-icon{object-fit:contain}

/* ===== V18 — nouvelle base visuelle XV des Copains ===== */
:root{
  --green:#043c30;
  --green2:#07513f;
  --green3:#0d7656;
  --cream:#f4efdf;
  --paper:#fffdf7;
  --gold:#f3c33f;
  --ink:#10372d;
  --muted:#718078;
  --line:#d8dacd;
}

/* Le bandeau est désormais le visuel validé intégré à l'app,
   sans barre iOS ni navigation "dessinée" dans l'image. */
.hero{
  height:128px;
  background-image:
    linear-gradient(90deg,rgba(2,35,27,.04),rgba(2,35,27,.08)),
    url("assets/hero-v18.jpg");
  background-size:cover;
  background-position:42% center;
  background-repeat:no-repeat;
  border-bottom:4px solid #06372b;
  box-shadow:0 8px 22px rgba(2,35,27,.13);
}
.hero:after{display:none}

/* Plus proche du concept : surface claire, blocs francs et moins "SaaS". */
#screen{padding-top:14px}
.card{
  border-radius:13px;
  border-color:#d9dbcf;
  box-shadow:0 5px 14px rgba(7,47,36,.06)
}
h1{letter-spacing:-.035em}
.eyebrow{color:#4e9a7b}

/* Navigation reprenant le langage visuel du bandeau généré. */
.nav{
  background:#043c30;
  border-top:1px solid rgba(255,255,255,.12);
  box-shadow:0 -8px 22px rgba(2,35,27,.12)
}
.nav button{color:#b9c5bf}
.nav button.active{color:var(--gold)}
.navico{transform:scale(.96)}

/* Boutons plus proches du rendu sport premium de la maquette. */
.btn.gold,.market-summary-sticky button{
  background:linear-gradient(180deg,#f5c947,#efbc32);
  box-shadow:inset 0 1px rgba(255,255,255,.35)
}
.btn.primary{
  background:linear-gradient(180deg,#11795a,#096447)
}

/* Titres des classements / match dans la même DA. */
.rank-title,.headline{color:#11382e}
.tag{background:#e6eee8;color:#176246}

/* iPhone : le bandeau reste compact et bien cadré.
   On privilégie le logo + le ballon, sans remontrer un budget permanent. */
@media(max-width:430px){
  .hero{
    height:112px;
    background-position:39% center;
  }
}
@media(max-width:375px){
  .hero{
    height:104px;
    background-position:38% center;
  }
}
@media(min-width:700px){
  .hero{height:145px;background-position:center}
}

/* ===== V19 club identity + lighter match ===== */
.owner-crest{width:18px;height:18px;display:inline-grid;vertical-align:-4px;margin-right:4px}.owner-crest svg{width:100%;height:100%}
.crest-preview{width:92px;height:92px;margin:8px auto 16px}.crest-preview svg{width:100%;height:100%}.crest-preview.small{width:72px;height:72px;flex:0 0 72px}
.crest-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.crest-options label{font-size:12px;color:var(--muted)}.crest-options select,.crest-options input{width:100%;min-height:44px;margin-top:4px}
.crest-edit-row{display:flex;gap:14px;align-items:center}.crest-options.compact{flex:1}
.compact-match-info{margin-top:12px}.tap-hint{font-size:13px;color:#39715e;margin:10px 0 0}
.match-slot{border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer}
.player-modal{position:fixed;inset:0;background:rgba(2,28,21,.58);z-index:9999;display:flex;align-items:flex-end;justify-content:center}
.player-sheet{background:var(--paper);width:min(100%,560px);border-radius:22px 22px 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom));position:relative;box-shadow:0 -16px 40px rgba(0,0,0,.18)}
.modal-close{position:absolute;right:14px;top:12px;border:0;background:#e8ede8;width:36px;height:36px;border-radius:50%;font-size:24px}
.player-sheet-head{display:grid;grid-template-columns:58px 1fr 58px;gap:12px;align-items:center}.player-sheet-head img{width:54px}.player-sheet-head h2{margin:2px 0}.player-sheet-head strong{font-size:24px;background:#e3eee7;border-radius:13px;padding:10px;text-align:center}
.stat-chips{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.stat-chips span{background:#edf1eb;padding:7px 10px;border-radius:999px;font-size:12px}
.note-calc{border-top:1px solid var(--line);margin:8px 0 14px}.note-calc span{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.club-create input,.club-create select,#editPseudo,#editTeam,#editStadium{font-size:16px}

/* ===== V20 opponent clubs ===== */
.stand-row{width:100%;border:0;background:transparent;font:inherit;color:inherit;text-align:inherit;cursor:pointer}.stand-row:active{background:rgba(18,92,68,.08)}
.opponent-link{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.opponent-link small{display:block;font-size:10px;color:#c69a22;margin-top:3px}
.club-back{margin-bottom:8px}.club-hero{display:flex;gap:16px;align-items:center;margin:4px 0 16px}.club-big-crest{width:76px;height:76px;flex:0 0 76px}.club-big-crest svg{width:100%;height:100%}.club-hero h1{margin:2px 0}.club-hero p{margin:2px 0;color:var(--muted)}
.club-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.club-kpis div{background:#173f33;color:#fff;border-radius:13px;padding:11px;text-align:center}.club-kpis b{display:block;font-size:19px}.club-kpis small{opacity:.72}.form-dots{display:flex;gap:5px}.form-dots i{font-style:normal;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;background:#e7ece7}.form-dots .V{background:#d8eddf}.form-dots .D{background:#f2d9d2}.form-dots .N{background:#eee6c9}
.club-pitch{margin-top:12px}.squad-row{width:100%;display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 0;text-align:left;color:inherit;font:inherit}.squad-row img{width:38px;height:38px;object-fit:contain}.squad-row span small{display:block;color:var(--muted);font-size:11px}.squad-row em{font-size:11px;font-style:normal;color:var(--muted);background:#edf1eb;padding:5px 7px;border-radius:999px}
.club-match-card{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;border:0;background:var(--paper);border-radius:13px;padding:13px;margin:8px 0;text-align:left;color:inherit;box-shadow:0 2px 10px rgba(0,0,0,.06)}.club-match-card span small{display:block;color:var(--muted)}.club-match-card strong{font-size:19px}.club-match-card em{font-style:normal;color:var(--muted);font-size:11px}.club-match-card .win{color:#166543}.club-match-card .loss{color:#9b392c}.club-match-sheet{max-height:88vh;overflow:auto}.bonus-summary{background:#edf1eb;border-radius:10px;padding:9px 11px;margin:10px 0 14px}

.next-opponent{display:grid;gap:7px;background:rgba(255,255,255,.7);padding:12px;border-radius:13px;margin:12px 0}.next-opponent span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.next-opponent b{font-size:18px}

/* V20.1 — écussons + forme récente dans le classement */
.stand-team{display:flex!important;align-items:center!important;gap:7px!important;overflow:visible!important}
.tiny-team-crest{width:27px;height:27px;display:grid;flex:0 0 27px}
.tiny-team-crest svg{width:100%;height:100%;display:block}
.stand-team-copy{display:flex;flex-direction:column;min-width:0;gap:3px}
.stand-team-copy>strong{font-size:11px;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.form-dots.stand-form{gap:3px;line-height:1}
.form-dots.stand-form i{width:15px;height:15px;font-size:7px}
.form-dots.stand-form em{font-style:normal;color:#9aa39d;font-size:9px}
.stand-row{min-height:52px}
@media(max-width:430px){.stand-head,.stand-row{grid-template-columns:20px minmax(116px,1fr) 19px 19px 19px 19px 34px 29px}.tiny-team-crest{width:25px;height:25px;flex-basis:25px}.stand-team-copy>strong{font-size:10px}}

/* ===== V21 multi-ligues ===== */
.league-list{display:grid;gap:12px;margin:14px 0}.league-card{padding:16px}.league-card.active{outline:2px solid rgba(243,195,63,.72)}.league-card.archived{opacity:.68}.league-card-top{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center}.league-card-top h2{margin:2px 0 4px;font-size:19px}.league-card-top p{margin:0;color:var(--muted);font-size:13px}.league-card-top small{color:var(--muted)}.league-badge{width:44px;height:44px;display:grid;place-items:center}.league-badge svg{width:42px;height:42px}.league-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.league-actions .btn{width:auto;padding:9px 12px;font-size:12px}.league-actions .text-btn{margin-left:auto}.mini-note{font-size:12px;margin-bottom:0}.league-switch-card h2{margin:1px 0 0}
@media(max-width:430px){.league-card-top{grid-template-columns:42px 1fr auto}.league-badge,.league-badge svg{width:38px;height:38px}.league-actions{gap:6px}.league-actions .btn{padding:8px 10px}}

/* ===== V22 — timeline score gauche/droite + écussons enrichis ===== */
.team-score-crest{width:42px!important;height:48px!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important}
.team-score-crest svg{width:100%;height:100%;display:block}.scoreboard .side{min-width:0}.scoreboard .side b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-timeline{position:relative;margin:12px -4px 2px;padding:8px 0 4px}
.score-timeline:before{content:"";position:absolute;left:50%;top:54px;bottom:28px;width:2px;background:#cfd3cd;transform:translateX(-1px);z-index:0}
.score-timeline-teams{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:8px;position:relative;z-index:2}
.score-timeline-teams>span{display:flex;align-items:center;gap:7px;min-width:0;font-size:10px}.score-timeline-teams>span:last-child{flex-direction:row-reverse;text-align:right}.score-timeline-teams svg{width:30px;height:34px;flex:0 0 30px}.score-timeline-teams b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.score-time-row{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:5px;align-items:center;min-height:64px;position:relative;z-index:1}
.score-time-row>time{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#f3f3ef;border:1px solid #c9cec8;font-size:10px;font-weight:950;color:#304038;box-shadow:0 1px 4px rgba(0,0,0,.07)}
.score-side{min-width:0}.score-event-card{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:6px;align-items:center;background:#fff;border:1px solid #e1e4de;border-radius:9px;padding:8px 7px;box-shadow:0 2px 7px rgba(6,50,38,.05);min-width:0}
.score-time-row.left .score-event-card{border-left:4px solid #1da766}.score-time-row.right .score-event-card{border-right:4px solid #2b70e8;grid-template-columns:auto minmax(0,1fr) 25px}.score-time-row.right .score-event-card .score-event-icon{grid-column:3}.score-time-row.right .score-event-card .score-event-copy{grid-column:2;grid-row:1;text-align:right}.score-time-row.right .score-event-card>strong{grid-column:1;grid-row:1}
.score-event-icon{width:25px;height:25px;display:grid;place-items:center}.score-event-icon .event-icon{width:23px;height:23px}.score-event-copy{min-width:0}.score-event-copy b,.score-event-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-event-copy b{font-size:10px;color:#142b24}.score-event-copy small{font-size:9px;color:#717a74;margin-top:2px}.score-event-card>strong{font-size:10px;background:#f1f2ee;border-radius:6px;padding:6px 5px;white-space:nowrap;color:#1d2925}.score-event-card.missed{background:#fff7f5}.score-event-card.missed .score-event-copy b{color:#9c3f34}
.score-time-separator{display:grid;grid-template-columns:1fr 38px 1fr;gap:5px;align-items:center;margin:5px 0;position:relative;z-index:2}.score-time-separator b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#5b615d;color:#fff;font-size:9px}.score-time-separator span{background:#e9ebe7;border-radius:6px;padding:6px;text-align:center;font-size:10px;font-weight:900}.score-time-separator.final{margin-top:9px}.score-time-separator.final b{background:#07382b}
.crest-options select{font-size:14px}.crest-preview svg{filter:drop-shadow(0 3px 5px rgba(0,0,0,.12))}
@media(max-width:390px){.score-time-row{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:3px;min-height:60px}.score-time-row>time,.score-time-separator b{width:32px;height:32px;font-size:9px}.score-event-card{grid-template-columns:22px minmax(0,1fr) auto;gap:4px;padding:7px 5px}.score-time-row.right .score-event-card{grid-template-columns:auto minmax(0,1fr) 22px}.score-event-copy b{font-size:9px}.score-event-copy small{font-size:8px}.score-event-card>strong{font-size:9px;padding:5px 4px}.score-time-separator{grid-template-columns:1fr 34px 1fr;gap:3px}.score-timeline-teams{gap:18px}.score-timeline-teams>span{font-size:9px}}
@media(max-width:350px){.score-event-icon{display:none}.score-event-card,.score-time-row.right .score-event-card{grid-template-columns:minmax(0,1fr) auto}.score-time-row.right .score-event-card .score-event-copy{grid-column:2}.score-time-row.right .score-event-card>strong{grid-column:1}.score-timeline{margin-left:-8px;margin-right:-8px}}

/* ===== V23 manual XV composition ===== */
.composition-status{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#fff4cf;border:1px solid #ead894;border-radius:14px;padding:11px 13px;margin:0 0 12px;font-size:12px}
.composition-status b{font-size:14px}.composition-status span{color:var(--muted);text-align:right}.composition-status.validated{background:#e6f1ea;border-color:#b9d2c1}
.manual-slot{border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer;min-width:48px}
.manual-slot.empty{width:54px;height:50px;border:1px dashed rgba(255,255,255,.7);border-radius:12px;background:rgba(10,70,50,.34);display:flex;flex-direction:column;align-items:center;justify-content:center}
.manual-slot .empty-shirt{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#f6e39a;color:#174e3a;font-weight:900;font-size:20px;line-height:1}
.manual-slot.empty em{font-size:8px;max-width:58px;white-space:normal;line-height:1.05;margin-top:3px;color:white}
.manual-slot.filled small{display:block;font-size:7px;color:#f2f6ec;max-width:65px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.manual-bench{display:grid!important;grid-template-columns:repeat(4,1fr);gap:9px}
.bench-slot{border:0;background:#f0f2ea;border-radius:12px;min-height:78px;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:inherit;color:inherit}
.bench-slot img{width:38px;height:38px;object-fit:contain}.bench-slot small{font-size:9px;max-width:65px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bench-slot.empty{border:1px dashed #aab4a8;background:#f8f8f3}.bench-slot.empty span{font-size:23px;font-weight:800;color:#39715e}
.comp-sheet{max-height:78vh;overflow:auto}.comp-player-list{display:grid;gap:7px;margin-top:12px}
.comp-player-choice{display:grid;grid-template-columns:46px 1fr 42px;gap:10px;align-items:center;border:1px solid #dfe3d9;background:#fff;border-radius:13px;padding:8px;text-align:left;color:inherit;font:inherit}
.comp-player-choice img{width:42px;height:42px;object-fit:contain}.comp-player-choice span{display:flex;flex-direction:column;min-width:0}.comp-player-choice b{font-size:13px}.comp-player-choice small{font-size:10px;color:var(--muted)}.comp-player-choice strong{text-align:center;background:#e8efe9;border-radius:10px;padding:7px 4px}
.remove-player-btn{width:100%;border:1px solid #d1a2a2;background:#fff1f1;color:#8c2828;border-radius:11px;padding:10px;font-weight:700}
.selector-strip button:disabled{opacity:.45}
@media(max-width:390px){.manual-slot.empty{width:48px;height:47px}.manual-bench{gap:6px}.bench-slot{min-height:72px}}

/* ===== V23.3 captain / kicker picker ===== */
.role-selectors{display:grid;gap:9px;margin:12px 0}
.role-selector{width:100%;border:1px solid #d9ded3;background:#fff;border-radius:14px;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:inherit;font:inherit}
.role-selector span{display:flex;flex-direction:column;min-width:0}.role-selector small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.role-selector b{font-size:14px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-selector>strong{font-size:11px;background:#f1e4a0;color:#284e3d;border-radius:999px;padding:7px 9px;white-space:nowrap}.role-selector.chosen{border-color:#b7d0bf;background:#f1f7f3}.role-selector:disabled{opacity:.45}
.role-player-list{display:grid;gap:7px;margin-top:12px}.role-player-choice{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:center;border:1px solid #dfe3d9;background:#fff;border-radius:13px;padding:8px;text-align:left;color:inherit;font:inherit}.role-player-choice.selected{border-color:#91b49e;background:#edf6f0}.role-player-choice img{width:42px;height:42px;object-fit:contain}.role-player-choice span{display:flex;flex-direction:column;min-width:0}.role-player-choice b{font-size:13px}.role-player-choice small{font-size:10px;color:var(--muted)}.role-player-choice strong{font-size:10px;background:#eef0e8;border-radius:999px;padding:7px 9px}


/* ===== V23.4 iPhone hit-zones on the XV pitch ===== */
.rugby-board .pitch{isolation:isolate;touch-action:manipulation}
.rugby-board .pitch:before,.rugby-board .pitch:after,
.rugby-board .mid,.rugby-board .line22,.rugby-board .line10,.rugby-board .goal-line,
.rugby-board .posts,.rugby-board .posts *{pointer-events:none!important}
.rugby-board .manual-slot{
  position:absolute!important;
  z-index:20!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  -webkit-user-select:none;
  user-select:none;
}
.rugby-board .manual-slot.empty{min-width:58px;min-height:58px}
.rugby-board .manual-slot.filled{min-width:64px;min-height:64px}

/* ===== V24 — charte mobile premium (composition / match / classement préservés) ===== */
.hero{
  width:100%;height:auto;aspect-ratio:1180/265;min-height:86px;max-height:132px;
  background:#dbe4df url("assets/hero-v24.jpg") center center/cover no-repeat;
  border:0;border-radius:0;box-shadow:none;margin:0;
}
.hero:after{display:none!important}
body{background:#f4f0e5;color:#07392f}
#screen{padding-top:14px}
.card{border-color:#deddd3;box-shadow:0 7px 18px rgba(15,55,45,.055)}
.btn.primary{background:#07533f}.btn.gold{box-shadow:none}

/* HOME — mobile-first, deliberately independent from team/match/standings */
body[data-screen="home"] #screen{padding:12px 12px 105px;max-width:720px}
.home-lastmatch{background:linear-gradient(135deg,#073f32,#052f26);color:#fff;border-radius:19px;padding:15px 16px 13px;box-shadow:0 10px 25px rgba(3,51,39,.16);margin-bottom:12px}
.home-last-top{display:flex;justify-content:space-between;align-items:center;color:#d8e6de;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.home-last-top span{color:#f0c93b;font-weight:900}
.home-fixture{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;margin:12px 0 10px}
.home-club{text-align:center;min-width:0}.home-club span{display:block;width:48px;height:48px;margin:0 auto 6px}.home-club svg{width:100%;height:100%}.home-club b{display:block;font-size:11px;line-height:1.15;color:#fff}
.home-score-main{text-align:center}.home-score-main strong{display:block;color:#f5cf35;font-size:29px;white-space:nowrap}.home-score-main small{color:#d9e2dc}
.home-summary-link{border:0;background:transparent;color:#fff;font-weight:900;width:100%;text-align:right;padding:4px 0;font-size:13px}.home-summary-link b{font-size:17px}
.home-next-step h2{margin:5px 0 14px;font-size:21px}
.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.home-actions button{display:grid;grid-template-columns:42px minmax(0,1fr) 13px;gap:9px;align-items:center;min-height:76px;border:1px solid #dfdfd5;border-radius:16px;background:#fffefa;padding:10px;text-align:left;color:#07392f;box-shadow:0 5px 14px rgba(17,56,45,.05)}
.home-actions span b,.home-actions span small{display:block}.home-actions span b{font-size:14px}.home-actions span small{font-size:10px;color:#7c817d;margin-top:3px}.home-actions em{font-style:normal;font-size:25px;color:#0a5c47}
.home-action-icon{width:42px;height:42px;border-radius:12px;background:#075842;color:#fff;display:grid;place-items:center;font-style:normal;font-weight:950;font-size:12px}.swap-icon{font-size:26px}.calendar-icon{font-size:11px}
.home-section{background:#fffefa;border:1px solid #deddd3;border-radius:17px;padding:13px;margin-bottom:12px;box-shadow:0 6px 17px rgba(17,56,45,.05)}
.home-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.home-section-title h2{font-size:18px;margin:0;display:flex;align-items:center;gap:7px}.home-section-title>span{font-size:10px;color:#66766e;font-weight:850;text-transform:uppercase}.section-svg{width:22px;height:22px}
.home-news-visual{min-height:154px;border-radius:14px;overflow:hidden;position:relative;background:linear-gradient(90deg,rgba(3,36,28,.86),rgba(3,36,28,.2)),url("assets/home-une-v25-5.jpg") center/cover no-repeat;display:flex;align-items:flex-end}
.news-copy{padding:15px;color:#fff;max-width:92%}.news-copy small{display:inline-block;background:#89a944;color:#fff;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:950}.news-copy h3{margin:8px 0 5px;font-size:20px;line-height:1.05}.news-copy h3 .headline-icon{width:22px;height:22px}.news-copy p{font-size:11px;margin:0;color:#e8eeea;line-height:1.35}
.next-fixture-row{display:grid;grid-template-columns:1fr 36px 1fr;gap:8px;align-items:center;text-align:center;padding:2px 4px 12px}.next-fixture-row>div{min-width:0}.next-fixture-row svg{width:55px;height:55px;display:block;margin:auto}.next-fixture-row b{display:block;font-size:11px;line-height:1.1;margin-top:5px}.next-fixture-row>strong{font-size:12px;color:#7b817d}
.home-wide-button{width:100%;border:0;border-radius:11px;padding:11px;background:#07533f;color:#fff;font-weight:900}
.home-rank-row{display:grid;grid-template-columns:31px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 5px;border-top:1px solid #e7e6de}.home-rank-row>span{display:flex;align-items:center;gap:8px;min-width:0}.home-rank-row svg{width:26px;height:26px;flex:0 0 26px}.home-rank-row span strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-rank-row em{font-style:normal;font-weight:950;font-size:12px}.home-rank-row.me{background:#edf5ef;border-radius:10px}.home-rank-row> b{width:24px;height:24px;border-radius:50%;background:#e9e7df;display:grid;place-items:center;font-size:11px}.home-rank-row:first-of-type>b{background:#efc640;color:#fff}

/* Other pages adopting the same visual language; team/match/standings left structurally untouched */
body[data-screen="market"] .market-intro,body[data-screen="more"] #screen>h1,body[data-screen="club"] .club-hero{margin-top:2px}
body[data-screen="market"] .card,body[data-screen="more"] .card,body[data-screen="club"] .card,body[data-screen="leagues"] .card,body[data-screen="onboarding"] .card{border-radius:17px;background:#fffefa}
body[data-screen="market"] .roundbig{color:#07392f;letter-spacing:-.04em}
body[data-screen="market"] .budgetbox{background:#f8f4e8!important;border-radius:14px!important}
body[data-screen="market"] .rule{border-radius:13px;background:#eaf1ec;color:#315c4d;border:0}
body[data-screen="more"] h1,body[data-screen="club"] h1,body[data-screen="leagues"] h1{letter-spacing:-.04em}
body[data-screen="more"] .league-switch-card{background:linear-gradient(145deg,#fffefa,#f5f0df)}
body[data-screen="club"] .club-hero{background:#fffefa;border:1px solid #deddd3;border-radius:17px;padding:14px;box-shadow:0 6px 17px rgba(17,56,45,.05)}

@media(min-width:740px){
  .hero{max-height:170px;aspect-ratio:1180/265;background-size:cover}
  body[data-screen="home"] #screen{max-width:980px}.home-actions{grid-template-columns:repeat(4,1fr)}
  .home-section.home-nextmatch,.home-section.home-top3{width:calc(50% - 7px);display:inline-block;vertical-align:top}.home-section.home-nextmatch{margin-right:9px}
}

/* ===== V24.1 — readability / contrast fixes ===== */

/* Mercado report: V24 generic market card rule was overriding the dark summary card */
body[data-screen="market"] .card.dark{
  background:linear-gradient(160deg,#0d6047,#07372a)!important;
  color:#fff!important;
  border:0!important;
}
body[data-screen="market"] .card.dark .kpis{gap:8px}
body[data-screen="market"] .card.dark .kpi{
  background:rgba(255,255,255,.11)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  min-height:82px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:10px 7px;
}
body[data-screen="market"] .card.dark .kpi b{
  color:#f4cd43!important;
  font-size:24px;
  line-height:1;
}
body[data-screen="market"] .card.dark .kpi span{
  color:#fff!important;
  opacity:.95;
  font-size:11px;
  line-height:1.15;
  margin-top:6px;
  font-weight:750;
}

/* Make secondary copy clearer on the redesigned pages without altering XV / Match / Classement */
body[data-screen="market"] .pmeta,
body[data-screen="market"] .muted,
body[data-screen="more"] .pmeta,
body[data-screen="more"] .muted,
body[data-screen="club"] .pmeta,
body[data-screen="club"] .muted,
body[data-screen="leagues"] .pmeta,
body[data-screen="leagues"] .muted{
  color:#5f6f67!important;
}

body[data-screen="market"] .need{
  color:#173f33;
  font-size:10px;
  line-height:1.2;
  padding:9px;
}
body[data-screen="market"] .need b{
  color:#07392f;
  font-size:15px;
  margin-top:2px;
}

/* Slightly cleaner hierarchy on small iPhones */
@media(max-width:430px){
  body[data-screen="market"] #screen>h1{font-size:31px}
  body[data-screen="market"] .card.dark{padding:12px}
  body[data-screen="market"] .card.dark .kpi b{font-size:22px}
  body[data-screen="market"] .card.dark .kpi span{font-size:10.5px}
}

/* V25 */
.hero{background-image:url("assets/hero-v25.jpg")!important;border-bottom:2px solid #e5bd43!important}
.league-switch{max-width:720px;margin:8px auto 0;padding:0 12px;position:relative;z-index:30}.league-switch.hidden{display:none}.league-switch-main{width:100%;border:1px solid #d9dbd2;background:#fffefa;border-radius:14px;padding:8px 10px;display:grid;grid-template-columns:34px minmax(0,1fr) auto 15px;gap:8px;align-items:center;text-align:left;color:#07392f}.league-switch-crest,.league-quick-crest{width:34px;height:34px}.league-switch-crest svg,.league-quick-crest svg{width:100%;height:100%}.league-switch-copy small,.league-switch-copy b{display:block}.league-switch-copy small{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#718078;font-weight:850}.league-switch-copy b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.league-switch-state{background:#e6f0e8;color:#176048;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:950}.league-switch-main>i{font-style:normal;font-size:18px}.league-quick-sheet{max-height:78vh;overflow:auto}.league-quick-list{display:grid;gap:7px;margin:12px 0}.league-quick-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #dfe1d8;background:#fffefa;border-radius:13px;padding:9px;text-align:left;color:#07392f;font:inherit}.league-quick-item.active{border-color:#2b795e;background:#edf5ef}.league-quick-item span b,.league-quick-item span small{display:block}.league-quick-item span b{font-size:13px}.league-quick-item span small{font-size:9px;color:#6d7972}.league-quick-item em{font-style:normal;background:#f2eddc;border-radius:999px;padding:5px 7px;font-size:9px;font-weight:900}
.market-season-summary{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;background:#0a543f;color:#fff;border-radius:16px;padding:12px;margin-bottom:11px}.market-season-summary small,.market-season-summary b{display:block}.market-season-summary small{font-size:9px;color:#c9ded4}.market-season-summary b{font-size:14px}.market-free-list{display:grid;gap:5px;margin-top:9px}.market-free-row{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;padding:7px 0;border-top:1px solid #e7e6de}.market-free-row img{width:38px;height:38px;object-fit:contain}.market-free-row span b,.market-free-row span small{display:block}.market-free-row span small{font-size:9px;color:#6a7770}.market-free-row em{font-style:normal;font-size:11px;font-weight:900}
.fantasy-duel-card{background:linear-gradient(145deg,#0a5943,#07382c);color:#fff;border-radius:18px;padding:15px;margin-bottom:16px}.fantasy-duel-card>small{font-size:9px;letter-spacing:.12em;color:#b9d4c9}.fantasy-duel-row{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:center;margin:10px 0 5px}.fantasy-duel-row b{font-size:12px}.fantasy-duel-row b:last-child{text-align:right}.fantasy-duel-row strong{font-size:25px;color:#f0c946}.fantasy-duel-card>span{display:block;text-align:center;font-size:9px;color:#d3e3dc}.day-section-head{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 8px}.day-section-head h2{margin:0}.day-provider-badge{font-size:8px;font-weight:950;letter-spacing:.1em;background:#f0ca4b;color:#123c31;border-radius:999px;padding:5px 7px}.day-fixtures{background:#fff;border:1px solid #dedfd7;border-radius:16px;overflow:hidden;margin-bottom:11px}.day-fixture{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto 54px 12px;gap:8px;align-items:center;border:0;border-bottom:1px solid #e7e7df;background:#fff;padding:11px 12px;text-align:left;color:#0a3e32;font:inherit}.day-fixture:last-child{border-bottom:0}.day-fixture span b,.day-fixture span small{display:block}.day-fixture span b{font-size:12px}.day-fixture span small{font-size:10px;color:#68766f}.day-fixture strong{font-size:13px}.day-fixture em{font-style:normal;font-size:7px;font-weight:950;color:#718078;text-align:right}.day-fixture>i{font-style:normal;font-size:20px}.day-detail-score{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:18px 0 5px}.day-detail-score span:last-child{text-align:right}.day-detail-score strong{font-size:24px}.day-detail-score strong i{font-style:normal;color:#a0aaa5}.day-status{text-align:center;font-size:10px;font-weight:900;color:#718078;margin-bottom:12px}.day-demo{background:#fff7dc!important}.day-demo p{font-size:11px;margin-bottom:0}.day-owned-player{display:grid;grid-template-columns:40px 1fr auto;gap:9px;align-items:center;border-top:1px solid #e6e6df;padding:8px 0}.day-owned-player img{width:38px;height:38px}.day-owned-player span b,.day-owned-player span small{display:block}.day-owned-player span small{font-size:9px;color:#6c7972}.day-owned-player em{font-style:normal;font-size:8px;font-weight:900;background:#e8f0e9;padding:5px 7px;border-radius:999px}
@media(max-width:390px){.league-switch{padding:0 9px}.market-season-summary{grid-template-columns:1fr 1fr}.market-season-summary .btn{grid-column:1/-1}.day-fixture{grid-template-columns:minmax(0,1fr) auto 49px 10px;padding:10px 9px}}

/* ===== V25.2 — compact premium screen headings ===== */
.screen-context{
  display:flex;
  align-items:center;
  gap:6px;
  margin:18px 1px 3px;
  color:#708078;
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.035em;
}
.screen-context span{color:#d3b344;font-weight:900}
.screen-title{
  margin:0 0 14px!important;
  color:#073f33;
  font-size:31px!important;
  line-height:1.03!important;
  letter-spacing:-.035em!important;
  font-weight:780!important;
}

/* Old V24/V25 page-specific h1 sizing must not overpower the new hierarchy. */
body[data-screen="market"] #screen>.screen-title,
body[data-screen="team"] #screen>.screen-title,
body[data-screen="match"] #screen>.screen-title,
body[data-screen="standings"] #screen>.screen-title{
  font-size:31px!important;
  margin-bottom:14px!important;
}

/* Bring useful content closer to the title. */
body[data-screen="standings"] .tabs{margin-top:2px}
body[data-screen="team"] .composition-status{margin-top:0}
body[data-screen="market"] .market-season-summary{margin-top:0}
body[data-screen="match"] .fantasy-duel-card{margin-top:0}

@media(max-width:390px){
  .screen-context{margin-top:15px;font-size:9.5px}
  .screen-title,
  body[data-screen="market"] #screen>.screen-title,
  body[data-screen="team"] #screen>.screen-title,
  body[data-screen="match"] #screen>.screen-title,
  body[data-screen="standings"] #screen>.screen-title{
    font-size:29px!important;
    margin-bottom:12px!important;
  }
}

/* ===== V25.4 — Journée / sports results ===== */
.day-view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#e6e9e2;border-radius:13px;padding:4px;margin:0 0 14px}
.day-view-tab{border:0;background:transparent;color:#66746d;border-radius:10px;padding:10px 6px;font:inherit;font-size:11px;font-weight:900;line-height:1.15}
.day-view-tab.active{background:#0a523f;color:#fff;box-shadow:0 1px 2px rgba(5,40,31,.16)}
.results-league-head,.results-competition-head{display:flex;align-items:center;gap:10px;margin:2px 2px 9px}
.results-mini-crest{width:34px;height:34px;flex:0 0 34px}.results-mini-crest svg,.results-team-crest svg{width:100%;height:100%}
.results-league-head>div,.results-competition-head>div{min-width:0;flex:1}.results-league-head small,.results-league-head b,.results-competition-head small,.results-competition-head b,.results-competition-head span{display:block}
.results-league-head small,.results-competition-head small{font-size:8px;letter-spacing:.12em;color:#75817b;font-weight:900}
.results-league-head b,.results-competition-head b{font-size:15px;color:#083e32}.results-competition-head span{font-size:10px;color:#77827d;margin-top:1px}
.results-league-head em{font-style:normal;background:#e6f0e8;color:#176048;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:950}
.xv-result-card{width:100%;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);align-items:center;gap:7px;border:1px solid #d9ddd6;background:#fff;border-radius:17px;padding:16px 20px 15px 12px;color:#073d31;font:inherit;text-align:center;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.xv-result-team{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.xv-result-team b{font-size:11px;line-height:1.12}.results-team-crest{width:39px;height:39px}
.xv-result-score small,.xv-result-score span{display:block}.xv-result-score small{font-size:7px;letter-spacing:.09em;color:#75817b;font-weight:950}.xv-result-score strong{display:flex;justify-content:center;align-items:center;gap:7px;font-size:25px;line-height:1;color:#073d31;margin:6px 0}.xv-result-score strong i{font-style:normal;color:#d2b13e}.xv-result-score span{font-size:8px;color:#7a8680}
.results-chevron{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-style:normal;font-size:23px}
.results-note{display:flex;flex-direction:column;gap:3px;padding:11px 3px 5px}.results-note b{font-size:11px}.results-note span{font-size:10px;line-height:1.35;color:#748079}
.results-competition-head{margin-top:1px}.results-competition-head .day-provider-badge{flex:0 0 auto}
.sports-results-list{border:1px solid #d9ddd6;background:#fff;border-radius:17px;overflow:hidden}
.sports-result-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 62px 66px;align-items:stretch;border:0;border-bottom:1px solid #e4e6e1;background:#fff;color:#073d31;font:inherit;text-align:left;padding:0}.sports-result-row:last-child{border-bottom:0}
.sports-clubs{display:grid;grid-template-rows:1fr 1fr;padding:9px 8px 9px 13px;gap:5px}.sports-clubs span{display:flex;align-items:center;min-height:20px}.sports-clubs b{font-size:12px;line-height:1.05}
.sports-score{display:grid;grid-template-rows:1fr 1fr;gap:2px;padding:8px 0}.sports-score strong{display:flex;align-items:center;justify-content:center;background:#0b3f33;color:#fff;border-radius:5px;font-size:14px;min-height:25px}.sports-score.upcoming{display:flex;align-items:center}.sports-score.upcoming strong{width:100%;background:#eef1ec;color:#173f34;font-size:11px}
.sports-state{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:0 9px 0 5px}.sports-state small{font-size:7px;font-weight:950;letter-spacing:.04em;color:#758079}.sports-state i{font-style:normal;font-size:21px;color:#0b4b3b}
.results-demo-copy{font-size:9px;line-height:1.35;color:#77827c;margin:10px 4px 0}
@media(max-width:390px){.day-view-tab{font-size:10px}.xv-result-card{grid-template-columns:minmax(0,1fr) 78px minmax(0,1fr);padding-left:8px}.xv-result-score strong{font-size:22px}.sports-result-row{grid-template-columns:minmax(0,1fr) 56px 60px}.sports-clubs{padding-left:10px}.sports-clubs b{font-size:11px}}

/* V25.5 — all league duels */
.league-results-list{display:grid;gap:8px}
.league-result-row{width:100%;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 82px minmax(0,1fr);gap:6px;align-items:center;border:1px solid #d9ddd6;background:#fff;border-radius:15px;padding:12px 20px 12px 9px;color:#073d31;font:inherit}
.league-result-row.mine{border-color:#d9bd55;background:#fffaf0}
.league-result-club{min-width:0;display:flex;align-items:center;gap:6px}.league-result-club.right{flex-direction:row-reverse;text-align:right}.league-result-club span{width:31px;height:31px;flex:0 0 31px}.league-result-club span svg{width:100%;height:100%}.league-result-club b{font-size:10px;line-height:1.08}
.league-result-score{text-align:center}.league-result-score small,.league-result-score em{display:block;font-size:6.5px;font-weight:950;letter-spacing:.08em;color:#7b8580}.league-result-score strong{display:flex;justify-content:center;gap:6px;font-size:19px;margin:3px 0}.league-result-score strong i{font-style:normal;color:#d1ad34}.league-result-score em{color:#9a7712}
.results-empty{padding:18px;text-align:center;color:#78837e;font-size:11px;background:#fff;border:1px solid #d9ddd6;border-radius:15px}
.home-news-visual{background-position:center!important}
@media(max-width:390px){.league-result-row{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);padding-left:7px}.league-result-club b{font-size:9.5px}.league-result-club span{width:28px;height:28px;flex-basis:28px}.league-result-score strong{font-size:18px}}

/* ===== V25.6 — stable match summaries ===== */
.league-result-row{cursor:pointer;min-height:84px}
.league-result-row .results-chevron{font-size:27px;font-weight:500;right:8px}
.league-duel-sheet{max-height:82vh;overflow:auto}
.league-duel-head{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:15px 0 7px;text-align:center}
.league-duel-head>div{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.league-duel-head>div b{font-size:12px;line-height:1.1}
.league-duel-crest{width:44px;height:44px}.league-duel-crest svg{width:100%;height:100%}
.league-duel-head>strong{font-size:25px;color:#073f33;white-space:nowrap}.league-duel-head>strong i{font-style:normal;color:#d4af32;margin:0 5px}
.demo-rugby-timeline{margin:12px 0;border-top:1px solid #e4e5df;border-bottom:1px solid #e4e5df}
.demo-rugby-event{display:grid;grid-template-columns:1fr 55px 1fr;gap:7px;align-items:center;min-height:47px;border-top:1px solid #ecece6;padding:5px 0}
.demo-rugby-event:first-child{border-top:0}.demo-event-side{font-size:10px;font-weight:850;color:#0a4436;text-align:right}.demo-event-side.right{text-align:left}.demo-event-side small{display:block;font-size:7.5px;color:#7a8580;font-weight:600;margin-top:2px}
.demo-rugby-event time{text-align:center;font-style:normal;font-size:9px;color:#78827d}.demo-rugby-event time b{display:block;font-size:11px;color:#0b4739;margin-top:2px}
@media(max-width:390px){.league-duel-head>strong{font-size:22px}.demo-rugby-event{grid-template-columns:1fr 49px 1fr}.league-result-row{min-height:80px}}

/* ===== V25.7 — iPhone match modal display fix ===== */
html.modal-open,
html.modal-open body{
  overflow:hidden!important;
  overscroll-behavior:none;
}
.player-modal{
  box-sizing:border-box;
  padding-top:max(10px, env(safe-area-inset-top));
  overflow:hidden;
}
.player-sheet{
  box-sizing:border-box;
  max-height:92vh;
  max-height:calc(100dvh - max(10px, env(safe-area-inset-top)));
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scroll-behavior:auto;
}
.player-sheet>.modal-close{
  position:sticky!important;
  top:0!important;
  right:auto!important;
  z-index:30;
  display:grid;
  place-items:center;
  margin:-8px -6px -28px auto;
  box-shadow:0 2px 8px rgba(4,42,32,.12);
}
.day-match-sheet,
.league-duel-sheet{
  width:min(calc(100% - 10px),560px);
  max-height:calc(100dvh - max(10px, env(safe-area-inset-top)))!important;
  padding-top:14px;
}
.day-match-sheet .screen-context,
.league-duel-sheet .screen-context{
  margin-top:2px;
  padding-right:44px;
}
.day-match-sheet .day-detail-score{
  margin-top:12px;
}
@supports(height:100svh){
  .player-sheet,
  .day-match-sheet,
  .league-duel-sheet{
    max-height:calc(100svh - max(10px, env(safe-area-inset-top)))!important;
  }
}

/* ===== V25.8 — league identity + invitation ===== */
.invite-share-card .between{margin-bottom:4px}
.invite-link-box{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf3ed;border:1px solid #d7e2da;border-radius:12px;padding:10px 12px;margin:10px 0}
.invite-link-box small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#718078;font-weight:900}
.invite-link-box strong{font-size:16px;letter-spacing:.08em;color:#0a4d3c}

/* ===== V26.1 — vraie interface desktop / PC ===== */
@media (min-width: 900px){
  :root{--desktop-nav:196px;--desktop-gap:28px}
  html,body{min-height:100%;background:#e9eadf}
  body:before{
    content:"";position:fixed;inset:0 0 0 var(--desktop-nav);z-index:-2;
    background:
      radial-gradient(circle at 92% 3%,rgba(243,195,63,.13),transparent 27%),
      linear-gradient(180deg,#f5f2e8 0,#eceee7 100%);
  }
  #app{
    width:auto;max-width:none!important;margin:0!important;
    padding:0 0 52px var(--desktop-nav)!important;
    box-shadow:none!important;min-height:100vh;
  }

  /* Barre latérale fixe : la navigation mobile devient une vraie navigation PC. */
  .nav{
    left:0!important;right:auto!important;top:0;bottom:0!important;
    width:var(--desktop-nav)!important;max-width:none!important;height:100vh!important;
    padding:176px 14px 24px!important;
    display:flex!important;flex-direction:column;gap:7px;
    background:linear-gradient(180deg,#043a2e,#03291f 74%,#021f18)!important;
    border:0!important;border-right:1px solid rgba(255,255,255,.08)!important;
    box-shadow:12px 0 32px rgba(3,42,32,.13)!important;
  }
  .nav:before{
    content:"XV des\A Copains";white-space:pre;
    position:absolute;left:20px;right:20px;top:31px;
    color:#fff;font-size:25px;line-height:.94;font-weight:950;letter-spacing:-.045em;
  }
  .nav:after{
    content:"LE JEU RUGBY ENTRE AMIS";
    position:absolute;left:20px;top:91px;color:#f3c33f;
    font-size:8px;font-weight:950;letter-spacing:.14em;
  }
  .nav button{
    width:100%;min-height:54px;padding:0 13px!important;border-radius:13px!important;
    display:grid!important;grid-template-columns:31px 1fr!important;align-items:center!important;
    justify-items:start!important;gap:11px!important;color:#c5d0cb!important;
    font-size:11px!important;transition:background .16s ease,color .16s ease,transform .16s ease;
  }
  .nav button:hover{background:rgba(255,255,255,.07)!important;color:#fff!important;transform:translateX(2px)}
  .nav button.active{background:#f3c33f!important;color:#12372d!important;box-shadow:0 8px 18px rgba(0,0,0,.16)}
  .nav span{font-size:12px!important;font-weight:900!important}
  .navico{width:28px!important;height:28px!important;transform:none!important}

  /* Bandeau et sélecteur de ligue. */
  .hero{
    width:100%!important;max-width:none!important;height:184px!important;max-height:184px!important;
    aspect-ratio:auto!important;background-size:cover!important;background-position:center 48%!important;
    border-bottom:1px solid rgba(4,60,48,.14)!important;
    box-shadow:0 10px 24px rgba(5,54,42,.08)!important;
  }
  .league-switch{max-width:1180px!important;margin:14px auto 0!important;padding:0 var(--desktop-gap)!important}
  .league-switch-main{min-height:58px;padding:9px 13px;border-radius:15px;box-shadow:0 5px 16px rgba(7,47,36,.05)}
  .league-switch-copy b{font-size:14px}.league-switch-copy small{font-size:9px}

  #screen{
    width:100%;max-width:1180px!important;margin:0 auto!important;
    padding:24px var(--desktop-gap) 34px!important;
  }
  .screen-context{margin-top:0!important}
  .screen-title,
  body[data-screen="market"] #screen>.screen-title,
  body[data-screen="team"] #screen>.screen-title,
  body[data-screen="match"] #screen>.screen-title,
  body[data-screen="standings"] #screen>.screen-title{
    font-size:42px!important;line-height:.98!important;margin:4px 0 22px!important;letter-spacing:-.045em!important;
  }
  .card{border-radius:18px;padding:17px;margin-bottom:14px;box-shadow:0 8px 24px rgba(7,47,36,.055)}
  h2{font-size:21px}

  /* Accueil : tableau de bord large, sans effet "téléphone posé au milieu". */
  body[data-screen="home"] #screen{max-width:1180px!important;padding:24px var(--desktop-gap) 40px!important}
  body[data-screen="home"] .home-lastmatch{padding:21px 24px;border-radius:20px;margin-bottom:16px}
  body[data-screen="home"] .home-fixture{max-width:720px;margin:18px auto 12px}
  body[data-screen="home"] .home-club span{width:62px;height:62px}
  body[data-screen="home"] .home-club b{font-size:13px}
  body[data-screen="home"] .home-score-main strong{font-size:38px}
  body[data-screen="home"] .home-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
  body[data-screen="home"] .home-actions button{min-height:92px;padding:14px;border-radius:17px}
  body[data-screen="home"] .home-section{padding:18px;border-radius:18px;margin-bottom:15px}
  body[data-screen="home"] .home-news-visual{min-height:245px}
  body[data-screen="home"] .news-copy{max-width:620px;padding:25px}
  body[data-screen="home"] .news-copy h3{font-size:28px}
  body[data-screen="home"] .news-copy p{font-size:13px}
  body[data-screen="home"] .home-section.home-nextmatch,
  body[data-screen="home"] .home-section.home-top3{width:calc(50% - 9px)!important;display:inline-block!important;vertical-align:top}
  body[data-screen="home"] .home-section.home-nextmatch{margin-right:13px!important}

  /* Mercato : les postes profitent de la largeur de l'écran. */
  body[data-screen="market"] #screen{max-width:1240px!important}
  body[data-screen="market"] .market-intro{grid-template-columns:1fr 170px;align-items:center;margin-bottom:12px}
  body[data-screen="market"] .market-intro .roundbig{font-size:43px}
  body[data-screen="market"] .market-intro .budgetbox{padding:12px 18px}
  body[data-screen="market"] .market-intro .budgetbox b{font-size:27px}
  body[data-screen="market"] .roundbar{max-width:700px;margin:10px 0 16px}
  body[data-screen="market"] .rule{font-size:14px;padding:13px 15px;margin-bottom:14px}
  body[data-screen="market"] .market-sheet{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  body[data-screen="market"] .pos-block{margin:0;min-width:0}
  body[data-screen="market"] .selected-player{grid-template-columns:42px minmax(0,1fr) 126px 32px}
  body[data-screen="market"] .market-season-summary{grid-template-columns:1fr 1fr 170px;padding:16px 18px}
  body[data-screen="market"] .market-free-list{grid-template-columns:1fr 1fr;column-gap:22px}

  /* Composition : on garde le terrain lisible, centré et à taille réaliste. */
  body[data-screen="team"] #screen{max-width:920px!important}
  body[data-screen="team"] .rugby-board{max-width:590px;margin:0 auto 20px;padding:11px;border-radius:20px}
  body[data-screen="team"] .rugby-board .pitch{aspect-ratio:.68}
  body[data-screen="team"] .composition-status{max-width:760px;margin:0 auto 16px;padding:14px 16px}
  body[data-screen="team"] .selector-strip{max-width:760px;margin:14px auto;gap:12px}
  body[data-screen="team"] .bench-strip{justify-content:center;flex-wrap:wrap;overflow:visible;gap:11px}

  /* Journée / Match : largeur confortable, cartes sport plus aérées. */
  body[data-screen="match"] #screen{max-width:1040px!important}
  body[data-screen="match"] .day-view-tabs{max-width:560px;margin:0 auto 18px}
  body[data-screen="match"] .league-results-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  body[data-screen="match"] .sports-results-list{max-width:820px;margin:0 auto}
  body[data-screen="match"] .sports-result-row{grid-template-columns:minmax(0,1fr) 82px 92px}
  body[data-screen="match"] .sports-clubs{padding:12px 14px 12px 18px}
  body[data-screen="match"] .sports-clubs b{font-size:13px}
  body[data-screen="match"] .sports-score strong{font-size:16px;min-height:29px}

  /* Classement / Plus / Ligues : éviter les lignes gigantesques. */
  body[data-screen="standings"] #screen{max-width:980px!important}
  body[data-screen="standings"] .stand-head,
  body[data-screen="standings"] .stand-row{grid-template-columns:36px minmax(180px,1fr) 42px 42px 42px 42px 60px 52px;padding:11px 13px;font-size:11px}
  body[data-screen="more"] #screen,
  body[data-screen="club"] #screen,
  body[data-screen="leagues"] #screen{max-width:960px!important}
  body[data-screen="leagues"] .league-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}

  /* Onboarding desktop compact et centré. */
  body[data-screen="onboarding"] #screen{max-width:720px!important;padding-top:30px!important}
  body[data-screen="onboarding"] .club-create{padding:24px 26px}
  body[data-screen="onboarding"] .crest-options{grid-template-columns:repeat(4,1fr)}

  /* Modales PC : cartes centrées plutôt que feuilles collées au bas de l'écran. */
  .player-modal{align-items:center!important;padding:32px!important}
  .player-sheet,.day-match-sheet,.league-duel-sheet{
    width:min(760px,calc(100vw - var(--desktop-nav) - 80px))!important;
    max-height:calc(100vh - 64px)!important;border-radius:22px!important;
    padding:22px 24px 26px!important;box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
  }
  .drawer-backdrop{align-items:center!important;justify-content:center;padding-left:var(--desktop-nav)}
  .drawer{width:min(760px,calc(100vw - var(--desktop-nav) - 80px));max-height:82vh;border-radius:22px;padding:20px 22px 24px}
  .drawer-grab{display:none}

  /* Barre de validation mercato : centrée dans la zone de travail. */
  .market-summary-sticky{
    left:calc(var(--desktop-nav) + 28px)!important;right:28px!important;bottom:20px!important;
    max-width:1184px;margin:0 auto;border-radius:16px;padding:10px 12px;
  }
  .sticky-action{left:calc(var(--desktop-nav) + 28px)!important;right:28px!important;bottom:20px!important;max-width:900px;margin:0 auto}
}

@media (min-width: 1400px){
  :root{--desktop-nav:214px;--desktop-gap:34px}
  .nav{padding-left:17px!important;padding-right:17px!important}
  .nav:before,.nav:after{left:24px}
  #screen{max-width:1280px!important}
  body[data-screen="home"] #screen{max-width:1280px!important}
  body[data-screen="market"] #screen{max-width:1320px!important}
}

/* V26.2 — calendrier de ligue avant J1 */
.league-result-score.upcoming strong{font-size:13px;letter-spacing:.16em;color:#0d4b3b}
.league-result-row.mine:has(.league-result-score.upcoming){box-shadow:inset 3px 0 0 #e4b92f}
.day-test-card{margin-top:14px;display:grid;gap:12px;border:1px solid rgba(228,185,47,.45);background:linear-gradient(135deg,#fffdf6,#fff)}
.day-test-card small{font-size:10px;font-weight:900;letter-spacing:.14em;color:#8e7217}.day-test-card h2{margin:2px 0 4px}.day-test-card p{margin:0}
.lineup-locked-card{text-align:center;padding:28px 20px}.lineup-locked-card .lineup-lock-icon{width:42px;height:42px;margin:0 auto 10px;display:grid;place-items:center;border-radius:50%;background:#edf3ef}.lineup-locked-card .lineup-lock-icon img{width:23px;height:23px}.lineup-locked-card h2{margin:0 0 8px}
@media(min-width:900px){.day-test-card{grid-template-columns:1fr 220px;align-items:center}.day-test-card .btn{margin:0}.league-results-list{max-width:980px;margin-inline:auto}}


/* ===== V27.2 — compte discret, ancien bandeau conservé ===== */
.hero{position:relative}
.account-pill-v272{
  position:absolute;z-index:12;top:12px;right:12px;
  min-height:38px;padding:5px 12px 5px 5px;border:1px solid rgba(255,255,255,.34);
  border-radius:999px;background:rgba(4,48,37,.90);color:#fff;
  display:flex;align-items:center;gap:8px;font:inherit;font-size:11px;font-weight:900;
  box-shadow:0 5px 14px rgba(0,0,0,.18);backdrop-filter:blur(8px);
}
.account-dot-v272{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:#efc541;color:#123b30;font-size:10px;font-weight:950;
}
.account-modal-v272{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:18px}
.account-modal-v272.hidden{display:none}
.account-backdrop-v272{position:absolute;inset:0;border:0;background:rgba(2,25,19,.62);backdrop-filter:blur(3px)}
.account-sheet-v272{
  position:relative;z-index:1;width:min(440px,100%);background:#fffefa;border:1px solid #deddd3;
  border-radius:20px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.28);color:#07392f;
}
.account-sheet-v272 h2{font-size:27px;margin:4px 34px 14px 0}
.account-close-v272{
  position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;
  background:#eef0ea;color:#173f34;font-size:23px;line-height:1
}
.account-note-v272{font-size:12px;line-height:1.55;color:#66756e;margin:0 0 16px}
.account-legal-v272{font-size:9px;line-height:1.45;color:#8a938e;margin:12px 3px 0}
.account-loading-v272{padding:22px 0;color:#6b7872;font-size:12px}
.account-user-v272{display:grid;grid-template-columns:46px 1fr;gap:11px;align-items:center;margin:8px 0 14px}
.account-user-v272>span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#0b624b;color:#f1c746;font-weight:950}
.account-user-v272 b,.account-user-v272 small{display:block}.account-user-v272 small{margin-top:3px;color:#75817b;font-size:10px}
.account-status-v272{display:flex;align-items:center;gap:7px;background:#edf5ef;border-radius:10px;padding:9px 10px;margin-bottom:13px;font-size:10px;font-weight:900}
.account-status-v272 i{width:7px;height:7px;border-radius:50%;background:#2d8c68}
.mail-sent-v272{display:flex;align-items:center;gap:9px;background:#edf5ef;border-radius:12px;padding:12px;margin:8px 0 14px}
.mail-sent-v272 span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#17664d;color:#fff;font-weight:950}
.auth-error-v272{background:#fff0ed;color:#9b3325;border-radius:10px;padding:10px;margin:10px 0 0;font-size:10px;font-weight:800}
body.account-open-v272{overflow:hidden}
.auth-required-v272:after{content:"  · compte requis";font-size:9px;opacity:.78}
@media(max-width:700px){
  .account-pill-v272{top:9px;right:9px;min-height:34px;padding:4px 10px 4px 4px;font-size:10px}
  .account-dot-v272{width:26px;height:26px;font-size:9px}
  .account-modal-v272{place-items:end center;padding:0}
  .account-sheet-v272{width:100%;border-radius:20px 20px 0 0;padding:22px 18px calc(22px + env(safe-area-inset-bottom));}
}
@media(min-width:901px){
  .account-pill-v272{top:16px;right:22px}
}

/* ===== V27.3 ===== */
.hero{background-image:url("assets/hero-v273.png")!important;background-size:cover!important;background-position:center 55%!important;filter:none!important}
@media(min-width:901px){.hero{height:220px!important;min-height:220px!important}}
@media(max-width:900px){.hero{height:150px!important;min-height:150px!important}}
@media(max-width:520px){.hero{height:126px!important;min-height:126px!important}}
.player-next-fixture{display:block;margin-top:3px;font-size:9px;font-weight:900}.player-next-fixture.home{color:#17664d}.player-next-fixture.away{color:#8b5c18}.player-next-fixture.unknown{color:#8a938e}
.roundbar.unlimited{justify-content:flex-start;gap:8px}.round-open{font-size:10px;font-weight:800;color:#6b756f}
.auction-report-row{padding:13px 0;border-bottom:1px solid #e2e4dc}.auction-player{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center}.auction-player img{width:34px;height:34px;object-fit:contain}.auction-player span b,.auction-player span small{display:block}.auction-player span small{font-size:9px;color:#7a837d}.auction-player>strong{font-size:9px;background:#edf4ef;border-radius:999px;padding:5px 7px}.auction-bids{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.auction-bids span{display:flex;gap:8px;padding:6px 8px;border-radius:8px;background:#f4f2e9;font-size:9px}.auction-bids .winner{background:#e6f2e9}.auction-bids em{font-style:normal;font-weight:900}.auction-winner{font-size:9px;color:#68746e}
.market-report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px}.market-report-kpis>div{background:#fffefa;border:1px solid #dedfd6;border-radius:12px;padding:10px}.market-report-kpis small,.market-report-kpis b{display:block}.market-report-kpis small{font-size:8px;color:#7a837d}.market-report-kpis b{font-size:16px}
.free-market-filters{display:grid;grid-template-columns:1fr 160px 130px;gap:8px;margin:12px 0}.free-market-filters select{border:1px solid #d9dbd3;border-radius:10px;background:#fff;padding:0 10px;font:inherit;font-size:10px;color:#153e33}
.market-history-row{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid #e5e6df;background:none;padding:11px 0;text-align:left;color:#153e33}.market-history-row span b,.market-history-row span small{display:block}.market-history-row span small{font-size:9px;color:#7b847f}.market-history-row em{font-size:9px;font-style:normal}
.played-lineup-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.played-player-card{border:1px solid #dfe1d8;background:#fffefa;border-radius:10px;padding:8px;display:grid;grid-template-columns:30px 1fr auto;gap:7px;align-items:center;text-align:left;color:#123d31}.played-player-card img{width:29px;height:29px;object-fit:contain}.played-player-card span b,.played-player-card span small{display:block}.played-player-card span b{font-size:10px}.played-player-card span small{font-size:8px;color:#7b847f}.played-player-card strong{font-size:15px}
@media(max-width:700px){.free-market-filters{grid-template-columns:1fr 1fr}.free-market-filters input{grid-column:1/-1}.played-lineup-grid{grid-template-columns:1fr}}

/* ===== V27.4 — J2 réelle / consolidation ===== */
/* Hero desktop corrigé : beaucoup plus compact, cadrage du visuel conservé. */
@media(min-width:901px){
  .hero{height:148px!important;min-height:148px!important;background-position:center 52%!important}
}
@media(max-width:900px){
  .hero{height:118px!important;min-height:118px!important;background-position:center 52%!important}
}
@media(max-width:520px){
  .hero{height:104px!important;min-height:104px!important;background-position:center 52%!important}
}
.real-j2-test{border-left:4px solid #e5bd36}
.real-j2-test h2{margin:2px 0 5px}
.live-tag{white-space:nowrap}
@media(min-width:901px){
  .stats-by-position,.position-stats-grid{max-width:920px}
}

.real-j2-chip{margin-left:6px;background:#f4e5a7;color:#173f34}

/* ===== V27.5 — affichage J2 réelle + fix hero PC ===== */
@media(min-width:901px){
  .hero{
    height:148px!important;
    min-height:148px!important;
    background-position:center top!important;
    background-size:cover!important;
  }
}
.top14-round-banner{
  margin:10px 0 16px;
  border:1px solid rgba(7,78,60,.16);
  background:#fffdf6;
  border-radius:15px;
  padding:11px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.top14-round-banner div{display:flex;flex-direction:column;gap:2px}
.top14-round-banner small{font-weight:900;letter-spacing:.08em;color:#716d58}
.top14-round-banner b{font-size:16px}
.top14-round-banner>span{font-size:13px;color:#63716b}
.player-next-fixture{
  display:block;
  margin-top:3px;
  font-size:11px;
  line-height:1.15;
  font-weight:900;
  color:#0b684f;
}
.player-next-fixture.away{color:#77570b}
.player-next-fixture.unknown{color:#8a8a7b}
.manual-slot .pitch-fixture{
  display:block;
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:calc(100% + 2px);
  width:max-content;
  max-width:104px;
  padding:2px 5px;
  border-radius:7px;
  background:rgba(2,49,39,.92);
  color:#fff7da;
  font-size:8px;
  line-height:1.05;
  font-style:normal;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.manual-slot .pitch-fixture.unknown{opacity:.72}
.manual-bench .bench-slot em{
  display:block;
  margin-top:2px;
  font-size:8px;
  line-height:1.05;
  font-style:normal;
  color:#0a624b;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:78px;
}
@media(max-width:700px){
  .top14-round-banner{align-items:flex-start;flex-direction:column;gap:5px}
  .manual-slot .pitch-fixture{font-size:7px;max-width:82px}
}

/* ===== V28.1 — CONTENT POLISH + MERCATO PRO ===== */
.screen-title,#screen h1{font-size:38px!important;line-height:1.03!important;letter-spacing:-.035em!important;margin-bottom:16px!important}
#screen h2{letter-spacing:-.02em}
.card{border-radius:15px!important;border-color:#dfe3db!important;box-shadow:0 3px 14px rgba(8,55,43,.035)!important}
.day-view-tabs{border-radius:12px!important;padding:3px!important;background:#e9eee8!important}
.day-view-tabs button{border-radius:9px!important;font-weight:800!important}
.sports-results-list{border:1px solid #dfe3db!important;border-radius:15px!important;overflow:hidden!important;box-shadow:none!important}
.sports-result-row{border:0!important;border-bottom:1px solid #e9ece6!important;border-radius:0!important}
.sports-result-row:last-child{border-bottom:0!important}
.stand-card{border-radius:15px!important;overflow:hidden!important}
.stand-row.me{background:#fff4c6!important;box-shadow:inset 3px 0 0 #f3c43f}

.market-page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.market-page-title .screen-title{margin-bottom:4px!important}
.market-page-title p{margin:0;color:#6d7972;font-size:13px}
.market-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}
.market-browser{min-width:0}
.market-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) 160px 180px 170px 120px;gap:9px;padding:11px!important;margin-bottom:8px!important;position:sticky;top:8px;z-index:4}
.market-toolbar input,.market-toolbar select{min-width:0;height:42px;border:1px solid #d4d9d2;border-radius:10px;background:#fff;padding:0 10px;color:#123f34;font-weight:650}
.market-browser-meta{display:flex;justify-content:space-between;align-items:center;padding:8px 3px 10px;color:#66756e;font-size:12px}
.market-browser-meta b{color:#164b3d}
.market-player-list{display:flex;flex-direction:column;gap:7px}
.market-player-card{display:grid;grid-template-columns:44px minmax(0,1fr) 62px 72px 80px;gap:11px;align-items:center;background:#fffefa;border:1px solid #dfe3db;border-radius:13px;padding:9px 10px;transition:border-color .12s ease,transform .12s ease}
.market-player-card:hover{border-color:#b9c8bf;transform:translateY(-1px)}
.market-player-card>img{width:38px;height:38px;object-fit:contain}
.market-player-copy{min-width:0;display:flex;flex-direction:column}
.market-player-copy>b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-player-copy>small{font-size:11px;color:#738078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-player-copy .player-next-fixture{margin-top:2px!important;font-size:9px!important}
.market-player-rating,.market-player-price{display:flex;flex-direction:column;align-items:flex-end}
.market-player-rating small,.market-player-price small{font-size:9px;color:#7a857f}
.market-player-rating b{font-size:14px}
.market-player-price b{font-size:14px;color:#075340;white-space:nowrap}
.market-add-btn{height:36px;border:0;border-radius:9px;background:#075340;color:#fff;font-weight:800;cursor:pointer}
.market-selection-panel{position:sticky;top:8px;background:#fffefa;border:1px solid #d9dfd7;border-radius:16px;padding:15px;box-shadow:0 10px 28px rgba(7,55,43,.06);max-height:calc(100vh - 28px);overflow:auto}
.market-selection-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.market-selection-head h2{margin:2px 0 0!important;font-size:23px!important}
.market-count-badge{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#e8f0eb;color:#075340;font-weight:900}
.market-budget-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.market-budget-kpis>div{background:#f5f7f2;border-radius:11px;padding:9px 10px;display:flex;flex-direction:column}
.market-budget-kpis small{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#77827c}
.market-budget-kpis b{font-size:17px;color:#075340}.market-budget-kpis .danger{color:#a12e27}
.market-needs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}
.market-need{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;background:#f5f7f2;font-size:10px}
.market-need.missing{background:#fff1cf}.market-need.ok b{color:#087052}.market-need.missing b{color:#8b5c00}
.market-warning,.market-ready{display:flex;flex-direction:column;gap:2px;border-radius:10px;padding:9px 10px;margin-bottom:10px;font-size:10px}
.market-warning{background:#fff1cf;color:#6d4b00}.market-ready{background:#eaf4ed;color:#15553f}
.market-selection-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.market-selected-compact{display:grid!important;grid-template-columns:34px minmax(0,1fr) 112px 25px!important;gap:7px!important;padding:7px!important;border:1px solid #e5e8e1!important;border-radius:10px!important;background:#fff!important}
.market-selected-compact>img{width:30px!important;height:30px!important}
.market-selected-compact .sp-name{font-size:11px!important}
.market-selected-compact .sp-meta{font-size:9px!important}
.market-selected-compact .editbid{display:grid!important;grid-template-columns:28px 50px 28px!important;gap:3px!important}
.market-selected-compact .editbid button,.market-selected-compact .editbid input{height:29px!important;min-width:0!important;border-radius:7px!important}
.market-selected-compact .editbid input{width:50px!important;text-align:center!important}
.market-selected-compact .remove{width:25px!important;height:29px!important;border-radius:7px!important}
.market-empty-selection{padding:20px 10px;text-align:center;border:1px dashed #d7ddd5;border-radius:11px;display:flex;flex-direction:column;gap:3px;color:#66756e;font-size:11px}
.market-no-result{display:flex;flex-direction:column;gap:3px}

@media(min-width:901px){
  body[data-screen="market"] #screen{max-width:1240px!important}
  .screen-title,#screen h1{font-size:42px!important}
}
@media(max-width:1100px) and (min-width:901px){
  .market-layout{grid-template-columns:minmax(0,1fr) 320px}
  .market-toolbar{grid-template-columns:1fr 145px 155px;position:static}
  .market-toolbar #marketSort,.market-toolbar #marketMax{grid-row:2}
}
@media(max-width:900px){
  .screen-title,#screen h1{font-size:31px!important}
  .market-page-title{align-items:flex-start}
  .market-page-title p{font-size:12px}
  .market-layout{display:flex;flex-direction:column}
  .market-browser{width:100%}
  .market-toolbar{position:static;grid-template-columns:1fr 1fr;padding:9px!important}
  .market-search-wrap{grid-column:1/-1}
  .market-toolbar #marketClub{grid-column:1/-1}
  .market-selection-panel{position:static;width:100%;max-height:none;order:-1;padding:12px}
  .market-selection-list{max-height:260px;overflow:auto}
  .market-player-card{grid-template-columns:38px minmax(0,1fr) 64px 70px}
  .market-player-rating{display:none}
  .market-add-btn{grid-column:4;grid-row:1/span 1}
  .market-player-price{grid-column:3}
}
@media(max-width:520px){
  .market-page-title .budgetbox{padding:7px 9px!important}
  .market-page-title .budgetbox b{font-size:15px!important}
  .market-toolbar{grid-template-columns:1fr 1fr}
  .market-player-card{grid-template-columns:34px minmax(0,1fr) 62px;padding:8px}
  .market-player-card>img{width:31px;height:31px}
  .market-player-price{grid-column:3}
  .market-add-btn{grid-column:2/-1;grid-row:2;height:32px}
  .market-selected-compact{grid-template-columns:30px minmax(0,1fr) 108px 24px!important}
  .market-needs{grid-template-columns:1fr 1fr}
}


/* ================================================================
   V28.2 — FIX & POLISH
   Corrections ciblées sur V28.1, sans refonte.
   ================================================================ */

/* Hero : un peu plus haut sur desktop pour laisser respirer le slogan. */
@media(min-width:901px){
  .hero{
    height:170px!important;
    min-height:170px!important;
    background-position:center 46%!important;
  }
}

/* Budget : espace et alignement propres. */
.market-page-title .budgetbox{
  display:flex!important;
  align-items:baseline!important;
  gap:6px!important;
  white-space:nowrap!important;
}
.market-page-title .budgetbox small{
  margin-right:2px!important;
}

/* Toolbar : ne plus écraser "Prix max" aux largeurs intermédiaires. */
@media(min-width:1180px){
  .market-toolbar{
    grid-template-columns:minmax(220px,1.45fr) 145px minmax(150px,180px) minmax(160px,178px) 125px!important;
  }
}
@media(min-width:901px) and (max-width:1179px){
  .market-toolbar{
    grid-template-columns:minmax(230px,1fr) 150px 170px!important;
    position:static!important;
  }
  .market-toolbar #marketSort,
  .market-toolbar #marketMax{
    grid-row:2!important;
  }
  .market-toolbar #marketSort{grid-column:1/3!important}
  .market-toolbar #marketMax{grid-column:3!important}
}

/* Sur desktop, le panneau droit est la source de vérité.
   On supprime donc la barre sticky qui le recouvrait. */
@media(min-width:901px){
  body[data-screen="market"] .market-summary-sticky{
    display:none!important;
  }
  .market-selection-panel{
    max-height:calc(100vh - 24px)!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .market-selection-groups{
    overflow:auto!important;
    min-height:0!important;
    padding-right:2px!important;
    margin-bottom:10px!important;
  }
  .market-panel-validate{
    flex:0 0 auto!important;
    margin-top:2px!important;
  }
}

/* Ma sélection : vraies sous-sections par poste. */
.market-selection-groups{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.market-pos-section{
  border:1px solid #e2e6df;
  border-radius:11px;
  overflow:hidden;
  background:#fff;
}
.market-pos-section.complete{
  border-color:#cfe0d5;
}
.market-pos-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  background:#f6f7f2;
  border-bottom:1px solid #e8ebe5;
}
.market-pos-section.complete .market-pos-section-head{
  background:#edf5ef;
}
.market-pos-section-head>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.market-pos-section-head b{
  font-size:11px;
  line-height:1.15;
  color:#123f34;
}
.market-pos-section-head small{
  font-size:8px;
  color:#7a857f;
}
.market-pos-section-head>span{
  flex:0 0 auto;
  min-width:37px;
  text-align:center;
  padding:4px 6px;
  border-radius:999px;
  background:#fff0c7;
  color:#805a00;
  font-size:9px;
  font-weight:900;
}
.market-pos-section.complete .market-pos-section-head>span{
  background:#dfeee4;
  color:#0b6249;
}
.market-pos-section-body{
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:6px;
}
.market-pos-empty{
  padding:6px 5px;
  color:#98a19c;
  font-size:9px;
  font-style:italic;
}
.market-pos-section .market-selected-compact{
  margin:0!important;
  border-color:#e7eae4!important;
  background:#fffefa!important;
}

/* Le résumé "Effectif à compléter" reste compact : les compteurs
   détaillés sont maintenant directement dans chaque sous-section. */
.market-selection-panel .market-warning,
.market-selection-panel .market-ready{
  margin-bottom:10px!important;
}

/* Mobile : garder la barre sticky utile et éviter le double bouton. */
@media(max-width:900px){
  .market-panel-validate{
    display:none!important;
  }
  .market-selection-panel{
    overflow:visible!important;
  }
  .market-selection-groups{
    max-height:none!important;
  }
  .market-pos-section-head{
    padding:8px 9px;
  }
}

/* Un peu de marge basse sur mobile pour que la barre fixe
   n'occulte jamais la fin du panneau. */
@media(max-width:900px){
  body[data-screen="market"] #screen{
    padding-bottom:150px!important;
  }
}


/* ================================================================
   V28.3 — HEADER + SÉLECTION FIX
   Deux corrections ciblées, rien d'autre.
   ================================================================ */

/* 1) HEADER DESKTOP
   Asset dédié de bannière : titre + slogan toujours entièrement visibles.
   Plus de background-position bricolé sur l'image haute d'origine. */
.hero{
  background-image:url("assets/hero-v283.png")!important;
  background-repeat:no-repeat!important;
  background-position:center center!important;
  background-color:#f1efe4!important;
}
@media(min-width:901px){
  .hero{
    height:204px!important;
    min-height:204px!important;
    background-size:cover!important;
  }
}
@media(max-width:900px){
  .hero{
    background-image:url("assets/hero-v273.png")!important;
  }
}

/* 2) MA SÉLECTION DESKTOP
   Suppression du scroll interne qui coupait visuellement les joueurs.
   Le panneau suit désormais le scroll normal de la page. */
@media(min-width:901px){
  .market-selection-panel{
    position:relative!important;
    top:auto!important;
    max-height:none!important;
    overflow:visible!important;
    display:block!important;
  }
  .market-selection-groups{
    overflow:visible!important;
    max-height:none!important;
    min-height:0!important;
    padding-right:0!important;
    margin-bottom:12px!important;
  }
  .market-pos-section{
    overflow:hidden!important;
  }
  .market-pos-section-body{
    overflow:visible!important;
  }
  .market-panel-validate{
    position:static!important;
    width:100%!important;
  }
}

/* Les lignes sélectionnées ne doivent jamais être rognées dans une sous-section. */
.market-selected-compact{
  min-height:48px!important;
  overflow:visible!important;
}
.market-pos-section-body .market-selected-compact + .market-selected-compact{
  margin-top:5px!important;
}


/* ================================================================
   V28.4 — CORRECTION FILTRE "PRIX MAX"
   La toolbar est dimensionnée selon la vraie largeur de sa colonne,
   pas selon la largeur totale de l'écran.
   ================================================================ */

@media(min-width:901px){
  body[data-screen="market"] .market-toolbar{
    grid-template-columns:minmax(240px,1fr) 150px minmax(160px,190px)!important;
    gap:9px!important;
    position:static!important;
  }
  body[data-screen="market"] .market-search-wrap{
    grid-column:1!important;
    grid-row:1!important;
  }
  body[data-screen="market"] #marketPos{
    grid-column:2!important;
    grid-row:1!important;
  }
  body[data-screen="market"] #marketClub{
    grid-column:3!important;
    grid-row:1!important;
  }
  body[data-screen="market"] #marketSort{
    grid-column:1/3!important;
    grid-row:2!important;
  }
  body[data-screen="market"] #marketMax{
    grid-column:3!important;
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    font-size:14px!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  body[data-screen="market"] #marketMax::placeholder{
    font-size:14px!important;
    opacity:.78!important;
  }
}

/* Très grands écrans : on conserve volontairement 2 lignes.
   Cela évite que les filtres empiètent sur "Ma sélection". */
@media(min-width:1500px){
  body[data-screen="market"] .market-toolbar{
    grid-template-columns:minmax(260px,1fr) 160px minmax(180px,210px)!important;
  }
}

/* V28.6 — J2 Top 14 réelle */
.day-provider-badge.real{
  background:#dfeee4!important;
  color:#075b43!important;
  border:1px solid #bdd8c7!important;
}

/* ===== V29 — Top 14 réel / fiches match ===== */
.top14-list-loading,.top14-modal-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 14px;color:#64736c;font-size:11px}.top14-list-loading span,.top14-modal-loading span{width:16px;height:16px;border:2px solid #ccd5cf;border-top-color:#0b5a45;border-radius:50%;animation:top14spin .75s linear infinite}@keyframes top14spin{to{transform:rotate(360deg)}}
.sports-clubs.rich span{gap:7px}.top14-club-badge{width:21px;height:21px;object-fit:contain;flex:0 0 21px}.sports-state.live small{color:#b4261c}.sports-state.final small{color:#356151}.sports-state.upcoming small{color:#7b837f}
.top14-real-copy{background:#eef5ef;border:1px solid #dae8dd;border-radius:11px;padding:10px 12px!important;margin-top:10px!important;color:#527064!important}
.top14-sheet{width:min(calc(100% - 10px),760px)!important;background:#f5f3e9!important;padding-left:14px!important;padding-right:14px!important}
.top14-match-hero{position:relative;background:linear-gradient(145deg,#073b2e,#0a5b45);color:#fff;border-radius:18px;padding:18px 14px 16px;margin:4px 0 11px;overflow:hidden}.top14-match-hero:after{content:"";position:absolute;width:170px;height:170px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-65px;top:-85px}.top14-kicker{text-align:center;font-size:8px;font-weight:950;letter-spacing:.14em;color:#f1cb52}.top14-match-date{text-align:center;font-size:9px;color:#c9d8d1;margin-top:3px;text-transform:capitalize}.top14-scoreboard{display:grid;grid-template-columns:1fr 90px 1fr;align-items:center;gap:7px;margin:13px 0 9px}.top14-scoreboard>div{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0}.top14-scoreboard>div b{font-size:12px;line-height:1.05}.top14-hero-badge{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:50%;padding:5px}.top14-scoreboard>strong{font-size:30px;display:flex;justify-content:center;gap:8px}.top14-scoreboard>strong i{font-style:normal;color:#f1cb52}.top14-status-pill{display:table;margin:0 auto;border-radius:999px;padding:5px 9px;font-size:8px;font-weight:950;letter-spacing:.07em;background:rgba(255,255,255,.12)}.top14-status-pill.live{background:#c8372d;color:#fff}.top14-status-pill.final{background:rgba(255,255,255,.14)}
.top14-detail-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#e4e8e1;border-radius:12px;padding:3px;position:sticky;top:-14px;z-index:3}.top14-detail-tabs button{border:0;background:transparent;border-radius:9px;padding:9px 4px;font:inherit;font-size:9px;font-weight:900;color:#68756f}.top14-detail-tabs button.active{background:#0a523f;color:#fff}.top14-section-head{display:flex;align-items:end;justify-content:space-between;margin:16px 2px 8px}.top14-section-head h3{margin:0;font-size:15px}.top14-section-head span{font-size:7px;color:#7e8782;font-weight:900}
.top14-teamstats{background:#fff;border:1px solid #dfe3dc;border-radius:14px;overflow:hidden}.top14-stat-row{display:grid;grid-template-columns:54px 1fr 54px;align-items:center;text-align:center;border-bottom:1px solid #edf0eb;min-height:38px}.top14-stat-row:last-child{border-bottom:0}.top14-stat-row strong{font-size:13px;color:#083e32}.top14-stat-row span{font-size:9px;color:#6d7973}.top14-empty,.top14-note-lock,.top14-error{background:#fff;border:1px solid #dfe3dc;border-radius:14px;padding:18px;text-align:center;color:#6c7972;font-size:11px}.top14-empty{margin:10px 0}.top14-note-lock b,.top14-error b{display:block;color:#0a493a;font-size:14px}.top14-note-lock p,.top14-error p{margin:6px 0 0;line-height:1.45}.top14-error.inline{margin-top:10px}.top14-error .btn{margin-top:12px}
.top14-compo-grid,.top14-stats-columns{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}.top14-compo-grid section,.top14-stats-columns section{min-width:0}.top14-team-title{display:flex;align-items:center;gap:7px;margin:5px 2px 8px;color:#083e32}.top14-team-title b{font-size:13px}.top14-comp-group{background:#fff;border:1px solid #dfe3dc;border-radius:13px;overflow:hidden;margin-bottom:8px}.top14-comp-group h4{margin:0;padding:8px 10px;background:#edf2ec;font-size:8px;letter-spacing:.08em;color:#5f6f67;text-transform:uppercase}.top14-comp-player{display:flex;align-items:center;gap:8px;min-height:40px;padding:5px 9px;border-top:1px solid #eef0ec}.top14-comp-player i{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#0b503e;color:#fff;font-style:normal;font-size:9px;font-weight:950}.top14-comp-player span{display:flex;flex-direction:column;min-width:0}.top14-comp-player b{font-size:10px}.top14-comp-player small{font-size:8px;color:#77827c}
.top14-player-table{display:grid;gap:5px}.top14-player-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 38px;align-items:center;gap:7px;background:#fff;border:1px solid #e0e3dd;border-radius:12px;padding:7px}.top14-player-id{display:flex;align-items:center;gap:7px;min-width:0}.top14-player-id>img,.top14-player-id>span{width:32px;height:32px;flex:0 0 32px;border-radius:50%;object-fit:cover;background:#e5ebe5;display:grid;place-items:center}.top14-player-id div{display:flex;flex-direction:column;min-width:0}.top14-player-id b{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top14-player-id small{font-size:7.5px;color:#7b8580;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top14-player-mini{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.top14-player-mini span{font-weight:900;font-size:10px}.top14-player-mini small{display:block;font-size:6px;color:#8a938e}.top14-note{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e6eee8;color:#0b503e;font-size:11px}.top14-note.hot{background:#0b5b45;color:#fff}.top14-note.low{background:#f2dfdc;color:#9f392f}.top14-note-intro{background:#0a493a;color:#fff;border-radius:14px;padding:12px 13px;margin:12px 0 9px}.top14-note-intro span{font-size:8px;color:#f1cb52;font-weight:950;letter-spacing:.08em}.top14-note-intro p{font-size:9px;line-height:1.35;margin:5px 0 0;color:#d8e5df}.top14-myplayers{display:grid;gap:6px}
@media(min-width:700px){.top14-compo-grid,.top14-stats-columns{grid-template-columns:1fr 1fr}.top14-scoreboard{grid-template-columns:1fr 120px 1fr}.top14-scoreboard>strong{font-size:38px}.top14-hero-badge{width:58px;height:58px}.top14-scoreboard>div b{font-size:14px}.top14-sheet{padding:18px!important}.top14-detail-tabs{top:-18px}.top14-player-row{grid-template-columns:minmax(0,1fr) 100px 40px}}
@media(max-width:390px){.top14-player-row{grid-template-columns:minmax(0,1fr) 78px 34px}.top14-player-mini{gap:2px}.top14-scoreboard{grid-template-columns:1fr 76px 1fr}.top14-scoreboard>strong{font-size:25px}.top14-hero-badge{width:41px;height:41px}.top14-detail-tabs button{font-size:8px}.sports-clubs.rich .top14-club-badge{width:18px;height:18px;flex-basis:18px}}

/* V29.4 — replay réel J1 / suivi effectif */
.j1-replay-controls{background:#0b4b3b;color:#fff;border-radius:16px;padding:13px 14px;margin:4px 0 12px;display:grid;gap:10px}
.j1-replay-controls small{display:block;font-size:8px;letter-spacing:.12em;font-weight:950;color:#f0cb4d}
.j1-replay-controls b{display:block;font-size:15px;margin-top:2px}
.j1-replay-controls p{font-size:9px;line-height:1.4;color:#d9e7e1;margin:5px 0 0}
.j1-replay-pills{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.j1-replay-pills::-webkit-scrollbar{display:none}
.j1-replay-pills button{flex:0 0 auto;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:8px 10px;font:inherit;font-size:8px;font-weight:900;white-space:nowrap}
.j1-replay-pills button.active{background:#f0cb4d;color:#123c31;border-color:#f0cb4d}
.j1-owned-card{margin-bottom:13px}.j1-owned-card>.between{align-items:flex-start;margin-bottom:6px}.j1-owned-card>.between small{font-size:8px;letter-spacing:.1em;font-weight:900;color:#77827d}.j1-owned-card>.between h2{font-size:16px;margin:2px 0 0}
.j1-replay-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0 9px}
.j1-replay-summary span{background:#eef2ed;border-radius:11px;padding:8px;text-align:center}.j1-replay-summary b{display:block;font-size:17px;color:#0a493a}.j1-replay-summary small{display:block;font-size:7px;color:#75817b;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.j1-owned-grid{display:grid;gap:0}.j1-owned-player{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;border-top:1px solid #e5e7e1;padding:8px 0}.j1-owned-player:first-child{border-top:0}.j1-owned-player img{width:36px;height:36px}.j1-owned-player span{min-width:0}.j1-owned-player span b,.j1-owned-player span small{display:block}.j1-owned-player span b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.j1-owned-player span small{font-size:8px;color:#75817b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.j1-owned-player em{font-style:normal;font-size:8px;font-weight:950;border-radius:999px;padding:6px 8px;background:#edf1ed;color:#66736d;white-space:nowrap}.j1-owned-player em.final{background:#e3efe8;color:#07513d}.j1-owned-player em.live{background:#f8e9bd;color:#6d5310}.j1-owned-player em.upcoming{background:#edf1ed;color:#68766f}.j1-owned-player em.muted{background:#f2f1ec;color:#7c817e}
.top14-list-loading.compact{min-height:70px}
@media(max-width:520px){.j1-replay-controls{border-radius:14px;margin-left:0;margin-right:0}.j1-owned-player{grid-template-columns:36px minmax(0,1fr) auto}.j1-owned-player em{padding:6px 7px}.j1-replay-summary span{padding:7px 4px}}


/* ===== V29.6 — portraits LNR non déformés + scores XVDC réels ===== */
.day-owned-player img,.j1-owned-player img,.real-xv-player img{width:38px;height:38px;aspect-ratio:1/1;object-fit:cover;object-position:center 18%;border-radius:50%;background:#eef1ec;display:block}
.real-league-sync{display:flex;align-items:center;gap:8px;margin:0 2px 9px;padding:8px 10px;border:1px solid #d8e4dc;background:#f3f8f5;border-radius:11px;color:#31564a}.real-league-sync b{font-size:8px;letter-spacing:.08em;color:#08704f}.real-league-sync span{font-size:8px;line-height:1.25}.real-score-rule{background:#f5f8f5}.real-score-rule p{font-size:10px;color:#68766f;margin:5px 0 0}.real-xv-columns{display:grid;gap:12px}.real-xv-columns section>h3{margin:5px 0 7px}.real-xv-player{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;gap:8px;align-items:center;border-top:1px solid #e6e8e3;padding:7px 0}.real-xv-player:first-child{border-top:0}.real-xv-player span{min-width:0}.real-xv-player span b,.real-xv-player span small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.real-xv-player span b{font-size:10px}.real-xv-player span small{font-size:8px;color:#75817b}.real-xv-player strong{font-size:9px;color:#0b4b3b;white-space:nowrap}.real-xv-player em{font-style:normal;font-size:9px;font-weight:950;background:#e5efe9;color:#07513d;border-radius:999px;padding:5px 6px}.league-result-score small{white-space:nowrap}
@media(min-width:700px){.real-xv-columns{grid-template-columns:1fr 1fr}}
@media(max-width:390px){.real-league-sync{align-items:flex-start;flex-direction:column;gap:3px}.real-xv-player{grid-template-columns:36px minmax(0,1fr) auto}.real-xv-player em{grid-column:3}.real-xv-player img{width:34px;height:34px}}

/* V29.7 — résumé terrain + remplacements automatiques */
.real-match-pitch{margin:10px 0 8px;min-height:500px}
.real-effective-slot{pointer-events:none}
.real-effective-slot .match-shirt-wrap img{width:42px;height:42px;aspect-ratio:1/1;object-fit:cover;object-position:center 18%;border-radius:50%;background:#eef1ec;filter:none}
.real-effective-slot.replacement em{background:#715b08}
.real-effective-slot.rotaldo em{background:#5f6361}
.real-effective-slot small{display:block;margin-top:2px;font-size:6px;line-height:1.05;color:#f4ead0;background:rgba(3,46,36,.9);border-radius:5px;padding:2px 3px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.replacement-dot{position:absolute;left:-5px;top:-4px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#f3c33f;color:#17382d;font-size:8px;font-weight:1000;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.real-replacement-summary{margin:7px 0 10px;padding:9px 10px;border-radius:10px;background:#fff7db;border:1px solid #ead99a;color:#574714}
.real-replacement-summary.ok{background:#eff7f2;border-color:#cfe2d5;color:#31584a}
.real-replacement-summary b,.real-replacement-summary span{display:block}.real-replacement-summary b{font-size:9px}.real-replacement-summary span{font-size:8px;line-height:1.35;margin-top:2px}
.real-xv-player.is-replacement{background:#fffaf0}.real-xv-player.is-rotaldo{background:#f1f2f1}
.real-xv-player.is-rotaldo img{filter:grayscale(1);opacity:.72}
.real-pitch-tabs{margin-top:10px}.real-detail-tabs{margin-top:12px}
.real-duel-summary-grid{display:grid;gap:10px;margin-top:8px}.real-duel-summary-grid>div{border:1px solid #e2e6e2;border-radius:12px;padding:10px;background:#fafbf9}.real-duel-summary-grid small,.real-duel-summary-grid>b{display:block}.real-duel-summary-grid small{font-size:8px;color:#76817c}.real-duel-summary-grid>b{font-size:20px;color:#073f33;margin:3px 0 7px}
@media(min-width:700px){.real-duel-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.real-match-pitch{min-height:455px}.real-effective-slot .match-shirt-wrap img{width:36px;height:36px}.real-effective-slot{width:62px}.real-effective-slot small{font-size:5.5px;max-width:62px}}

/* V29.10 — disponibilité composition et identité LNR stricte */
.availability-help{display:flex;gap:8px;align-items:flex-start;margin:8px 0 12px;padding:9px 11px;border:1px solid #d9e2dc;border-radius:12px;background:#f6f8f5;color:#49645a}.availability-help b{font-size:9px;white-space:nowrap;color:#0b503e}.availability-help span{font-size:8px;line-height:1.35}.availability-chip{display:inline-flex;align-items:center;width:max-content;margin-top:4px;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:950;letter-spacing:.03em}.availability-chip.ok{background:#e1efe6;color:#07543e}.availability-chip.out{background:#f4e4df;color:#8d3f32}.availability-chip.warn{background:#f7edcf;color:#765b15}.availability-chip.pending{background:#edf0ec;color:#68756f}.comp-player-choice img,.role-player-choice img{object-fit:cover;object-position:center 18%;border-radius:50%}

/* V29.13 — J1/J2 + live J2 + essai de pénalité XVDC */
.xvdc-round-switch{display:flex;gap:6px;justify-content:center;margin:0 auto 12px;max-width:420px;background:#e8ece6;border-radius:12px;padding:3px}
.xvdc-round-switch button{flex:1;border:0;border-radius:9px;background:transparent;color:#66736d;font:inherit;font-size:9px;font-weight:950;padding:9px 10px}
.xvdc-round-switch button.active{background:#0b5a45;color:#fff}
.xvdc-penalty-try{margin:7px 0 0;padding:8px 9px;border-radius:10px;background:#f9e9c6;border:1px solid #e6c77d;color:#61480b}
.xvdc-penalty-try b,.xvdc-penalty-try span{display:block}.xvdc-penalty-try b{font-size:9px}.xvdc-penalty-try span{font-size:8px;line-height:1.35;margin-top:2px}
@media(max-width:420px){.xvdc-round-switch{max-width:none}.xvdc-round-switch button{font-size:8px;padding:8px 6px}}

/* V29.15 — retour du fil de match XVDC */
.xvdc-thread{position:relative;padding:10px 2px 4px}
.xvdc-thread:before{content:"";position:absolute;left:50%;top:82px;bottom:52px;width:2px;background:#d7ddd7;transform:translateX(-1px)}
.xvdc-thread-head{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-bottom:4px;position:relative;z-index:1}
.xvdc-thread-head>span{display:flex;align-items:center;gap:7px;min-width:0}.xvdc-thread-head>span:last-child{justify-content:flex-end;flex-direction:row-reverse;text-align:right}.xvdc-thread-head svg{width:31px;height:35px;flex:0 0 31px}.xvdc-thread-head b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.xvdc-thread-head em{font-size:8px;font-style:normal;font-weight:900;letter-spacing:.1em;color:#68766f}
.xvdc-thread-note{text-align:center;font-size:7.5px;color:#7d8782;margin:2px 0 12px}
.xvdc-thread-row{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:6px;align-items:center;min-height:58px;position:relative;z-index:1}
.xvdc-thread-side{min-width:0}.xvdc-thread-side.left{display:flex;justify-content:flex-end}.xvdc-thread-side.right{display:flex;justify-content:flex-start}
.xvdc-thread-mid{display:flex;justify-content:center}.xvdc-thread-mid i{display:flex;width:29px;height:29px;border-radius:50%;align-items:center;justify-content:center;background:#f4f7f4;border:2px solid #fff;box-shadow:0 0 0 1px #cfd8d1;color:#0b5949;font-size:9px;font-style:normal;font-weight:900}
.xvdc-thread-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:7px;align-items:center;width:min(100%,260px);padding:7px 8px;background:#fff;border:1px solid #e0e4df;border-radius:13px}.xvdc-thread-row.away .xvdc-thread-card{grid-template-columns:auto minmax(0,1fr) 30px;text-align:right}
/* V29.25 — les cartes d’essai du fil utilisent une classe dédiée, sans collision avec .try du terrain. */
.xvdc-thread-card.xvdc-real-try{position:static;width:min(100%,260px);height:auto;left:auto;right:auto;top:auto;bottom:auto;border:1px solid #e0e4df}
.xvdc-thread-card img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#eef2ee}.xvdc-thread-card span{min-width:0}.xvdc-thread-card b,.xvdc-thread-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xvdc-thread-card b{font-size:9px;color:#123f35}.xvdc-thread-card small{font-size:7px;color:#7b8580;margin-top:1px}.xvdc-thread-card strong{font-size:11px;color:#0a5a48;white-space:nowrap}.xvdc-thread-card.buv{background:#fff7db;border-color:#ead99a}.xvdc-thread-card.sub{background:#f3f7f4}.xvdc-thread-card.penalty{background:#fff1c3;border-color:#dfc05a}
.xvdc-thread-final{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;margin-top:8px;padding:9px 12px;border-radius:13px;background:#0b5747;color:#fff;position:relative;z-index:1}.xvdc-thread-final span{font-size:17px;font-weight:900}.xvdc-thread-final b{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#dbe9e4}
.xvdc-thread-empty{padding:20px;text-align:center;background:#f3f6f3;border-radius:14px}.xvdc-thread-empty b,.xvdc-thread-empty span{display:block}.xvdc-thread-empty span{font-size:9px;color:#77827c;margin-top:4px}
.real-effective-slot.rotaldo .match-shirt-wrap img{object-fit:cover;border-radius:50%;background:#f0e6c2}
@media(max-width:420px){.xvdc-thread-row{grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:3px}.xvdc-thread-mid i{width:26px;height:26px;font-size:8px}.xvdc-thread-card{grid-template-columns:24px minmax(0,1fr) auto;gap:4px;padding:6px}.xvdc-thread-row.away .xvdc-thread-card{grid-template-columns:auto minmax(0,1fr) 24px}.xvdc-thread-card img{width:24px;height:24px}.xvdc-thread-card b{font-size:7.5px}.xvdc-thread-card small{font-size:6px}.xvdc-thread-card strong{font-size:9px}.xvdc-thread-head{gap:6px}.xvdc-thread-head b{font-size:8px}}

/* V29.17 — portraits LNR dans le mercato + effectif renforcé */
.market-player-card>img.market-player-photo{width:42px;height:42px;border-radius:50%;object-fit:cover;object-position:center top;background:#eef2ed;border:1px solid #d7ded7;overflow:hidden}
.market-player-card>img.market-player-photo.shirt-fallback{object-fit:contain;padding:2px;border-radius:10px}
.market-lnr-tag{display:block;margin-top:3px;font-size:9px!important;font-weight:800;letter-spacing:.03em;color:#547267!important;text-transform:uppercase}
.market-free-row img.market-free-photo{width:40px;height:40px;border-radius:50%;object-fit:cover;object-position:center top;background:#eef2ed;border:1px solid #d7ded7}
.market-free-row img.market-free-photo.shirt-fallback{object-fit:contain;padding:2px;border-radius:10px}
@media(max-width:720px){.market-player-card>img.market-player-photo{width:36px;height:36px}.market-free-row img.market-free-photo{width:36px;height:36px}}
