:root{
  /* V1.7.9 - Tokens UI globaux. Les alias historiques restent actifs pendant la migration progressive. */
  --ui-bg:#07111f;
  --ui-bg-soft:#0b1728;
  --ui-panel:#0f1f35;
  --ui-panel-2:#122944;
  --ui-card:#102033;
  --ui-card-2:#132b45;
  --ui-text:#edf6ff;
  --ui-muted:#99acc5;
  --ui-primary:#2dd4bf;
  --ui-secondary:#38bdf8;
  --ui-warning:#facc15;
  --ui-danger:#ef4444;
  --ui-success:#22c55e;
  --ui-border:rgba(148,163,184,.18);
  --ui-input:#06101f;
  --ui-font-body:Arial,Helvetica,sans-serif;
  --ui-font-body-size:clamp(15px,1.15vw,16px);
  --ui-font-body-weight:400;
  --ui-font-h1-size:clamp(26px,3.4vw,32px);
  --ui-font-h1-weight:700;
  --ui-font-heading-size:clamp(22px,3vw,28px);
  --ui-font-heading-weight:700;
  --ui-font-subheading-size:clamp(17px,2.2vw,20px);
  --ui-font-subheading-weight:700;
  --ui-font-nav-size:clamp(13px,1.2vw,14px);
  --ui-font-nav-weight:800;
  --ui-font-button-size:clamp(13px,1.2vw,14px);
  --ui-font-button-weight:800;
  --ui-font-label-size:clamp(13px,1.15vw,14px);
  --ui-font-label-weight:700;
  --ui-font-small-size:clamp(11px,1vw,12px);
  --ui-font-small-weight:400;
  --ui-font-metric-size:clamp(24px,3.2vw,34px);
  --ui-font-metric-weight:900;
  --ui-font-xs-size:clamp(11px,.95vw,12px);
  --ui-font-detail-size:clamp(12px,1.05vw,13px);
  --ui-font-compact-size:clamp(13px,1.1vw,14px);
  --ui-font-medium-size:clamp(15px,1.35vw,16px);
  --ui-font-lead-size:clamp(17px,1.8vw,20px);
  --ui-font-metric-sm-size:clamp(20px,2.5vw,24px);
  --ui-font-metric-md-size:clamp(24px,3vw,30px);
  --ui-font-strong-weight:900;
  --ui-font-emphasis-weight:800;
  --ui-shadow:0 18px 45px rgba(0,0,0,.28);
  --ui-radius:18px;
  --ui-space-xs:6px;
  --ui-space-sm:10px;
  --ui-space-md:14px;
  --ui-space-lg:18px;
  --ui-space-xl:24px;
  --ui-card-padding:var(--ui-space-lg);
  --ui-card-gap:var(--ui-space-md);
  --ui-section-gap:var(--ui-space-lg);
  --ui-field-padding-y:var(--ui-space-sm);
  --ui-field-padding-x:var(--ui-space-md);
  --ui-field-radius:14px;
  --ui-field-min-height:46px;
  --ui-field-gap:var(--ui-space-xs);
  --ui-field-margin-bottom:var(--ui-space-md);
  --ui-badge-radius:999px;
  --ui-badge-padding-y:var(--ui-space-xs);
  --ui-badge-padding-x:var(--ui-space-sm);
  --ui-table-cell-y:var(--ui-space-sm);
  --ui-table-cell-x:var(--ui-space-md);
  --ui-overlay-bg:color-mix(in srgb,var(--ui-bg) 72%,transparent);

  --bg:var(--ui-bg);
  --bg-soft:var(--ui-bg-soft);
  --panel:var(--ui-panel);
  --panel-2:var(--ui-panel-2);
  --card:var(--ui-card);
  --card-2:var(--ui-card-2);
  --txt:var(--ui-text);
  --mut:var(--ui-muted);
  --brand:var(--ui-primary);
  --brand-2:var(--ui-secondary);
  --gold:var(--ui-warning);
  --danger:var(--ui-danger);
  --ok:var(--ui-success);
  --border:var(--ui-border);
  --input:var(--ui-input);
  --shadow:var(--ui-shadow);
  --radius:var(--ui-radius);
}*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{margin:0;min-height:100%;font-family:var(--ui-font-body);font-size:var(--ui-font-body-size);font-weight:var(--ui-font-body-weight);color:var(--txt);background:
  radial-gradient(circle at top left,color-mix(in srgb,var(--ui-primary) 16%,transparent),transparent 34rem),
  radial-gradient(circle at top right,color-mix(in srgb,var(--ui-secondary) 12%,transparent),transparent 34rem),
  linear-gradient(180deg,var(--ui-bg) 0%,var(--ui-bg-soft) 55%,var(--ui-bg) 100%);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--ui-font-body)}
h1{font-size:clamp(calc(var(--ui-font-h1-size) * .72),3.4vw,var(--ui-font-h1-size));font-weight:var(--ui-font-h1-weight)}
h2{font-size:clamp(calc(var(--ui-font-heading-size) * .76),3vw,var(--ui-font-heading-size));font-weight:var(--ui-font-heading-weight)}
h3,h4,h5,h6{font-size:clamp(calc(var(--ui-font-heading-size) * .68),2.3vw,calc(var(--ui-font-heading-size) * .86));font-weight:var(--ui-font-heading-weight)}
a{color:inherit}.mut{color:var(--mut)}

.bc-topbar{height:80px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:50;padding:10px 16px;background:color-mix(in srgb,var(--ui-bg) 88%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}
.bc-menu-btn,.bc-close{border:1px solid var(--border);background:color-mix(in srgb,var(--ui-panel) 95%,transparent);color:var(--txt);border-radius:14px;min-width:44px;height:44px;font-size:22px;cursor:pointer;display:grid;place-items:center}.bc-close{margin-left:auto;font-size:30px;line-height:1}
.bc-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}
.bc-theme-picker{margin-left:auto;display:flex;align-items:center;gap:7px;min-width:0}
.bc-theme-picker-icon{font-size:18px;line-height:1}
.bc-theme-select{width:auto;max-width:190px;min-width:120px;height:40px;padding:7px 30px 7px 10px;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-input);color:var(--ui-text);font:inherit;font-size:var(--ui-font-small-size);cursor:pointer}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:640px){.bc-theme-select{max-width:126px;min-width:92px}.bc-theme-picker-icon{display:none}.bc-brand-text{display:none}}
.bc-logo-img{width:44px;height:44px;border-radius:999px;object-fit:contain;box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-text) 16%,transparent),0 8px 22px var(--ui-shadow);background:var(--ui-bg)}.bc-logo-large-img{width:62px;height:62px;border-radius:999px;object-fit:contain;flex:0 0 auto;box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-text) 18%,transparent),0 10px 28px var(--ui-shadow);background:var(--ui-bg)}.bc-brand-text{display:flex;flex-direction:column;line-height:1.05}.bc-brand-text strong{font-size:var(--ui-font-medium-size)}.bc-brand-text small{color:var(--mut);font-size:var(--ui-font-detail-size);margin-top:3px}.bc-install{margin-left:auto;border:0;border-radius:999px;background:var(--ui-primary);color:var(--ui-bg);font-weight:var(--ui-font-strong-weight);padding:10px 13px;cursor:pointer}.bc-backdrop{position:fixed;inset:0;background:color-mix(in srgb,var(--ui-bg) 72%,transparent);z-index:80}.bc-drawer{position:fixed;top:0;left:0;height:100dvh;width:min(390px,92vw);z-index:90;background:linear-gradient(180deg,var(--ui-bg-soft),var(--ui-bg));border-right:1px solid var(--border);box-shadow:var(--shadow);transform:translateX(-105%);transition:transform .2s ease;padding:14px;overflow:auto}.bc-drawer.open{transform:translateX(0)}.bc-drawer-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.bc-drawer-head span{display:block;color:var(--mut);font-size:var(--ui-font-detail-size);margin-top:3px}.bc-user-card{background:color-mix(in srgb,var(--ui-card) 85%,transparent);border:1px solid var(--border);border-radius:16px;padding:13px;margin:10px 0 14px}.bc-user-card span,.bc-user-card small{display:block;color:var(--mut);font-size:var(--ui-font-detail-size)}.bc-user-card strong{display:block;margin:3px 0}.bc-nav{display:grid;gap:8px}.bc-nav a{display:flex;align-items:center;gap:10px;text-decoration:none;background:color-mix(in srgb,var(--ui-card) 82%,transparent);border:1px solid var(--border);border-radius:15px;padding:14px 14px;font-weight:var(--ui-font-emphasis-weight)}.bc-nav a:hover{background:color-mix(in srgb,var(--ui-card-2) 95%,transparent)}.bc-nav .danger-link{color:var(--ui-danger);border-color:color-mix(in srgb,var(--ui-danger) 35%,transparent)}

