/* V130 — shared readable actions and responsive form boundaries. */
.v41-ui{--action-primary:#1d4ed8;--action-purple:#6033d8;--action-secondary:#475569;--action-success:#12643e;--action-danger:#a61b2b;--action-warning:#785400;--action-info:#006278;--action-dark:#172033}
[data-bs-theme="dark"] .v41-ui{--action-primary:#a9c8ff;--action-secondary:#c2cede;--action-success:#75e3ab;--action-danger:#ffadb5;--action-warning:#ffd76a;--action-info:#71dffc;--action-dark:#e3ecfa}
.v41-ui .btn{white-space:normal;overflow-wrap:anywhere;max-width:100%;touch-action:manipulation}
.v41-ui .btn-primary{color:#fff!important;background:linear-gradient(110deg,#1d4ed8,#6033d8)!important;border-color:#1d4ed8!important}
.v41-ui .btn-primary:hover,.v41-ui .btn-primary:focus-visible{background:linear-gradient(110deg,#173ca5,#4c28ad)!important;filter:none;transform:none;color:#fff!important}
.v41-ui .btn-secondary{background:#475569!important;border-color:#475569!important;color:#fff!important}
.v41-ui .btn-success,.v41-ui .btn-action-edit{background:#137349!important;border-color:#137349!important;color:#fff!important}
.v41-ui .btn-danger{background:#b42335!important;border-color:#b42335!important;color:#fff!important}
.v41-ui .btn-warning{background:#f5c400!important;border-color:#b18d00!important;color:#172033!important}
.v41-ui .btn-info{background:#19c6df!important;border-color:#087f91!important;color:#071327!important}
.v41-ui .btn-light{background:var(--sport-surface-2)!important;border-color:var(--sport-border)!important;color:var(--sport-text)!important}
.v41-ui .btn-outline-primary{color:var(--action-primary)!important;border-color:var(--action-primary)!important}
.v41-ui .btn-outline-secondary{color:var(--action-secondary)!important;border-color:var(--action-secondary)!important}
.v41-ui .btn-outline-success{color:var(--action-success)!important;border-color:var(--action-success)!important}
.v41-ui .btn-outline-danger,.v41-ui .btn-action-delete,#adminUserList .admin-user-actions .btn-action-delete{color:var(--action-danger)!important;border-color:var(--action-danger)!important;background:transparent!important}
.v41-ui .btn-outline-warning{color:var(--action-warning)!important;border-color:var(--action-warning)!important}
.v41-ui .btn-outline-info{color:var(--action-info)!important;border-color:var(--action-info)!important}
.v41-ui .btn-outline-dark{color:var(--action-dark)!important;border-color:var(--action-dark)!important}
.v41-ui :is(.btn-outline-primary,.btn-outline-secondary,.btn-outline-success,.btn-outline-danger,.btn-outline-warning,.btn-outline-info,.btn-outline-dark):is(:hover,:focus-visible){background:var(--sport-surface-2)!important;filter:none}
.v41-ui .btn-outline-primary:is(:hover,:focus-visible){color:var(--action-primary)!important}
.v41-ui .btn-outline-secondary:is(:hover,:focus-visible){color:var(--action-secondary)!important}
.v41-ui .btn-outline-success:is(:hover,:focus-visible){color:var(--action-success)!important}
.v41-ui .btn-outline-danger:is(:hover,:focus-visible){color:var(--action-danger)!important}
.v41-ui .btn-outline-warning:is(:hover,:focus-visible){color:var(--action-warning)!important}
.v41-ui .btn-outline-info:is(:hover,:focus-visible){color:var(--action-info)!important}
.v41-ui .btn-outline-dark:is(:hover,:focus-visible){color:var(--action-dark)!important}
#adminUserList .admin-user-actions .btn-action-delete:is(:hover,:focus-visible){color:#fff!important;background:#b42335!important;border-color:#b42335!important}
.v41-ui :is(.btn,button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--action-primary)!important;outline-offset:3px}
.v41-ui :is(.app-content,.app-main,.content-container,.card-body,.row>*){min-width:0}
.v41-ui main :is(p,h1,h2,h3,h4,dd,label,.alert){overflow-wrap:anywhere}
.v41-ui .table-responsive{max-width:100%;overscroll-behavior-x:contain}
.v41-ui .modal-dialog-scrollable .modal-body{min-height:0;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.v41-ui .modal-footer{padding-bottom:max(.75rem,env(safe-area-inset-bottom));gap:.5rem}
@media(max-width:991.98px){
 .v41-ui main .d-flex:has(>.btn,>form){flex-wrap:wrap}
 .v41-ui main :is(.btn,button):not(.btn-close){min-height:42px}
 .v41-ui :is(.modal,dialog) :is(input,select,textarea){font-size:16px}
}
@media(max-width:575.98px){
 .v41-ui .modal-dialog{max-width:calc(100vw - 1rem)}
 .v41-ui .modal-dialog-scrollable{height:calc(100dvh - 1rem)}
 .v41-ui .modal-header{gap:.5rem;align-items:flex-start}
 .v41-ui .modal-header .btn-close{flex-shrink:0;margin-left:auto}
 .v41-ui .modal-footer>.btn{flex:1 1 auto}
 .v41-ui .input-group>.form-control,.v41-ui .input-group>.form-select{min-width:0}
}
/* Tables without a card also need an explicit dark backing surface. */
[data-bs-theme="dark"] .v41-ui .table{background-color:var(--sport-surface)!important}
.v41-ui .btn.report-rule-hint{color:var(--action-secondary)!important}
/* Keep the secondary hero action readable independently of its background image. */
.v41-ui .btn-glass{background:#172c4b!important;border-color:#a9c8ff!important;color:#fff!important}
.v41-ui .btn-glass:is(:hover,:focus-visible){background:#213d63!important;color:#fff!important}

/* V133 — the menu scrolls independently; account actions always keep their own space. */
.v41-ui .app-sidebar{height:100vh;height:100dvh;box-sizing:border-box;overflow:hidden;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
.v41-ui .sidebar-brand,.v41-ui .sidebar-footer{flex-shrink:0}
.v41-ui .sidebar-nav{min-height:0;flex:1 1 0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.v41-ui .sidebar-footer{padding:10px 14px}
.v41-ui .sidebar-footer form{margin:0}
.v41-ui .sidebar-logout{display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:44px;padding:10px 12px;color:#fff!important;background:#203656!important;border:1px solid #a9c8ff!important;border-radius:10px;text-align:left;opacity:1;visibility:visible}
.v41-ui .sidebar-logout:is(:hover,:focus-visible){background:#2a466b!important;color:#fff!important}
@media(max-height:600px){.v41-ui .sidebar-brand{height:74px!important;padding:8px 14px!important}.v41-ui .sidebar-brand img{width:48px!important;height:48px!important}.v41-ui .sidebar-user{padding:4px 7px}.v41-ui .sidebar-footer{padding:6px 12px}.v41-ui .sidebar-theme{padding:5px 12px;min-height:36px}}
.followup-list{display:grid;gap:1rem}.followup-card{padding:1.25rem}.followup-card h2{font-size:1.15rem}.followup-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.followup-meta{display:flex;flex-wrap:wrap;gap:.5rem}.followup-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}

.followup-meta .badge{white-space:normal;text-align:left;line-height:1.35;max-width:100%}

/* Identité officielle : règles limitées au bloc de marque du menu. */
.v41-ui .sidebar-brand strong{color:#fff;white-space:nowrap}
.v41-ui .sidebar-brand img.fsgt-official-logo{flex-shrink:0;background:#fff;border-radius:8px}
.v41-ui .sidebar-brand .sidebar-close{flex:0 0 36px}

/* Accueil : les lieux longs restent dans la carte, indépendamment des résultats. */
#upcomingWidget .live-match{
  grid-template-columns:58px minmax(0,1fr);
  column-gap:12px;
  row-gap:8px;
}
#upcomingWidget .live-date{grid-column:1;grid-row:1 / 3;align-self:center}
#upcomingWidget .live-teams{
  grid-column:2;grid-row:1;min-width:0;
  position:relative;padding-right:32px;
}
#upcomingWidget .live-team{grid-template-columns:30px minmax(0,1fr);min-width:0}
#upcomingWidget .live-team>span:not(.live-team-placeholder){
  white-space:normal;overflow-wrap:anywhere;min-width:0;
}
#upcomingWidget .live-team:first-child>b{
  position:absolute;right:0;top:50%;transform:translateY(-50%);
  font-size:.8rem;line-height:1.2;text-align:center;
}
#upcomingWidget .live-team:last-child>b{display:none}
#upcomingWidget .live-meta{
  display:block;grid-column:2;grid-row:2;min-width:0;max-width:100%;
  text-align:center;white-space:normal;overflow-wrap:anywhere;
}
#upcomingWidget .live-meta>br{display:none}
#upcomingWidget .live-meta>i{margin-right:.3rem}
@media(max-width:575.98px){
  #upcomingWidget .live-match{grid-template-columns:46px minmax(0,1fr);column-gap:10px}
  #upcomingWidget .live-team{grid-template-columns:27px minmax(0,1fr)}
  #upcomingWidget .live-teams{padding-right:26px}
}
