/* PingAtlas 0.2.2 - full bleed layout */
html,body{margin:0}
body:has(.pa-app) .entry-header,
body:has(.pa-app) .entry-title,
body:has(.pa-app) .page-title,
body:has(.pa-app) .wp-block-post-title,
body:has(.pa-app) .wp-block-post-featured-image{display:none!important}

body:has(.pa-app) .entry-content,
body:has(.pa-app) .wp-block-post-content,
body:has(.pa-app) .site-content,
body:has(.pa-app) .content-area,
body:has(.pa-app) main.site-main,
body:has(.pa-app) .is-layout-constrained{
    max-width:none!important;
    width:100%!important;
}

body:has(.pa-app) .entry-content,
body:has(.pa-app) .wp-block-post-content{
    margin:0!important;
    padding:0!important;
}

/* Break out of any theme/container width. */
body:has(.pa-app) .pa-app{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
}

.pa-app{
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    display:flex;
    min-height:100vh;
    background:#f6f7fb;
    color:#182033;
    box-sizing:border-box
}
.pa-app *{box-sizing:border-box}

.pa-sidebar{
    width:250px;
    flex:0 0 250px;
    background:#fff;
    border-right:1px solid #e7e9ef;
    padding:30px 20px;
}
.pa-brand{font-size:23px;font-weight:800;display:flex;align-items:center;gap:10px;margin-bottom:36px}
.pa-logo{font-size:25px}
.pa-sidebar nav{display:flex;flex-direction:column;gap:7px}
.pa-sidebar nav a{color:#667085;text-decoration:none;padding:13px 14px;border-radius:10px;font-weight:600}
.pa-sidebar nav a.active,.pa-sidebar nav a:hover{background:#eef2ff;color:#273a9b}

.pa-main{
    flex:1;
    min-width:0;
    padding:42px clamp(24px,4vw,56px);
    max-width:1500px;
    margin:0 auto;
    width:100%;
}
.pa-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}
.pa-eyebrow{font-size:12px;letter-spacing:.12em;color:#7b8496;font-weight:800}
.pa-header h1{font-size:36px;line-height:1.15;margin:8px 0}
.pa-header p{color:#687386;margin:0;max-width:650px}
.pa-button{border:0;border-radius:10px;padding:13px 18px;background:#253b9b;color:#fff;font-weight:700;cursor:pointer;white-space:nowrap}

.pa-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.pa-card,.pa-panel{background:#fff;border:1px solid #e7e9ef;border-radius:16px;box-shadow:0 3px 12px rgba(16,24,40,.04)}
.pa-card{padding:20px;min-height:132px}
.pa-card span{display:block;color:#697386;font-size:13px;font-weight:600}
.pa-card strong{display:block;font-size:30px;margin:9px 0 3px}
.pa-card small{color:#98a1b2}

.pa-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-bottom:20px}
.pa-panel{padding:22px}
.pa-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.pa-panel-head h2{font-size:18px;margin:0}
.pa-panel-head span{font-size:13px;color:#8992a3}
.pa-empty{min-height:190px;display:flex;align-items:center;justify-content:center;text-align:center;color:#8a93a3;background:#fafbfc;border-radius:12px;padding:20px}
.pa-map-placeholder{min-height:280px;border-radius:12px;background:linear-gradient(135deg,#eef2f7,#e4e9f2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#697386}
.pa-map-placeholder strong{font-size:18px;color:#273142}
.pa-map-placeholder p{max-width:520px;margin:8px 20px 0}
.pa-map-pin{font-size:36px;margin-bottom:6px}

@media(max-width:900px){
    .pa-sidebar{display:none}
    .pa-main{padding:28px 20px}
    .pa-stats{grid-template-columns:repeat(2,1fr)}
    .pa-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
    .pa-stats{grid-template-columns:1fr}
    .pa-header{flex-direction:column}
    .pa-header h1{font-size:29px}
    .pa-button{width:100%}
}

/* PingAtlas 0.2.4 : liens et derniers matchs */
.pa-app a.pa-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.pa-app a.pa-button:hover{background:#1c2d78;color:#fff}
.pa-recent-list{display:flex;flex-direction:column}
.pa-recent-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #e7e9ef}
.pa-recent-item>div:first-child{min-width:0}
.pa-recent-item strong{display:block}
.pa-recent-item small{display:block;color:#8992a3;margin-top:4px}
.pa-recent-result{text-align:right;white-space:nowrap;font-size:13px}
.pa-recent-result strong{display:inline}

/* PingAtlas 0.2.7 : evolution FFTT compacte */
.pa-ranking-empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;background:#fafbfc;border-radius:12px;padding:20px;color:#697386}
.pa-ranking-empty p{margin:0}.pa-ranking-empty a,.pa-ranking-link{color:#273a9b;font-weight:700;text-decoration:none}
.pa-ranking-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pa-ranking-kpis>div{background:#f7f8fc;border-radius:10px;padding:13px;min-width:0}.pa-ranking-kpis span,.pa-ranking-kpis small{display:block;color:#697386;font-size:12px}.pa-ranking-kpis strong{display:block;font-size:22px;margin:6px 0;overflow-wrap:anywhere}.pa-ranking-chart{margin-top:15px}.pa-ranking-chart svg{width:100%;height:110px;display:block}.pa-ranking-labels{display:flex;justify-content:space-between;font-size:12px;color:#8992a3}.pa-ranking-link{display:inline-block;margin-top:15px}.pa-ranking-hint{color:#8992a3;font-size:13px}
@media(max-width:520px){.pa-ranking-kpis{grid-template-columns:1fr}}


/* V0.3.0 - Matchs page: reuse dashboard shell and keep existing Matches CSS. */
.pa-matches-app .pa-matches-main{min-width:0;flex:1}
.pa-matches-app .pa-header{margin-bottom:24px}
.pa-matches-app .pam-app{max-width:100%;min-width:0;width:100%;margin:0}
.pa-matches-app .pam-panel{box-shadow:0 4px 16px rgba(24,32,51,.035)}
.pa-matches-app .pam-scroll{max-width:100%;overflow-x:auto}
.pa-matches-app .pam-stats{margin-top:4px}
@media(max-width:780px){.pa-matches-app{display:block}.pa-matches-app .pa-sidebar{width:100%;max-width:none}.pa-matches-app .pa-main{width:100%;min-width:0}}

/* V0.3.1 - Adversaires: consistent dashboard shell, preserve module styling. */
.pa-adversaires-app .pa-adversaires-main{min-width:0;flex:1}
.pa-adversaires-app .pa-header{margin-bottom:24px}
.pa-adversaires-app .paa-app{max-width:100%;width:100%;min-width:0;margin:0}
.pa-adversaires-app .paa-scroll{max-width:100%;overflow-x:auto}
@media(max-width:780px){.pa-adversaires-app{display:block}.pa-adversaires-app .pa-sidebar{width:100%;max-width:none}.pa-adversaires-app .pa-main{width:100%;min-width:0}}

/* V0.3.2 - Lieux: same dashboard shell; existing Lieux styles retained. */
.pa-lieux-app .pa-lieux-main{min-width:0;flex:1}
.pa-lieux-app .pa-header{margin-bottom:24px}
.pa-lieux-app .palieux-app{max-width:100%;width:100%;min-width:0;margin:0}
@media(max-width:780px){.pa-lieux-app{display:block}.pa-lieux-app .pa-sidebar{width:100%;max-width:none}.pa-lieux-app .pa-main{width:100%;min-width:0}}

/* V0.3.3 - Classement: preserve the ranking plugin's own styles and charts. */
.pa-classement-app .pa-classement-main{min-width:0;flex:1}
.pa-classement-app .pa-header{margin-bottom:24px}
.pa-classement-app .pa-classement-main > :not(.pa-header){max-width:100%}
.pa-classement-app canvas,.pa-classement-app svg{max-width:100%}
@media(max-width:780px){.pa-classement-app{display:block}.pa-classement-app .pa-sidebar{width:100%;max-width:none}.pa-classement-app .pa-main{width:100%;min-width:0}}

/* V0.3.4 - Carte: keep Leaflet within the content column and preserve controls. */
.pa-carte-app .pa-carte-main{min-width:0;flex:1}
.pa-carte-app .pa-header{margin-bottom:24px}
.pa-carte-app .pac-wrap{width:100%;max-width:100%;min-width:0;margin:0}
.pa-carte-app .pac-map{width:100%;max-width:100%;min-width:0}
.pa-carte-app .pac-stats{max-width:100%}
.pa-carte-app .leaflet-container{z-index:0}
@media(max-width:780px){.pa-carte-app{display:block}.pa-carte-app .pa-sidebar{width:100%;max-width:none}.pa-carte-app .pa-main{width:100%;min-width:0}}

/* V0.3.5 - Profil: dashboard shell; profile plugin remains unchanged. */
.pa-profil-app .pa-profil-main{min-width:0;flex:1}
.pa-profil-app .pa-header{margin-bottom:24px}
.pa-profil-app .pa-profil-main > :not(.pa-header){max-width:100%}
@media(max-width:780px){.pa-profil-app{display:block}.pa-profil-app .pa-sidebar{width:100%;max-width:none}.pa-profil-app .pa-main{width:100%;min-width:0}}

/* V0.3.6 — Navigation et contenu adaptés aux smartphones. */
@media(max-width:900px){
 .pa-app{display:flex!important;flex-direction:column!important;min-width:0;width:100%!important;overflow-x:clip}
 .pa-app .pa-sidebar{display:block!important;width:100%!important;max-width:100%!important;min-width:0;flex:none;padding:12px 14px!important;position:relative;z-index:2}
 .pa-app .pa-brand{margin-bottom:10px!important}
 .pa-app .pa-sidebar nav{display:flex!important;flex-direction:row!important;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:3px 0 9px;scrollbar-width:thin}
 .pa-app .pa-sidebar nav a{flex:0 0 auto!important;width:auto!important;white-space:nowrap;padding:10px 13px!important;border-radius:9px;min-height:42px;display:inline-flex;align-items:center}
 .pa-app .pa-main{width:100%!important;max-width:100%!important;min-width:0!important;flex:1;padding:20px 14px!important}
 .pa-app .pa-header{gap:12px;margin-bottom:18px}
 .pa-app .pa-panel,.pa-app .pa-card{min-width:0}
 .pa-app .pa-grid{grid-template-columns:minmax(0,1fr)!important}
 .pa-app .pa-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
 .pa-app .pa-stats .pa-card{padding:14px!important}
 .pa-app .pa-stats strong{overflow-wrap:anywhere}
 .pa-app input:not([type=checkbox]):not([type=radio]),.pa-app select,.pa-app textarea{max-width:100%;min-width:0}
 .pa-app .pam-app,.pa-app .paa-app,.pa-app .palieux-app,.pa-app .pac-wrap{max-width:100%!important;min-width:0!important}
 .pa-app .pam-scroll,.pa-app .paa-scroll,.pa-app table{max-width:100%}
 .pa-app .pam-scroll,.pa-app .paa-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .pa-app .leaflet-container{max-width:100%;touch-action:pan-x pan-y}
}
@media(max-width:520px){
 .pa-app .pa-main{padding:16px 10px!important}
 .pa-app .pa-header h1{font-size:25px!important}
 .pa-app .pa-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .pa-app .pa-panel{padding:15px!important}
 .pa-app .pa-panel-head{flex-wrap:wrap}
 .pa-app .pa-recent-item{align-items:flex-start}
 .pa-app .pa-button{min-height:44px}
}

/* V0.3.7 — Mobile compact: utilise la largeur disponible sans modifier le bureau. */
@media(max-width:900px){
 html,body{max-width:100%;overflow-x:clip}
 body:has(.pa-app) :is(.wp-site-blocks,.wp-block-group,.wp-block-post-content,.entry-content,.site-content,.content-area,.site-main,.is-layout-constrained){max-width:100%!important}
 body:has(.pa-app) :is(.wp-block-post-content,.entry-content){padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important}
 body:has(.pa-app) .pa-app{width:100%!important;max-width:100%!important;margin:0!important}
 .pa-app .pa-main{padding:14px 10px!important}
 .pa-app .pa-sidebar{padding:10px!important}
 .pa-app .pa-brand{font-size:18px!important;margin-bottom:7px!important}
 .pa-app .pa-header{margin-bottom:14px!important}
 .pa-app .pa-header h1{font-size:24px!important}
 .pa-app .pa-header p{font-size:14px!important;line-height:1.45}
 .pa-app .pa-eyebrow{font-size:10px!important}
 .pa-app .pa-card{padding:12px!important;min-height:95px!important}
 .pa-app .pa-card span{font-size:12px!important}
 .pa-app .pa-card strong{font-size:24px!important}
 .pa-app .pa-card small{font-size:11px!important}
 .pa-app .pa-panel{padding:12px!important}
 .pa-app .pa-panel h2{font-size:20px!important}
 .pa-app .pa-panel h3{font-size:18px!important}
 .pa-app .pa-recent-item{gap:8px!important}
 .pa-app .pa-recent-item strong{font-size:14px!important;overflow-wrap:anywhere}
 .pa-app .pa-recent-result{font-size:12px!important}
 .pa-app .pam-app{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}
 .pa-app .pam-app h2{font-size:21px!important}
 .pa-app .pam-app h3{font-size:18px!important}
 .pa-app .pam-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:12px 0!important}
 .pa-app .pam-stats>div{padding:10px!important;min-width:0}
 .pa-app .pam-stats strong{font-size:23px!important}
 .pa-app .pam-panel{padding:12px!important;margin:12px 0!important;min-width:0;max-width:100%}
 .pa-app .pam-grid{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
 .pa-app .pam-field{min-width:0;font-size:13px!important}
 .pa-app .pam-field input,.pa-app .pam-field select{width:100%!important;max-width:100%!important;min-width:0!important;font-size:16px!important;min-height:44px}
 .pa-app .pam-scroll{display:block;width:100%;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
 .pa-app .pam-scroll table{min-width:760px!important;width:760px!important;font-size:12px!important}
 .pa-app .pam-scroll th,.pa-app .pam-scroll td{padding:8px!important}
 .pa-app .pam-crosslink{white-space:normal!important;overflow-wrap:anywhere}
}
@media(max-width:520px){
 .pa-app .pa-main{padding:12px 8px!important}
 .pa-app .pa-sidebar{padding:8px!important}
 .pa-app .pa-stats{gap:8px!important}
 .pa-app .pa-ranking-kpis strong{font-size:21px!important}
}

/* V0.3.10: safe mobile layout; removes viewport breakout that clipped left edge. */
@media(max-width:900px){body:has(.pa-app) .pa-app{position:static!important;left:auto!important;right:auto!important;transform:none!important;width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}}

/* V0.3.11 — Twenty Twenty-Five: remove constrained layout width at the source.
   No viewport breakout or negative offsets; only pages containing PingAtlas. */
@media (max-width:900px) {
  body:has(.pa-app) .wp-site-blocks,
  body:has(.pa-app) .wp-site-blocks > main,
  body:has(.pa-app) .wp-site-blocks > .wp-block-group,
  body:has(.pa-app) main.wp-block-group,
  body:has(.pa-app) .wp-block-post-content,
  body:has(.pa-app) .entry-content,
  body:has(.pa-app) .is-layout-constrained:has(.pa-app),
  body:has(.pa-app) .is-layout-flow:has(.pa-app),
  body:has(.pa-app) .wp-block-group:has(.pa-app),
  body:has(.pa-app) .wp-block-columns:has(.pa-app),
  body:has(.pa-app) .wp-block-column:has(.pa-app) {
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    box-sizing:border-box!important;
  }
  body:has(.pa-app) .is-layout-constrained > .pa-app,
  body:has(.pa-app) .is-layout-flow > .pa-app,
  body:has(.pa-app) .wp-block-post-content > .pa-app,
  body:has(.pa-app) .wp-block-group > .pa-app {
    width:100%!important;
    max-width:none!important;
    margin-inline:0!important;
  }
  body:has(.pa-app) .pa-app {
    width:100%!important;
    max-width:100%!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    transform:none!important;
    margin:0!important;
    overflow-x:clip;
  }
  body:has(.pa-app) .pa-app .pa-main {padding:14px 10px!important}
  body:has(.pa-app) .pa-app .pa-sidebar {padding:10px!important}
}

.pingatlas-season-dashboard{max-width:1100px;margin:16px auto}.pingatlas-season-dashboard .pac-season{margin:0}

/* V0.3.13 — season progress panel, responsive without viewport breakout */
.pa-app .pa-season-progress{margin:18px 0;min-width:0;overflow:hidden}
.pa-app .pa-season-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.pa-app .pa-season-summary>div{background:#f5f7fb;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:5px;min-width:0}
.pa-app .pa-season-summary span,.pa-app .pa-season-summary small{font-size:12px;color:#657085}
.pa-app .pa-season-summary strong{font-size:clamp(19px,2.5vw,29px);line-height:1.2;overflow-wrap:anywhere}
.pa-app .pa-season-positive{color:#16804a}.pa-app .pa-season-negative{color:#b72d3c}
.pa-app .pa-season-chart{width:100%;height:200px;min-width:0;margin-top:12px}
.pa-app .pa-season-chart svg{display:block;width:100%;height:100%;overflow:visible}
.pa-app .pa-season-months{display:flex;justify-content:space-between;gap:4px;color:#657085;font-size:12px;padding:0 5%}
.pa-app .pa-season-rank{margin:18px 0 12px;font-size:14px}
@media(max-width:600px){.pa-app .pa-season-summary{gap:7px}.pa-app .pa-season-summary>div{padding:10px 7px}.pa-app .pa-season-summary strong{font-size:19px}.pa-app .pa-season-summary span,.pa-app .pa-season-summary small{font-size:10px}.pa-app .pa-season-chart{height:145px}}

/* V0.3.14 : the season panel is the single FFTT points chart. */

/* V0.3.15: one compact location for the two FFTT views */
.pa-app .pa-ranking-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 18px;border-bottom:1px solid #e6eaf2;padding-bottom:10px}
.pa-app .pa-ranking-tab{font:inherit;font-size:14px;color:#273a9b;background:#f4f6fb;border:1px solid #e1e6f2;border-radius:9px;padding:9px 13px;cursor:pointer}
.pa-app .pa-ranking-tab.is-active{color:white;background:#273a9b;border-color:#273a9b;font-weight:600}
.pa-app .pa-ranking-tab:focus-visible{outline:3px solid #7895e8;outline-offset:2px}
.pa-app .pa-ranking-switcher [hidden]{display:none!important}
.pa-app .pa-ranking-switcher .pa-season-progress{margin:0;overflow:hidden}
.pa-app .pa-ranking-switcher .pa-season-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.pa-app .pa-ranking-switcher .pa-season-summary>div{padding:10px 8px}
.pa-app .pa-ranking-switcher .pa-season-summary strong{font-size:clamp(16px,1.7vw,23px)}
.pa-app .pa-ranking-switcher .pa-season-chart{height:160px}
@media(max-width:600px){.pa-app .pa-ranking-switcher .pa-season-chart{height:135px}.pa-app .pa-ranking-tab{flex:1;text-align:center}}

/* 0.3.18: clearer long-term FFTT progression */
.pa-career-chart svg{height:175px;overflow:visible}
.pa-career-chart .pa-ranking-labels{padding:4px 1% 0;font-size:12px}
.pa-career-note{font-size:12px;color:#758199;margin:8px 0 0}
@media(max-width:600px){.pa-career-chart svg{height:145px}}

/* 0.3.19: accessible date-and-points tooltip for the career graph */
.pa-career-chart{position:relative}
.pa-career-chart .pa-career-point{cursor:pointer;outline:none}
.pa-career-chart .pa-career-point:focus{stroke:#293eaa;stroke-width:.6}
.pa-career-chart .pa-career-tooltip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,calc(-100% - 10px));background:#1f2f77;color:#fff;padding:8px 11px;border-radius:8px;box-shadow:0 3px 12px #14225430;font-size:12px;font-weight:600;white-space:nowrap;max-width:90%;}
.pa-career-chart .pa-career-tooltip[hidden]{display:none!important}

.pa-app .pa-interactive-chart{position:relative}
.pa-app .pa-interactive-chart .pa-career-tooltip{position:absolute;z-index:6;pointer-events:none;transform:translate(-50%,calc(-100% - 10px));background:#1f2f77;color:white;padding:8px 11px;border-radius:8px;box-shadow:0 3px 12px #14225430;font-size:12px;font-weight:600;white-space:nowrap;max-width:90%}
.pa-app .pa-interactive-chart .pa-career-tooltip[hidden]{display:none!important}
.pa-app .pa-interactive-point{cursor:pointer;outline:none}