.wrap{width:min(1180px,100%);margin:0 auto;padding:22px 18px 38px}.page-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--ui-card) 95%,transparent),color-mix(in srgb,var(--ui-card-2) 82%,transparent));border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}.eyebrow{margin:0 0 8px;color:var(--brand);font-weight:var(--ui-font-strong-weight);text-transform:uppercase;font-size:var(--ui-font-detail-size);letter-spacing:.12em}h1{margin:0;line-height:1.08}h2{margin:18px 0 10px}h3{margin:12px 0 6px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.card,.tablebox,form{background:color-mix(in srgb,var(--ui-card) 88%,transparent);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}.card.highlight{background:linear-gradient(135deg,color-mix(in srgb,var(--ui-primary) 14%,transparent),color-mix(in srgb,var(--ui-secondary) 11%,transparent)),color-mix(in srgb,var(--ui-card) 88%,transparent)}.stat-card{display:flex;flex-direction:column;gap:6px}.stat-card .number{font-size:var(--ui-font-metric-size);font-weight:var(--ui-font-strong-weight)}.stat-card .label{color:var(--mut);font-weight:var(--ui-font-label-weight)}.btn,button,input[type=submit]{
display:inline-flex;align-items:center;justify-content:center;gap:var(--ui-space-xs);
border:1px solid transparent;border-radius:14px;
background:var(--ui-primary);color:var(--ui-bg);
font-family:var(--ui-font-body);font-size:var(--ui-font-button-size);font-weight:var(--ui-font-button-weight);
padding:var(--ui-space-sm) var(--ui-space-lg);min-height:44px;
text-decoration:none;cursor:pointer;line-height:1.2
}
.btn.secondary,button.secondary,input[type=submit].secondary{
background:var(--ui-panel-2);color:var(--ui-text);border-color:var(--ui-border)
}
.btn.danger,button.danger,input[type=submit].danger{
background:var(--ui-danger);color:var(--ui-text);border-color:color-mix(in srgb,var(--ui-danger) 70%,var(--ui-border))
}
.btn.compact,button.compact,input[type=submit].compact{
min-height:36px;padding:var(--ui-space-xs) var(--ui-space-md);font-size:var(--ui-font-detail-size)
}
.btn:disabled,button:disabled,input[type=submit]:disabled,
.btn[aria-disabled="true"]{
opacity:.45;cursor:not-allowed;pointer-events:none
}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),
select,textarea{
  width:100%;
  padding:var(--ui-field-padding-y) var(--ui-field-padding-x);
  border-radius:var(--ui-field-radius);
  border:1px solid var(--ui-border);
  background:var(--ui-input);
  color:var(--ui-text);
  margin:var(--ui-field-gap) 0 var(--ui-field-margin-bottom);
  min-height:var(--ui-field-min-height);
  font-size:var(--ui-font-medium-size)
}
textarea{min-height:calc(var(--ui-field-min-height) * 2.4);resize:vertical}
input[type=checkbox],input[type=radio]{
  width:auto;min-height:0;margin:0;accent-color:var(--ui-primary)
}
input:disabled,select:disabled,textarea:disabled,
input[readonly],textarea[readonly]{
  opacity:.72;cursor:not-allowed;
  background:color-mix(in srgb,var(--ui-muted) 12%,var(--ui-input));
  border-color:color-mix(in srgb,var(--ui-muted) 28%,var(--ui-border))
}label{color:var(--ui-muted);font-size:var(--ui-font-compact-size);font-weight:var(--ui-font-emphasis-weight)}.flash{background:color-mix(in srgb,var(--ui-success) 14%,transparent);border:1px solid color-mix(in srgb,var(--ui-success) 55%,transparent);padding:13px 15px;border-radius:15px;margin:10px 0;color:var(--ui-text)}.tablebox{overflow:auto}table{width:100%;border-collapse:collapse;background:color-mix(in srgb,var(--ui-card) 80%,transparent);border-radius:16px;overflow:hidden}th,td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}th{color:var(--ui-secondary);font-weight:var(--ui-font-strong-weight);white-space:nowrap}tr:last-child td{border-bottom:0}

.ranking-list,.match-list{display:grid;gap:12px}.ranking-card,.match-card{background:color-mix(in srgb,var(--ui-card) 90%,transparent);border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:var(--ui-card-padding);box-shadow:var(--ui-shadow)}.ranking-card{display:grid;grid-template-columns:auto 1fr auto;gap:var(--ui-card-gap);align-items:center}.rank-badge{width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:color-mix(in srgb,var(--ui-secondary) 15%,transparent);border:1px solid color-mix(in srgb,var(--ui-secondary) 35%,transparent);font-weight:var(--ui-font-strong-weight)}.rank-badge.gold{background:color-mix(in srgb,var(--ui-warning) 18%,transparent);border-color:color-mix(in srgb,var(--ui-warning) 45%,transparent);color:var(--ui-warning)}.ranking-main strong{display:block;font-size:var(--ui-font-lead-size)}.ranking-main span{color:var(--mut);font-size:var(--ui-font-detail-size)}.ranking-points{text-align:right}.ranking-points strong{font-size:var(--ui-font-metric-md-size);color:var(--brand)}.ranking-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.mini-stat{background:color-mix(in srgb,var(--ui-input) 58%,transparent);border:1px solid var(--border);border-radius:12px;padding:8px;text-align:center}.mini-stat b{display:block}.mini-stat span{display:block;color:var(--mut);font-size:var(--ui-font-detail-size)}.match-card .versus{font-size:var(--ui-font-lead-size);font-weight:var(--ui-font-strong-weight)}.match-card .score{font-size:var(--ui-font-metric-sm-size);color:var(--brand);font-weight:var(--ui-font-strong-weight);margin:8px 0}.status-pill{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:6px 10px;color:var(--mut);font-size:var(--ui-font-detail-size)}.bc-footer{width:min(1180px,100%);margin:0 auto;padding:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--mut);border-top:1px solid var(--border)}.bc-footer a{color:var(--brand);text-decoration:none;font-weight:var(--ui-font-strong-weight)}.bc-footer span{display:block;margin-top:4px}.about-box{max-width:760px}.version-pill{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;padding:8px 12px;background:color-mix(in srgb,var(--ui-card) 80%,transparent);color:var(--brand);font-weight:var(--ui-font-strong-weight)}

@media(max-width:760px){.bc-topbar{padding:9px 12px}.bc-brand-text strong{font-size:var(--ui-font-compact-size)}.wrap{padding:14px 12px 34px}.grid{grid-template-columns:1fr}.btn,button,input[type=submit]{width:100%;margin:4px 0}.ranking-card{grid-template-columns:auto 1fr}.ranking-points{grid-column:1/-1;text-align:left;display:flex;align-items:flex-end;gap:8px}.ranking-stats{grid-template-columns:repeat(2,1fr)}table.responsive-table,table.responsive-table thead,table.responsive-table tbody,table.responsive-table th,table.responsive-table td,table.responsive-table tr{display:block;width:100%}table.responsive-table thead, table.responsive-table tr:first-child:has(th){display:none}table.responsive-table tr{background:color-mix(in srgb,var(--ui-card) 92%,transparent);border:1px solid var(--border);border-radius:16px;margin:0 0 12px;overflow:hidden;box-shadow:var(--shadow)}table.responsive-table td{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);padding:10px 12px;text-align:right}table.responsive-table td::before{content:attr(data-label);font-weight:var(--ui-font-strong-weight);color:var(--ui-secondary);text-align:left}table.responsive-table td:last-child{border-bottom:0}.bc-footer{padding:18px 12px;display:block}.bc-footer>div+div{margin-top:10px}}


/* V1.0.6 - Identité Billard Clubs / PWA */
.bc-logo-img,.bc-logo-large-img{background:transparent;box-shadow:none;border-radius:0;object-fit:contain}.bc-install.update-ready{background:var(--ui-warning);color:var(--ui-bg)}.bc-footer{align-items:center}.bc-footer-main{display:flex;flex-direction:column;gap:7px}.bc-footer-main strong{color:var(--txt);font-size:var(--ui-font-medium-size)}.bc-version-btn{width:auto;min-height:34px;padding:7px 11px;border-radius:999px;background:color-mix(in srgb,var(--ui-success) 12%,transparent);border:1px solid color-mix(in srgb,var(--ui-success) 38%,transparent);color:var(--ui-success);font-size:var(--ui-font-detail-size)}.bc-version-btn.is-update{background:color-mix(in srgb,var(--ui-warning) 12%,transparent);border-color:color-mix(in srgb,var(--ui-warning) 45%,transparent);color:var(--ui-warning)}.bc-footer-copy{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:flex-end}.bc-footer-copy span,.bc-footer-copy a{display:inline-block;margin:0}.bc-footer-copy a{color:var(--brand);text-decoration:none;font-weight:var(--ui-font-strong-weight)}@media(max-width:760px){.bc-footer-main,.bc-footer-copy{display:flex;justify-content:center;text-align:center}.bc-footer-copy{margin-top:10px;gap:8px;flex-direction:column}.bc-version-btn{width:auto}.bc-logo-img{width:48px;height:48px}.bc-logo-large-img{width:70px;height:70px}}

/* V1.0.7 - Langues */
.bc-lang-form{background:color-mix(in srgb,var(--ui-card) 82%,transparent);border:1px solid var(--border);border-radius:16px;padding:12px;margin:10px 0 14px;box-shadow:none}.bc-lang-form label{display:block;margin-bottom:5px}.bc-lang-form select{margin:0;min-height:42px}

/* V1.1.0 - Base Design System Billard Clubs */
.bc-topbar{height:58px;padding:8px 12px;gap:10px}.bc-menu-btn{min-width:42px;width:42px;height:42px;border-radius:13px;font-size:20px;line-height:1}.bc-brand{flex:1}.bc-logo-img{width:40px;height:40px}.bc-brand-text strong{font-size:var(--ui-font-compact-size)}.bc-brand-text small{font-size:var(--ui-font-detail-size)}.bc-install{display:none!important}.bc-footer-install{border:1px solid color-mix(in srgb,var(--ui-primary) 45%,transparent);background:color-mix(in srgb,var(--ui-primary) 12%,transparent);color:var(--ui-text);border-radius:999px;padding:8px 12px;font-weight:var(--ui-font-strong-weight);cursor:pointer}.bc-footer-install[hidden]{display:none!important}.bc-footer-install.update-ready{background:color-mix(in srgb,var(--ui-warning) 14%,transparent);border-color:color-mix(in srgb,var(--ui-warning) 45%,transparent);color:var(--ui-warning)}.ranking-card-v2{grid-template-columns:auto 1fr auto}.ranking-card-v2 .ranking-group{grid-column:1/-1;background:color-mix(in srgb,var(--ui-input) 34%,transparent);border:1px solid var(--ui-border);border-radius:calc(var(--ui-radius) - 4px);padding:var(--ui-space-sm)}.ranking-group-title{font-weight:var(--ui-font-strong-weight);color:var(--ui-secondary);margin-bottom:8px}.ranking-stats-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.bc-topbar{height:56px}.bc-menu-btn{min-width:40px;width:40px;height:40px;font-size:19px}.bc-logo-img{width:38px;height:38px}.bc-brand-text strong{font-size:var(--ui-font-detail-size)}.bc-brand-text small{font-size:var(--ui-font-xs-size)}.ranking-card-v2{grid-template-columns:auto 1fr}.ranking-card-v2 .ranking-points{grid-column:1/-1;text-align:left}.ranking-stats-4{grid-template-columns:repeat(2,1fr)}}


/* V1.1.1 - Cartes Matchs */
.admin-match-list,
.match-list-v2{
  display:grid;
  gap:14px;
  margin:16px 0;
}
.admin-match-card,
.public-match-card{
  background:linear-gradient(145deg,color-mix(in srgb,var(--ui-card) 95%,transparent),color-mix(in srgb,var(--ui-bg-soft) 92%,transparent));
  border:1px solid var(--ui-border);
  border-radius:var(--ui-radius);
  padding:var(--ui-card-padding);
  box-shadow:var(--ui-shadow);
}
.match-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--ui-card-gap);
  margin-bottom:var(--ui-space-md);
}
.match-card-head h2,
.match-card-head h3{
  margin:4px 0 0;
  font-size:clamp(17px,4vw,24px);
  line-height:1.2;
}
.match-card-head h2 span,
.match-card-head h3 span{
  color:var(--brand);
  font-size:.78em;
  margin:0 6px;
}
.match-number{
  display:inline-flex;
  align-items:center;
  border:1px solid color-mix(in srgb,var(--ui-primary) 28%,transparent);
  color:var(--brand);
  background:color-mix(in srgb,var(--ui-primary) 8%,transparent);
  border-radius:999px;
  padding:4px 9px;
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-strong-weight);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:7px 10px;
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-strong-weight);
  border:1px solid var(--border);
  background:color-mix(in srgb,var(--ui-muted) 10%,transparent);
  white-space:nowrap;
}
.status-pill.ok{
  background:color-mix(in srgb,var(--ui-success) 14%,transparent);
  color:var(--ui-success);
  border-color:color-mix(in srgb,var(--ui-success) 35%,transparent);
}
.status-pill.wait{
  background:color-mix(in srgb,var(--ui-warning) 12%,transparent);
  color:var(--ui-warning);
  border-color:color-mix(in srgb,var(--ui-warning) 30%,transparent);
}
.match-score-line{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:stretch;
  margin:12px 0;
}
.match-player-block{
  background:color-mix(in srgb,var(--ui-bg) 72%,transparent);
  border:1px solid var(--border);
  border-radius:18px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
.match-player-block strong{
  font-size:var(--ui-font-medium-size);
  line-height:1.18;
  overflow-wrap:anywhere;
}
.player-label{
  color:var(--mut);
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-emphasis-weight);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.big-score{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  border-radius:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--ui-primary) 18%,transparent),color-mix(in srgb,var(--ui-secondary) 12%,transparent));
  border:1px solid color-mix(in srgb,var(--ui-primary) 24%,transparent);
  color:var(--ui-text);
  font-size:var(--ui-font-metric-size);
  font-weight:var(--ui-font-strong-weight);
}
.match-vs-pill{
  align-self:center;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:999px;
  background:color-mix(in srgb,var(--ui-primary) 13%,transparent);
  border:1px solid color-mix(in srgb,var(--ui-primary) 32%,transparent);
  color:var(--brand);
  font-weight:var(--ui-font-strong-weight);
  font-size:var(--ui-font-detail-size);
}
.match-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 4px;
}
.match-meta-row span{
  background:color-mix(in srgb,var(--ui-muted) 10%,transparent);
  border:1px solid var(--border);
  color:var(--mut);
  border-radius:999px;
  padding:7px 10px;
  font-size:var(--ui-font-detail-size);
}
.match-edit-details{
  margin-top:12px;
  border-top:1px solid var(--border);
  padding-top:12px;
}
.match-edit-details summary{
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  background:color-mix(in srgb,var(--ui-primary) 12%,transparent);
  color:var(--ui-text);
  border:1px solid color-mix(in srgb,var(--ui-primary) 28%,transparent);
  padding:10px 13px;
  font-weight:var(--ui-font-strong-weight);
}
.match-edit-form{
  margin-top:12px;
  padding:0;
  box-shadow:none;
  border:0;
  background:transparent;
}
.match-entry-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.match-entry-player{
  background:color-mix(in srgb,var(--ui-bg) 54%,transparent);
  border:1px solid var(--border);
  border-radius:18px;
  padding:12px;
}
.match-entry-player h3{
  margin:0 0 10px;
  font-size:var(--ui-font-medium-size);
  overflow-wrap:anywhere;
}
.match-edit-form label{
  display:grid;
  gap:6px;
  margin-bottom:10px;
}
.match-edit-form label span{
  color:var(--mut);
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-emphasis-weight);
}
.match-edit-form input{
  width:100%;
}
.bonus-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.full-line{
  grid-column:1/-1;
}

@media(max-width:720px){
  .admin-match-card,
  .public-match-card{
    padding:var(--ui-card-padding);
    border-radius:var(--ui-radius);
  }
  .match-card-head{
    align-items:flex-start;
  }
  .status-pill{
    padding:6px 8px;
    font-size:var(--ui-font-xs-size);
  }
  .match-score-line{
    grid-template-columns:1fr;
  }
  .match-vs-pill{
    width:auto;
    height:auto;
    padding:6px 10px;
    justify-self:center;
  }
  .big-score{
    min-height:46px;
    font-size:var(--ui-font-metric-md-size);
  }
  .match-entry-grid{
    grid-template-columns:1fr;
  }
}

/* V1.1.2 - Matchs responsive propres depuis V1.1.1 */
.bc-topbar{height:54px!important;padding:7px 11px!important;gap:9px!important}.bc-menu-btn{min-width:40px!important;width:40px!important;height:40px!important;display:grid!important;place-items:center!important;padding:0!important;border-radius:12px!important;font-size:20px!important;line-height:1!important}.bc-logo-img{width:38px!important;height:38px!important}.bc-brand-text strong{font-size:var(--ui-font-detail-size)!important;line-height:1.05!important}.bc-brand-text small{font-size:var(--ui-font-xs-size)!important;line-height:1.05!important}.bc-install{display:none!important}
.tc-match-page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px}.tc-match-page-head h2{margin:4px 0 0}.tc-inline-form{padding:0!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.btn.compact{min-height:40px;padding:9px 13px;border-radius:13px}.tc-match-list-clean{display:grid;gap:12px;margin:16px 0}.tc-match-row-card{background:linear-gradient(145deg,color-mix(in srgb,var(--ui-card) 96%,transparent),color-mix(in srgb,var(--ui-bg-soft) 94%,transparent));border:1px solid var(--border);border-radius:18px;padding:13px;box-shadow:var(--shadow)}.tc-match-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.tc-match-index{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--ui-primary) 28%,transparent);background:color-mix(in srgb,var(--ui-primary) 8%,transparent);color:var(--brand);border-radius:999px;padding:5px 9px;font-size:var(--ui-font-detail-size);font-weight:var(--ui-font-strong-weight)}.tc-match-status{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:var(--ui-font-detail-size);font-weight:var(--ui-font-strong-weight);border:1px solid var(--border);white-space:nowrap}.tc-match-status.ok{background:color-mix(in srgb,var(--ui-success) 14%,transparent);color:var(--ui-success);border-color:color-mix(in srgb,var(--ui-success) 36%,transparent)}.tc-match-status.wait{background:color-mix(in srgb,var(--ui-warning) 13%,transparent);color:var(--ui-warning);border-color:color-mix(in srgb,var(--ui-warning) 34%,transparent)}.tc-match-status.todo{background:color-mix(in srgb,var(--ui-muted) 10%,transparent);color:var(--ui-muted)}.tc-match-row-main{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px}.tc-match-player-name{font-weight:var(--ui-font-strong-weight);font-size:var(--ui-font-medium-size);line-height:1.15;overflow-wrap:anywhere}.tc-match-player-name.right{text-align:right}.tc-match-score-box{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:8px;background:color-mix(in srgb,var(--ui-bg) 70%,transparent);border:1px solid var(--border);border-radius:16px;padding:9px 11px;min-width:104px;text-align:center}.tc-match-score-box strong{font-size:var(--ui-font-metric-md-size);color:var(--ui-text);line-height:1}.tc-match-score-box span{font-size:var(--ui-font-xs-size);color:var(--brand);font-weight:var(--ui-font-strong-weight)}.tc-match-row-meta{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.tc-match-row-meta span{background:color-mix(in srgb,var(--ui-muted) 9%,transparent);border:1px solid var(--border);color:var(--mut);border-radius:999px;padding:6px 9px;font-size:var(--ui-font-detail-size)}.tc-edit-link{width:auto!important;margin-top:2px;display:inline-flex!important}
.tc-edit-topbar-clean{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.tc-edit-topbar-clean span{color:var(--mut);font-weight:var(--ui-font-strong-weight)}.tc-match-edit-clean{padding:0!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.tc-date-clean{display:grid;gap:8px;background:color-mix(in srgb,var(--ui-card) 92%,transparent);border:1px solid var(--border);border-radius:18px;padding:12px;margin-bottom:12px;font-weight:var(--ui-font-strong-weight)}.tc-date-clean span{color:var(--ui-secondary)}.tc-versus-clean{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:12px}.tc-player-edit-card{background:linear-gradient(145deg,color-mix(in srgb,var(--ui-card) 97%,transparent),color-mix(in srgb,var(--ui-bg-soft) 95%,transparent));border:1px solid var(--border);border-radius:20px;padding:14px;box-shadow:var(--shadow);text-align:center;min-width:0}.tc-player-photo{width:64px;height:64px;border-radius:999px;margin:0 auto 8px;display:grid;place-items:center;background:color-mix(in srgb,var(--ui-primary) 12%,transparent);border:2px solid color-mix(in srgb,var(--ui-primary) 35%,transparent);overflow:hidden;font-size:30px}.tc-player-photo img{width:100%;height:100%;object-fit:cover}.tc-player-edit-card h2{margin:0;color:var(--ui-text);font-size:var(--ui-font-lead-size);line-height:1.15;overflow-wrap:anywhere}.tc-player-edit-card p{margin:4px 0 12px;color:var(--mut);font-weight:var(--ui-font-emphasis-weight)}.tc-vs-clean{align-self:center;display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:color-mix(in srgb,var(--ui-primary) 13%,transparent);border:1px solid color-mix(in srgb,var(--ui-primary) 35%,transparent);color:var(--brand);font-weight:var(--ui-font-strong-weight);font-size:var(--ui-font-detail-size)}.tc-stat-label{color:var(--ui-secondary);font-weight:var(--ui-font-strong-weight);text-align:center;margin:10px 0 6px}.tc-control-main{display:grid;grid-template-columns:44px 56px 44px;justify-content:center;gap:7px;margin:0 0 10px}.tc-control-main button,.tc-control-small button{width:100%!important;min-height:42px!important;margin:0!important;border-radius:13px!important;font-size:24px!important;padding:0!important;line-height:1!important}.tc-control-main input{width:56px!important;min-height:42px!important;text-align:center!important;font-size:var(--ui-font-metric-md-size)!important;font-weight:var(--ui-font-strong-weight)!important;padding:0!important}.tc-bonus-line{display:grid;grid-template-columns:1fr;align-items:center;gap:6px;margin-top:9px;text-align:center}.tc-bonus-line label{font-weight:var(--ui-font-strong-weight);color:var(--ui-secondary);margin:0;font-size:var(--ui-font-detail-size);line-height:1.15}.tc-control-small{display:grid;grid-template-columns:38px 44px 38px;justify-content:center;gap:6px}.tc-control-small button{min-height:36px!important;font-size:20px!important;border-radius:12px!important}.tc-control-small input{width:44px!important;text-align:center!important;min-height:36px!important;font-weight:var(--ui-font-strong-weight)!important;font-size:var(--ui-font-lead-size)!important;padding:0!important}.tc-edit-actions-clean{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--ui-bg) 96%,transparent) 28%,var(--ui-bg));padding:18px 0 6px;margin-top:12px;z-index:8}.tc-edit-actions-clean .btn{width:100%;min-height:52px}
@media(max-width:760px){.bc-topbar{height:52px!important}.bc-menu-btn{min-width:38px!important;width:38px!important;height:38px!important;font-size:19px!important}.bc-logo-img{width:36px!important;height:36px!important}.tc-match-page-head{display:block}.tc-inline-form .btn{width:100%!important;margin-top:10px!important}.tc-match-row-card{padding:12px;border-radius:17px}.tc-match-row-main{grid-template-columns:1fr;gap:8px;text-align:center}.tc-match-player-name,.tc-match-player-name.right{text-align:center;font-size:var(--ui-font-medium-size)}.tc-match-score-box{justify-self:center;min-width:124px}.tc-match-score-box strong{font-size:var(--ui-font-metric-md-size)}.tc-match-row-meta{justify-content:center}.tc-edit-link{width:100%!important;justify-content:center!important}.tc-versus-clean{grid-template-columns:1fr;gap:10px}.tc-vs-clean{margin:0 auto;width:42px;height:42px}.tc-player-edit-card{padding:14px;border-radius:20px}.tc-player-photo{width:62px;height:62px;font-size:30px}.tc-player-edit-card h2{font-size:var(--ui-font-lead-size)}.tc-control-main{grid-template-columns:42px 54px 42px}.tc-control-main input{font-size:var(--ui-font-metric-md-size)!important}.tc-bonus-line{grid-template-columns:1fr}.tc-control-small{grid-template-columns:38px 42px 38px}.tc-edit-actions-clean{bottom:0}}
/* PATCH MATCHS - à ajouter tout en bas de app.css */

.tc-page-title-card {
  display: none !important;
}

.tc-match-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: color-mix(in srgb,var(--ui-card) 88%,transparent);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 16px;
  margin: 16px 0;
}

.tc-matches-list {
  display: grid;
  gap: var(--ui-card-gap);
  margin: 18px 0;
}

.tc-match-card {
  background: linear-gradient(145deg, color-mix(in srgb,var(--ui-card) 96%,transparent), color-mix(in srgb,var(--ui-bg) 96%,transparent));
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius);
  padding: var(--ui-card-padding);
  box-shadow: var(--ui-shadow);
}

.tc-match-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-card-gap);
  margin-bottom: var(--ui-space-md);
}

.tc-match-number {
  font-weight:var(--ui-font-strong-weight);
  color: var(--brand);
}

.tc-match-status {
  border-radius: 999px;
  padding: 6px 10px;
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-strong-weight);
  border: 1px solid var(--border);
}

.tc-match-status.validated {
  background: color-mix(in srgb,var(--ui-success) 15%,transparent);
  color: var(--ui-success);
  border-color: color-mix(in srgb,var(--ui-success) 35%,transparent);
}

.tc-match-status.pending {
  background: color-mix(in srgb,var(--ui-warning) 14%,transparent);
  color: var(--ui-warning);
  border-color: color-mix(in srgb,var(--ui-warning) 35%,transparent);
}

.tc-match-status.todo {
  background: color-mix(in srgb,var(--ui-muted) 12%,transparent);
  color: var(--ui-muted);
}

.tc-match-card-main {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--ui-card-gap);
}

.tc-match-player {
  background: color-mix(in srgb,var(--ui-input) 55%,transparent);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 12px;
}

.tc-match-player.right {
  text-align: right;
}

.tc-player-label {
  display: block;
  color: var(--mut);
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-strong-weight);
  margin-bottom: 5px;
  text-transform: uppercase;
}

.tc-match-player strong {
  display: block;
  font-size:var(--ui-font-lead-size);
  overflow-wrap: anywhere;
}

.tc-match-score {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 8px;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb,var(--ui-primary) 12%,transparent);
  border: 1px solid color-mix(in srgb,var(--ui-primary) 30%,transparent);
  border-radius: 16px;
  padding: 10px 14px;
  min-width: 120px;
}

.tc-match-score strong {
  font-size:var(--ui-font-metric-md-size);
  line-height: 1;
}

.tc-match-score span {
  color: var(--brand);
  font-size:var(--ui-font-detail-size);
  font-weight:var(--ui-font-strong-weight);
}

.tc-match-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-sm);
  margin: var(--ui-space-md) 0;
}

.tc-match-card-meta span {
  background: color-mix(in srgb,var(--ui-muted) 10%,transparent);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 10px;
  color: var(--mut);
  font-size:var(--ui-font-detail-size);
}

.tc-match-edit-btn {
  width: auto !important;
  min-width: 190px;
}

@media (max-width: 760px) {
  .tc-match-toolbar {
    display: block;
  }

  .tc-match-toolbar .btn {
    width: 100%;
    margin-top: 12px;
  }

  .tc-match-card {
    padding: var(--ui-card-padding);
    border-radius: var(--ui-radius);
  }

  .tc-match-card-main {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .tc-match-player,
  .tc-match-player.right {
    text-align: center;
  }

  .tc-match-score {
    justify-self: center;
    min-width: 150px;
  }

  .tc-match-card-meta {
    justify-content: center;
  }

  .tc-match-edit-btn {
    width: 100% !important;
  }
}
/* V1.1.8 - Page profil utilisateur unique */
.tc-profile-intro {
  margin-bottom: 16px;
}
.tc-profile-head {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
}
.tc-profile-avatar {
  width: 84px;
  height: 84px;
  border-radius: 999px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: color-mix(in srgb,var(--ui-primary) 12%,transparent);
  border: 2px solid color-mix(in srgb,var(--ui-primary) 35%,transparent);
  color: var(--brand);
  font-weight:var(--ui-font-strong-weight);
  font-size:var(--ui-font-metric-sm-size);
}
.tc-profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tc-profile-head h2 {
  margin: 0 0 4px;
}
.tc-profile-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.tc-profile-card h2 {
  margin-top: 0;
}
.tc-profile-form {
  display: grid;
  gap: 12px;
}
.tc-profile-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.tc-profile-form .btn,
.tc-profile-inline-form .btn {
  width: 100%;
}
.tc-profile-lock-note {
  background: color-mix(in srgb,var(--ui-warning) 12%,transparent);
  border: 1px solid color-mix(in srgb,var(--ui-warning) 32%,transparent);
  color: var(--ui-warning);
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 14px;
  font-weight:var(--ui-font-emphasis-weight);
}
input.is-readonly,
input[readonly].is-readonly {
  opacity: .78;
  cursor: not-allowed;
  background: color-mix(in srgb,var(--ui-muted) 12%,transparent) !important;
  border-color: color-mix(in srgb,var(--ui-muted) 24%,transparent) !important;
}
.tc-profile-meta {
  display: grid;
  gap: 10px;
}
.tc-profile-meta p {
  margin: 0;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
}
.tc-profile-meta p:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.tc-profile-meta span {
  color: var(--mut);
  text-align: right;
}
.tc-profile-wide {
  grid-column: 1 / -1;
}
.tc-profile-inline-form {
  margin-top: 12px;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
@media (max-width: 760px) {
  .tc-profile-head {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: 12px;
  }
  .tc-profile-avatar {
    width: 68px;
    height: 68px;
    font-size:var(--ui-font-lead-size);
  }
  .tc-profile-grid,
  .tc-profile-form-grid {
    grid-template-columns: 1fr;
  }
  .tc-profile-meta p {
    display: grid;
  }
  .tc-profile-meta span {
    text-align: left;
  }
}

/* V1.2.0 - Photo de profil avancée */
.tc-photo-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.tc-photo-choice{
  display:flex!important;
  align-items:center;
  justify-content:center;
  min-height:52px;
  cursor:pointer;
  text-align:center;
}
.tc-photo-editor{
  display:grid;
  gap:14px;
  margin-top:4px;
}
.tc-photo-crop-wrap{
  width:min(280px,100%);
  margin:0 auto;
  border-radius:22px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--ui-primary) 38%,transparent);
  background:color-mix(in srgb,var(--ui-bg) 80%,transparent);
  box-shadow:var(--shadow);
  touch-action:none;
}
.tc-photo-crop-wrap canvas{
  display:block;
  width:100%;
  height:auto;
  cursor:move;
  touch-action:none;
}
.tc-photo-controls{
  display:grid;
  gap:12px;
}
.tc-photo-controls label{
  display:grid;
  gap:8px;
  color:var(--mut);
  font-weight:var(--ui-font-emphasis-weight);
}
.tc-photo-controls input[type=range]{
  width:100%;
}
.tc-photo-control-buttons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
@media(max-width:760px){
  .tc-photo-actions,
  .tc-photo-control-buttons{
    grid-template-columns:1fr;
  }
}
.tc-participation-status{
  margin:0 0 10px;
  padding:12px;
  border-radius:16px;
  background:color-mix(in srgb,var(--ui-muted) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--ui-muted) 22%,transparent);
  font-weight:var(--ui-font-strong-weight);
}
.tc-participation-status.is-active{
  background:color-mix(in srgb,var(--ui-success) 12%,transparent);
  border-color:color-mix(in srgb,var(--ui-success) 28%,transparent);
  color:var(--ui-success);
}
.tc-profile-option,
.tc-profile-check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px;
  border:1px solid var(--border);
  border-radius:16px;
  background:color-mix(in srgb,var(--ui-card) 32%,transparent);
  font-weight:var(--ui-font-emphasis-weight);
}
.tc-profile-option input,
.tc-profile-check input{
  margin-top:4px;
  width:auto!important;
}
.tc-profile-actions-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media(max-width:760px){
  .tc-profile-actions-row{grid-template-columns:1fr;}
}

/* Maintenance admin */
.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:0;background:transparent;border:0;box-shadow:none}.inline-form .btn{width:auto}.small{font-size:var(--ui-font-detail-size)}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.stats-grid>div{background:color-mix(in srgb,var(--ui-card) 55%,transparent);border:1px solid var(--border);border-radius:16px;padding:14px;text-align:center}.stats-grid strong{font-size:var(--ui-font-metric-sm-size);color:var(--ui-text)}@media(max-width:760px){.stats-grid{grid-template-columns:1fr}.row-actions .btn,.inline-form .btn{width:100%}.inline-form{width:100%}}


/* V1.3.1 - Titres compacts et suppression des répétitions de marque */
.page-hero{
  margin:6px 0 16px!important;
  padding:13px 16px!important;
  border-radius:18px!important;
}
.page-hero .eyebrow{display:none!important}
.page-hero h1{
  font-size:clamp(22px,3.8vw,28px)!important;
  line-height:1.12!important;
  letter-spacing:0!important;
}
@media(max-width:760px){
  
  .page-hero h1{font-size:clamp(21px,7vw,26px)!important}
}


/* V1.3.8 - Disponibilités des joueurs */
.tc-location-checks{
  display:grid;
  gap:8px;
  margin:8px 0 14px;
}
.tc-check-row{
  display:flex;
  align-items:center;
  gap:10px;
  background:color-mix(in srgb,var(--ui-input) 38%,transparent);
  border:1px solid var(--border);
  border-radius:14px;
  padding:10px 12px;
  color:var(--txt);
  font-weight:var(--ui-font-emphasis-weight);
}
.tc-check-row input{
  width:auto;
  min-height:auto;
  margin:0;
  transform:scale(1.15);
}
.tc-availability-list{
  display:grid;
  gap:12px;
  margin-top:12px;
}
.tc-availability-card{
  background:color-mix(in srgb,var(--ui-input) 42%,transparent);
  border:1px solid color-mix(in srgb,var(--ui-muted) 20%,transparent);
  border-radius:var(--ui-radius);
  padding:var(--ui-card-padding);
}
.tc-availability-card strong,
.tc-availability-card span{
  display:block;
}
.tc-availability-card span{
  color:var(--brand);
  font-weight:var(--ui-font-strong-weight);
  margin-top:3px;
}
.tc-row-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:12px;
}
.tc-row-actions .btn,
.tc-row-actions form,
.tc-row-actions button{
  width:auto;
}
@media(max-width:760px){
  .tc-row-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .tc-row-actions .btn,
  .tc-row-actions form,
  .tc-row-actions button{
    width:100%;
  }
}

/* V1.4.4 - Ranking criteria ergonomics */
.tc-ranking-criteria-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--ui-input) 32%,transparent);margin-bottom:10px}.tc-ranking-criteria-order-badge span{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:color-mix(in srgb,var(--ui-primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--ui-primary) 35%,transparent);font-weight:var(--ui-font-strong-weight);color:var(--ui-primary)}.tc-ranking-criteria-main strong{display:block}.tc-ranking-criteria-active{display:flex;align-items:center;gap:8px;margin:0}.tc-ranking-criteria-move{display:flex;gap:var(--ui-space-sm);flex-wrap:wrap;justify-content:flex-start;padding:0;margin:var(--ui-space-md) 0 0}.tc-ranking-criteria-move .compact{width:auto;min-width:92px;padding:var(--ui-space-sm) var(--ui-space-md);margin:0;font-size:var(--ui-font-detail-size)}.tc-ranking-criteria-move button:disabled{opacity:.35;cursor:not-allowed}.ranking-card-v2 .ranking-group:nth-of-type(4){border-color:color-mix(in srgb,var(--ui-warning) 25%,transparent);background:color-mix(in srgb,var(--ui-warning) 6%,transparent)}
@media(max-width:760px){.tc-ranking-criteria-row{grid-template-columns:auto 1fr;gap:10px}.tc-ranking-criteria-active{grid-column:1/-1}.tc-ranking-criteria-move{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-space-sm);padding:0;margin-top:var(--ui-space-md)}.tc-ranking-criteria-move .compact{width:100%;min-width:0}.ranking-card-v2 .ranking-main span{font-size:var(--ui-font-detail-size)}}


/* V1.4.5 - Tableau de bord public */
.dashboard-identity{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:18px;
  align-items:center;
}
.dashboard-logo-wrap{
  width:112px;
  height:112px;
  border-radius:24px;
  background:color-mix(in srgb,var(--ui-input) 40%,transparent);
  border:1px solid var(--border);
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:none;
}
.dashboard-logo{width:100%;height:100%;object-fit:contain;padding:8px}.dashboard-identity-main h2{margin:4px 0 10px;font-size:clamp(25px,5vw,38px)}.dashboard-meta-grid{display:flex;flex-wrap:wrap;gap:8px}.dashboard-meta-grid span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:color-mix(in srgb,var(--ui-input) 34%,transparent);border-radius:999px;padding:7px 10px;color:var(--mut);font-weight:var(--ui-font-emphasis-weight)}.dashboard-meta-grid a{color:var(--brand);text-decoration:none}.dashboard-description{margin:12px 0 0;color:var(--ui-text);line-height:1.5}.dashboard-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin:16px 0}.dashboard-progress{margin:16px 0}.dashboard-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-progress-head h2{margin:0}.dashboard-progress-head strong{font-size:var(--ui-font-metric-md-size);color:var(--brand)}.progress-bar{height:14px;border-radius:999px;background:color-mix(in srgb,var(--ui-input) 72%,transparent);border:1px solid var(--border);overflow:hidden;margin-top:12px}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--ui-primary),var(--ui-secondary));border-radius:999px}.dashboard-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.compact-list{display:grid;gap:10px}.compact-row{border:1px solid var(--border);background:color-mix(in srgb,var(--ui-input) 40%,transparent);border-radius:16px;padding:12px;display:grid;gap:5px}.compact-row strong{font-size:var(--ui-font-medium-size)}.compact-row span{color:var(--mut);font-size:var(--ui-font-compact-size)}.compact-row b{font-size:var(--ui-font-lead-size);color:var(--ui-text)}.brand{color:var(--brand)}.compact-rank-row{grid-template-columns:auto 1fr auto;align-items:center}.quick-actions-grid{display:flex;flex-wrap:wrap;gap:10px}.quick-actions-grid .btn{width:auto;margin:0}
@media(max-width:900px){.dashboard-stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-panels{grid-template-columns:1fr}}
@media(max-width:760px){.dashboard-identity{grid-template-columns:1fr;text-align:center}.dashboard-logo-wrap{margin:0 auto;width:96px;height:96px}.dashboard-meta-grid{justify-content:center}.dashboard-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.compact-rank-row{grid-template-columns:auto 1fr}.compact-rank-row b{grid-column:2;text-align:left}.quick-actions-grid{display:grid;grid-template-columns:1fr}.quick-actions-grid .btn{width:100%}}


/* V1.4.8 - Finitions règlement, À propos et menu */
.about-box{
  max-width:none!important;
  width:100%!important;
}
.about-box .grid{
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.bc-drawer-head{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) 52px;
  align-items:center!important;
  gap:12px!important;
  margin-bottom:16px!important;
}
.bc-drawer-title{
  min-width:0;
  line-height:1.12;
}
.bc-drawer-title strong{
  display:block;
  font-size:var(--ui-font-medium-size);
  overflow-wrap:anywhere;
}
.bc-drawer-title span{
  display:block;
  color:var(--mut);
  font-size:var(--ui-font-detail-size);
  margin-top:4px;
}
.bc-close{
  width:52px!important;
  min-width:52px!important;
  height:52px!important;
  padding:0!important;
  margin:0!important;
  border-radius:14px!important;
  display:grid!important;
  place-items:center!important;
  justify-self:end!important;
  align-self:center!important;
  line-height:1!important;
  font-size:30px!important;
}
.bc-nav a{
  min-height:48px;
  align-items:center!important;
}
.tc-rules-public .tc-rule-section{
  margin:0;
}
.tc-rule-section-title{
  font-size:clamp(20px,3vw,26px)!important;
  line-height:1.18;
}
@media(max-width:760px){
  .bc-drawer{width:min(360px,94vw)!important;padding:14px!important;}
  .bc-drawer-head{grid-template-columns:auto minmax(0,1fr) 48px;gap:10px!important;}
  .bc-logo-large-img{width:54px!important;height:54px!important;}
  .bc-close{width:48px!important;min-width:48px!important;height:48px!important;font-size:28px!important;}
  .bc-drawer-title strong{font-size:var(--ui-font-compact-size);}
  .bc-drawer-title span{font-size:var(--ui-font-detail-size);}
  .bc-nav a{min-height:46px;padding:12px 13px!important;}
}

/* Maintenance - versions/actions full-width rows (V1.6.8) */
.maintenance-version-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.maintenance-version-row{display:flex;align-items:center;gap:22px;width:100%;margin:0}
.maintenance-version-copy{flex:1;min-width:0}
.maintenance-version-copy h3{margin-top:0}
.maintenance-version-copy p:last-child{margin-bottom:0}
.maintenance-version-action{flex:0 0 auto;margin:0;background:transparent;border:0;padding:0;box-shadow:none}
.maintenance-version-action .btn,.maintenance-version-action button{min-width:230px;margin:0}
.maintenance-version-values{display:flex;flex-wrap:wrap;gap:10px 24px;margin:8px 0}
@media(max-width:760px){
  .maintenance-version-row{display:block}
  .maintenance-version-action{width:100%;margin-top:14px}
  .maintenance-version-action .btn,.maintenance-version-action button{width:100%;min-width:0}
  .maintenance-version-values{display:grid;grid-template-columns:1fr;gap:6px}
}

/* Maintenance - direct update upload (V1.6.9) */
.maintenance-update-form{display:flex;align-items:end;gap:10px;max-width:560px}
.maintenance-update-file{display:flex;flex-direction:column;gap:6px;min-width:250px;margin:0;font-weight:var(--ui-font-label-weight)}
.maintenance-update-file span{font-size:var(--ui-font-detail-size)}
.maintenance-update-file input[type=file]{width:100%;min-width:0;margin:0}
.maintenance-update-details{display:inline-block;margin-top:6px;font-size:var(--ui-font-detail-size)}
.maintenance-update-form .btn{min-width:190px}
@media(max-width:900px){
  .maintenance-update-form{max-width:100%;flex-wrap:wrap}
}
@media(max-width:760px){
  .maintenance-update-form{display:grid;grid-template-columns:1fr;width:100%;gap:10px}
  .maintenance-update-file{min-width:0;width:100%}
  .maintenance-update-form .btn{width:100%;min-width:0}
}


/* V1.7.0 - BillardClubs global Admin authentication */
.tc-login-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.tc-login-card{margin:0}
.tc-login-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.tc-login-card-head h2{margin:0}
.tc-login-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;background:color-mix(in srgb,var(--ui-primary) 16%,transparent);border:1px solid color-mix(in srgb,var(--ui-primary) 35%,transparent);color:var(--ui-primary);font-size:var(--ui-font-detail-size);font-weight:var(--ui-font-strong-weight);white-space:nowrap}
.tc-login-badge.secondary{background:color-mix(in srgb,var(--ui-muted) 10%,transparent);border-color:var(--border);color:var(--mut)}
.tc-login-inner-form{padding:0;margin:14px 0 0;background:transparent;border:0;box-shadow:none}
.tc-login-inner-form button{width:100%}
@media(max-width:760px){
  .tc-login-options{grid-template-columns:1fr}
  .tc-login-card-head{display:block}
  .tc-login-badge{margin-top:10px}
}


/* V1.7.2 - unified login */
.tc-login-single{max-width:680px;margin:0 auto}
.tc-login-single .tc-login-inner-form{margin-top:18px}
@media(max-width:760px){
  .tc-login-single{max-width:none}
}


/* V1.7.3 - BillardClubs licence information on authenticated dashboard */
.dashboard-license{margin:16px 0}
.dashboard-license-main{display:flex;align-items:center;justify-content:space-between;gap:14px}
.dashboard-license-main h2{margin:4px 0 0}
.dashboard-license-details{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.dashboard-license-details span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:color-mix(in srgb,var(--ui-input) 34%,transparent);border-radius:999px;padding:7px 10px;color:var(--mut)}
.dashboard-license-details strong{color:var(--ui-text)}
@media(max-width:760px){
  .dashboard-license-main{align-items:flex-start;flex-direction:column}
  .dashboard-license-details{display:grid;grid-template-columns:1fr}
  .dashboard-license-details span{border-radius:14px;align-items:flex-start}
}

/* V1.7.9 - Fondation UI globale / éditeur de thèmes Admin */
.inline-form{display:inline;margin:0;padding:0;background:transparent;border:0;box-shadow:none}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}
.check-row{display:flex;align-items:center;gap:10px;margin:10px 0 16px}
.check-row input[type=checkbox]{width:auto;min-height:0;margin:0}
.theme-token-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.theme-token-grid label{display:block}


/* V1.7.10 - Sélecteurs visuels de couleurs dans l'éditeur de thèmes Admin */
.theme-color-field{display:block;min-width:0}
.theme-color-field>span:first-child{display:block;margin-bottom:6px}
.theme-color-control{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;align-items:center}
.theme-color-picker{width:46px;height:46px;padding:3px;border:1px solid var(--ui-border);border-radius:10px;background:var(--ui-input);cursor:pointer}
.theme-color-picker::-webkit-color-swatch-wrapper{padding:0}
.theme-color-picker::-webkit-color-swatch{border:0;border-radius:6px}
.theme-color-picker::-moz-color-swatch{border:0;border-radius:6px}
.theme-color-swatch{display:block;width:46px;height:46px;border:1px solid var(--ui-border);border-radius:10px;background:transparent}
.theme-color-value{min-width:0;width:100%}
.theme-color-value.theme-color-invalid{outline:2px solid var(--ui-danger);outline-offset:1px}
@media (max-width:640px){
  .theme-color-control{grid-template-columns:46px minmax(0,1fr)}
}

.theme-typography-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.theme-typography-grid label>span{display:block;margin-bottom:6px}
@media (max-width:900px){.theme-typography-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.theme-typography-grid{grid-template-columns:1fr}}


/* V1.7.13 - Typographie globale par rôles, responsive via clamp(). */
body,input,select,textarea,button{font-family:var(--ui-font-body)}
body{font-size:clamp(calc(var(--ui-font-body-size) * .875),1.1vw,var(--ui-font-body-size));font-weight:var(--ui-font-body-weight)}
.bc-brand-text strong,.bc-nav a,.bc-drawer-head strong{
  font-size:clamp(calc(var(--ui-font-nav-size) * .86),1.2vw,var(--ui-font-nav-size));
  font-weight:var(--ui-font-nav-weight)
}
.btn,button,input[type=submit],.bc-footer-install,.bc-version-btn{
  font-size:clamp(calc(var(--ui-font-button-size) * .9),1.15vw,var(--ui-font-button-size));
  font-weight:var(--ui-font-button-weight)
}
label{
  font-size:clamp(calc(var(--ui-font-label-size) * .9),1.1vw,var(--ui-font-label-size));
  font-weight:var(--ui-font-label-weight)
}
small,.bc-brand-text small,.bc-drawer-head span,.bc-user-card span,.bc-user-card small,.ranking-main span,.mini-stat span{
  font-size:clamp(calc(var(--ui-font-small-size) * .92),1vw,var(--ui-font-small-size));
  font-weight:var(--ui-font-small-weight)
}
.theme-font-family{max-width:100%;margin:8px 0 14px}
.theme-font-family label>span{display:block;margin-bottom:6px}
.theme-type-roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0 16px}
.theme-type-role{min-width:0;border:1px solid var(--ui-border);border-radius:14px;padding:12px}
.theme-type-role legend{padding:0 6px;font-weight:var(--ui-font-heading-weight);color:var(--ui-text)}
.theme-type-role label{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
@media(max-width:760px){.theme-type-roles{grid-template-columns:1fr}}


/* V1.7.14 - Catalogue de polices système pour les thèmes Admin */
.theme-font-preview{
  margin-top:8px;
  padding:14px;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:var(--ui-input);
  color:var(--ui-text);
  font-size:clamp(18px,2.2vw,24px);
  line-height:1.35
}


/* V1.7.18 - Shell de navigation entièrement raccordé au thème */
.bc-topbar{
  background:color-mix(in srgb,var(--ui-bg) 92%,transparent)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)
}
.bc-menu-btn,.bc-close{
  background:var(--ui-panel)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important
}
.bc-menu-btn:hover,.bc-close:hover{
  background:var(--ui-panel-2)!important
}
.bc-drawer{
  background:linear-gradient(180deg,var(--ui-bg-soft),var(--ui-bg))!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)
}
.bc-drawer-title span,.bc-user-card span,.bc-user-card small,.bc-lang-form label{
  color:var(--ui-muted)!important
}
.bc-lang-form,.bc-user-card{
  background:var(--ui-card)!important;
  border-color:var(--ui-border)!important
}
.bc-lang-form select{
  background:var(--ui-input)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important
}
.bc-nav a{
  background:var(--ui-card)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text)!important
}
.bc-nav a:hover,.bc-nav a:focus-visible{
  background:var(--ui-card-2)!important;
  border-color:color-mix(in srgb,var(--ui-primary) 45%,var(--ui-border))!important
}
.bc-nav a[aria-current="page"],.bc-nav a.active,.bc-nav a.is-active{
  background:color-mix(in srgb,var(--ui-primary) 18%,var(--ui-card))!important;
  border-color:color-mix(in srgb,var(--ui-primary) 55%,var(--ui-border))!important;
  color:var(--ui-text)!important
}
.bc-nav .danger-link{
  color:var(--ui-danger)!important;
  border-color:color-mix(in srgb,var(--ui-danger) 35%,var(--ui-border))!important
}
.bc-footer{
  color:var(--ui-muted)!important;
  border-color:var(--ui-border)!important
}
.bc-footer-main strong{color:var(--ui-text)!important}
.bc-footer a,.bc-footer-copy a{color:var(--ui-primary)!important}


/* V1.7.19 - Composants métier Matchs raccordés au thème */
.tc-match-toolbar,.admin-match-card,.public-match-card,.tc-match-row-card,.tc-match-card{
  border-color:var(--ui-border)!important
}
.tc-match-toolbar{
  background:color-mix(in srgb,var(--ui-card) 88%,transparent)!important
}
.tc-match-card,.admin-match-card,.public-match-card,.tc-match-row-card{
  background:linear-gradient(145deg,var(--ui-card),var(--ui-bg-soft))!important
}
.match-player-block,.match-entry-player,.tc-match-player,.tc-match-score-box{
  background:color-mix(in srgb,var(--ui-input) 62%,transparent)!important;
  border-color:var(--ui-border)!important
}
.match-number,.tc-match-index,.match-vs-pill,.tc-match-score{
  background:color-mix(in srgb,var(--ui-primary) 12%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-primary) 32%,transparent)!important;
  color:var(--ui-primary)!important
}
.match-meta-row span,.tc-match-row-meta span,.tc-match-card-meta span{
  background:color-mix(in srgb,var(--ui-muted) 10%,transparent)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-muted)!important
}
.match-edit-details summary{
  background:color-mix(in srgb,var(--ui-primary) 12%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-primary) 28%,transparent)!important;
  color:var(--ui-text)!important
}
.tc-match-status.ok,.tc-match-status.validated{
  background:color-mix(in srgb,var(--ui-success) 14%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-success) 36%,transparent)!important;
  color:var(--ui-success)!important
}
.tc-match-status.wait,.tc-match-status.pending{
  background:color-mix(in srgb,var(--ui-warning) 14%,transparent)!important;
  border-color:color-mix(in srgb,var(--ui-warning) 35%,transparent)!important;
  color:var(--ui-warning)!important
}
.tc-match-status.todo{
  background:color-mix(in srgb,var(--ui-muted) 12%,transparent)!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-muted)!important
}
.tc-match-score-box strong{color:var(--ui-text)!important}


/* V1.7.33 - Système typographique global responsive */
html,body,input,select,textarea,button{font-family:var(--ui-font-body)}
body,input,select,textarea{font-size:var(--ui-font-body-size);font-weight:var(--ui-font-body-weight)}
h1{font-size:var(--ui-font-h1-size);font-weight:var(--ui-font-h1-weight)}
h2{font-size:var(--ui-font-heading-size);font-weight:var(--ui-font-heading-weight)}
h3,h4,h5,h6,.tc-user-card h3,.ranking-main strong{
  font-size:var(--ui-font-subheading-size);
  font-weight:var(--ui-font-subheading-weight)
}
.bc-nav a,.bc-menu-btn,.bc-close{
  font-family:var(--ui-font-body)
}
.bc-nav a{
  font-size:var(--ui-font-nav-size);
  font-weight:var(--ui-font-nav-weight)
}
.bc-install,.bc-footer-install,.bc-version-btn{
  font-family:var(--ui-font-body);
  font-size:var(--ui-font-button-size);
  font-weight:var(--ui-font-button-weight)
}
label,.tc-stat-label,.tc-bonus-line label{
  font-size:var(--ui-font-label-size);
  font-weight:var(--ui-font-label-weight)
}
small,.bc-brand-text small,.bc-drawer-head span,.bc-user-card span,.bc-user-card small,
.ranking-main span,.mini-stat span,.status-pill,.tc-login-badge{
  font-size:var(--ui-font-small-size);
  font-weight:var(--ui-font-small-weight)
}
.stat-card .number,.big-score,.ranking-points strong,.stats-grid strong{
  font-size:var(--ui-font-metric-size);
  font-weight:var(--ui-font-metric-weight)
}
.bc-brand-text strong,.bc-footer-main strong,.eyebrow,.tablebox th,th{
  font-family:var(--ui-font-body)
}


/* V1.7.36 - Socle UI global : espacements et géométrie des composants */
.wrap{
  display:flex;
  flex-direction:column;
  gap:var(--ui-section-gap)
}
.wrap>.page-hero,
.wrap>.card,
.wrap>.tablebox,
.wrap>form,
.wrap>.grid,
.wrap>.ranking-list,
.wrap>.match-list{
  margin-top:0;
  margin-bottom:0
}
.card,.tablebox,form,.page-hero{
  padding:var(--ui-card-padding);
  border-radius:var(--ui-radius)
}
.card,.tablebox,.page-hero{
  border:1px solid var(--ui-border);
  box-shadow:var(--ui-shadow)
}
.grid,.ranking-list,.match-list{
  gap:var(--ui-card-gap)
}
.card>*:first-child,.tablebox>*:first-child,form>*:first-child,.page-hero>*:first-child{margin-top:0}
.card>*:last-child,.tablebox>*:last-child,form>*:last-child,.page-hero>*:last-child{margin-bottom:0}
.card .grid,.card .ranking-list,.card .match-list,
form .grid,form .ranking-list,form .match-list{
  margin-top:var(--ui-space-md)
}
@media(max-width:760px){
  :root{
    --ui-field-padding-y:var(--ui-space-sm);
    --ui-field-padding-x:var(--ui-space-sm);
    --ui-field-margin-bottom:var(--ui-space-sm);
    --ui-card-padding:var(--ui-space-md);
    --ui-card-gap:var(--ui-space-sm);
    --ui-section-gap:var(--ui-space-md)
  }
}
\n\n/* V1.7.43 - Finalisation globale du Design System UI */\n/* Badges / statuts */\n.status-pill,.tc-match-status,.tc-login-badge{\n  display:inline-flex;align-items:center;justify-content:center;\n  width:auto;max-width:100%;white-space:nowrap;line-height:1.15;\n  border:1px solid var(--ui-border);border-radius:var(--ui-badge-radius);\n  padding:var(--ui-badge-padding-y) var(--ui-badge-padding-x);\n  font-family:var(--ui-font-body);font-size:var(--ui-font-detail-size);font-weight:var(--ui-font-strong-weight);\n  background:color-mix(in srgb,var(--ui-muted) 10%,transparent);color:var(--ui-muted)\n}\n.status-pill.ok,.tc-match-status.ok,.tc-match-status.validated{\n  background:color-mix(in srgb,var(--ui-success) 14%,transparent);\n  border-color:color-mix(in srgb,var(--ui-success) 36%,transparent);color:var(--ui-success)\n}\n.status-pill.wait,.tc-match-status.wait,.tc-match-status.pending{\n  background:color-mix(in srgb,var(--ui-warning) 14%,transparent);\n  border-color:color-mix(in srgb,var(--ui-warning) 35%,transparent);color:var(--ui-warning)\n}\n.tc-match-status.todo,.tc-login-badge.secondary{\n  background:color-mix(in srgb,var(--ui-muted) 10%,transparent);border-color:var(--ui-border);color:var(--ui-muted)\n}\n.tc-login-badge:not(.secondary){\n  background:color-mix(in srgb,var(--ui-primary) 16%,transparent);\n  border-color:color-mix(in srgb,var(--ui-primary) 35%,transparent);color:var(--ui-primary)\n}\n/* Tableaux */\n.tablebox{overflow:auto}\ntable{width:100%;border-collapse:separate;border-spacing:0;background:color-mix(in srgb,var(--ui-card) 80%,transparent);border-radius:var(--ui-radius);overflow:hidden}\nth,td{padding:var(--ui-table-cell-y) var(--ui-table-cell-x);border-bottom:1px solid var(--ui-border);text-align:left;vertical-align:middle}\nth{color:var(--ui-secondary);font-weight:var(--ui-font-strong-weight);white-space:nowrap}\ntr:last-child td{border-bottom:0}\n/* Alertes */\n.flash{padding:var(--ui-space-md) var(--ui-space-lg);margin:var(--ui-space-sm) 0;border-radius:var(--ui-radius);\n  background:color-mix(in srgb,var(--ui-success) 14%,transparent);border:1px solid color-mix(in srgb,var(--ui-success) 55%,transparent);color:var(--ui-text)}\n/* Drawer / backdrop */\n.bc-backdrop{background:var(--ui-overlay-bg)}\n.bc-drawer{border-right:1px solid var(--ui-border);box-shadow:var(--ui-shadow);padding:var(--ui-card-padding)}\n.bc-drawer-head{gap:var(--ui-card-gap)!important;margin-bottom:var(--ui-space-lg)!important}\n.bc-user-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius);padding:var(--ui-card-padding);margin:var(--ui-space-sm) 0 var(--ui-space-md)}\n.bc-nav{gap:var(--ui-space-sm)}\n.bc-nav a{gap:var(--ui-space-sm);border:1px solid var(--ui-border);border-radius:calc(var(--ui-radius) - 3px);padding:var(--ui-space-md)}\n/* Géométrie résiduelle des cartes/listes usuelles */\n.tc-match-row-card,.compact-row,.mini-stat,.ranking-card-v2 .ranking-group{border-color:var(--ui-border);box-shadow:var(--ui-shadow)}\n.tc-match-row-card{border-radius:var(--ui-radius);padding:var(--ui-card-padding)}\n.compact-row{border-radius:var(--ui-radius);padding:var(--ui-space-md);gap:var(--ui-space-xs)}\n.ranking-list,.match-list,.tc-match-list-clean,.compact-list{gap:var(--ui-card-gap)}\n@media(max-width:760px){\n  table.responsive-table tr{border-color:var(--ui-border);border-radius:var(--ui-radius);margin-bottom:var(--ui-card-gap);box-shadow:var(--ui-shadow)}\n  table.responsive-table td{gap:var(--ui-card-gap);border-bottom-color:var(--ui-border);padding:var(--ui-space-sm) var(--ui-space-md)}\n  .bc-drawer{padding:var(--ui-card-padding)!important}\n}\n
/* V1.7.51 - Hauteur du header +25% sur les valeurs réellement actives */
.bc-topbar{height:68px!important}
@media(max-width:760px){.bc-topbar{height:65px!important}}

/* V1.7.52 - Header desktop et centrage du sélecteur de thème */
@media(min-width:761px){
  .bc-topbar{
    height:80px!important;
    min-height:80px!important
  }
}
.bc-theme-select{
  margin:0!important;
  min-height:40px!important;
  align-self:center
}
.bc-theme-picker{
  align-self:stretch;
  align-items:center
}

/* V1.7.54 - Logo du header agrandi, sans modifier le logo du drawer */
.bc-topbar .bc-logo-img{
  width:64px!important;
  height:64px!important;
  max-width:64px!important;
  max-height:64px!important;
  object-fit:contain
}
@media(max-width:760px){
  .bc-topbar .bc-logo-img{
    width:52px!important;
    height:52px!important;
    max-width:52px!important;
    max-height:52px!important
  }
}


/* V1.7.68 - Cloche de notifications joueur */
.bc-notification-bell{
  position:relative;
  flex:0 0 auto;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  text-decoration:none;
  border:1px solid var(--ui-border);
  border-radius:12px;
  background:var(--ui-panel);
  color:var(--ui-text);
  font-size:20px;
  line-height:1
}
.bc-notification-bell.has-notifications{
  border-color:color-mix(in srgb,var(--ui-warning) 65%,var(--ui-border))
}
.bc-notification-badge{
  position:absolute;
  top:-7px;
  right:-7px;
  min-width:21px;
  height:21px;
  padding:0 5px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--ui-danger);
  color:var(--ui-bg);
  border:2px solid var(--ui-bg);
  font-size:var(--ui-font-xs-size);
  font-weight:var(--ui-font-strong-weight);
  line-height:1
}
.bc-notification-badge[hidden]{display:none!important}
@media(max-width:640px){
  .bc-notification-bell{width:40px;height:40px;font-size:19px}
}


/* V1.7.78 - Titre du tournoi dans le header */
.bc-topbar .bc-brand-text .bc-tournament-title{
  font-size:calc(var(--ui-font-medium-size) + 3px)!important;
  line-height:1.08!important;
}
@media(max-width:760px){
  .bc-topbar .bc-brand-text .bc-tournament-title{
    font-size:calc(var(--ui-font-detail-size) + 2px)!important;
  }
}
