:root{
  /* Tournoi Bracket 0.5.11 - Tokens UI globaux et états sémantiques centralisés. */
  --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);
  /* Derived semantic states: all UI states now follow the active theme. */
  --ui-primary-soft:color-mix(in srgb,var(--ui-primary) 12%,transparent);
  --ui-primary-soft-strong:color-mix(in srgb,var(--ui-primary) 18%,transparent);
  --ui-primary-border:color-mix(in srgb,var(--ui-primary) 35%,transparent);
  --ui-success-soft:color-mix(in srgb,var(--ui-success) 12%,transparent);
  --ui-success-soft-strong:color-mix(in srgb,var(--ui-success) 15%,transparent);
  --ui-success-border:color-mix(in srgb,var(--ui-success) 35%,transparent);
  --ui-warning-soft:color-mix(in srgb,var(--ui-warning) 12%,transparent);
  --ui-warning-soft-strong:color-mix(in srgb,var(--ui-warning) 14%,transparent);
  --ui-warning-border:color-mix(in srgb,var(--ui-warning) 35%,transparent);
  --ui-danger-soft:color-mix(in srgb,var(--ui-danger) 12%,transparent);
  --ui-danger-border:color-mix(in srgb,var(--ui-danger) 40%,transparent);
  --ui-neutral-soft:color-mix(in srgb,var(--ui-muted) 10%,transparent);
  --ui-neutral-border:color-mix(in srgb,var(--ui-muted) 24%,transparent);
  --ui-surface-soft:color-mix(in srgb,var(--ui-card) 88%,transparent);
  --ui-surface-strong:color-mix(in srgb,var(--ui-card) 96%,transparent);
  --ui-surface-deep: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(--gold);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:16px}.bc-version-btn{width:auto;min-height:34px;padding:7px 11px;border-radius:999px;background:var(--ui-success-soft);border:1px solid color-mix(in srgb,var(--ui-success) 38%,transparent);color:var(--ui-success);font-size:13px}.bc-version-btn.is-update{background:var(--ui-warning-soft);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:500}@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:14px}.bc-brand-text small{font-size:12px}.bc-install{display:none!important}.bc-footer-install{border:1px solid color-mix(in srgb,var(--ui-primary) 45%,transparent);background:var(--ui-primary-soft);color:var(--ui-primary);border-radius:999px;padding:8px 12px;font-weight:500;cursor:pointer}.bc-footer-install[hidden]{display:none!important}.bc-footer-install.update-ready{background:var(--ui-warning-soft-strong);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(--border);border-radius:14px;padding:10px}.ranking-group-title{font-weight:500;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:13px}.bc-brand-text small{font-size:11px}.page-hero{margin-top:6px}.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(--border);
  border-radius:22px;
  padding:16px;
  box-shadow:var(--shadow);
}
.match-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.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:12px;
  font-weight:500;
  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:12px;
  font-weight:500;
  border:1px solid var(--border);
  background:var(--ui-neutral-soft);
  white-space:nowrap;
}
.status-pill.ok{
  background:var(--ui-success-soft-strong);
  color:var(--ui-success);
  border-color:var(--ui-success-border);
}
.status-pill.wait{
  background:var(--ui-warning-soft);
  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:var(--ui-surface-deep);
  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:15px;
  line-height:1.18;
  overflow-wrap:anywhere;
}
.player-label{
  color:var(--mut);
  font-size:12px;
  font-weight:500;
  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,var(--ui-primary-soft-strong),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:34px;
  font-weight:500;
}
.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:500;
  font-size:12px;
}
.match-meta-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 4px;
}
.match-meta-row span{
  background:var(--ui-neutral-soft);
  border:1px solid var(--border);
  color:var(--mut);
  border-radius:999px;
  padding:7px 10px;
  font-size:13px;
}
.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:var(--ui-primary-soft);
  color:var(--ui-text);
  border:1px solid color-mix(in srgb,var(--ui-primary) 28%,transparent);
  padding:10px 13px;
  font-weight:500;
}
.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:16px;
  overflow-wrap:anywhere;
}
.match-edit-form label{
  display:grid;
  gap:6px;
  margin-bottom:10px;
}
.match-edit-form label span{
  color:var(--mut);
  font-size:13px;
  font-weight:500;
}
.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:13px;
    border-radius:18px;
  }
  .match-card-head{
    align-items:flex-start;
  }
  .status-pill{
    padding:6px 8px;
    font-size:11px;
  }
  .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:28px;
  }
  .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:13px!important;line-height:1.05!important}.bc-brand-text small{font-size:11px!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,var(--ui-surface-strong),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:12px;font-weight:500}.tc-match-status{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:500;border:1px solid var(--border);white-space:nowrap}.tc-match-status.ok{background:var(--ui-success-soft-strong);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:var(--ui-neutral-soft);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:500;font-size:16px;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:28px;color:var(--ui-text);line-height:1}.tc-match-score-box span{font-size:11px;color:var(--brand);font-weight:500}.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:12px}.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:500}.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:500}.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) 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:var(--ui-primary-soft);border:2px solid var(--ui-primary-border);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:19px;line-height:1.15;overflow-wrap:anywhere}.tc-player-edit-card p{margin:4px 0 12px;color:var(--mut);font-weight:500}.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 var(--ui-primary-border);color:var(--brand);font-weight:500;font-size:13px}.tc-stat-label{color:var(--ui-secondary);font-weight:500;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:26px!important;font-weight:500!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:500;color:var(--ui-secondary);margin:0;font-size:13px;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:500!important;font-size:18px!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:16px}.tc-match-score-box{justify-self:center;min-width:124px}.tc-match-score-box strong{font-size:30px}.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:18px}.tc-control-main{grid-template-columns:42px 54px 42px}.tc-control-main input{font-size:25px!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: var(--ui-surface-soft);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 16px;
  margin: 16px 0;
}

.tc-matches-list {
  display: grid;
  gap: 14px;
  margin: 18px 0;
}

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

.tc-match-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

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

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

.tc-match-status.validated {
  background: var(--ui-success-soft-strong);
  color: var(--ui-success);
  border-color: var(--ui-success-border);
}

.tc-match-status.pending {
  background: var(--ui-warning-soft-strong);
  color: var(--ui-warning);
  border-color: var(--ui-warning-border);
}

.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: 14px;
}

.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: 12px;
  font-weight: 500;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.tc-match-player strong {
  display: block;
  font-size: 18px;
  overflow-wrap: anywhere;
}

.tc-match-score {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 8px;
  align-items: center;
  justify-content: center;
  background: var(--ui-primary-soft);
  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: 30px;
  line-height: 1;
}

.tc-match-score span {
  color: var(--brand);
  font-size: 12px;
  font-weight: 500;
}

.tc-match-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.tc-match-card-meta span {
  background: var(--ui-neutral-soft);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 7px 10px;
  color: var(--mut);
  font-size: 13px;
}

.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: 14px;
    border-radius: 18px;
  }

  .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: var(--ui-primary-soft);
  border: 2px solid var(--ui-primary-border);
  color: var(--brand);
  font-weight: 500;
  font-size: 24px;
}
.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: var(--ui-warning-soft);
  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: 500;
}
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: var(--ui-neutral-border) !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: 20px;
  }
  .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:500;
}
.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:500;
}
.tc-participation-status.is-active{
  background:var(--ui-success-soft);
  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-panel) 32%,transparent);
  font-weight:500;
}
.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:13px}.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-panel) 55%,transparent);border:1px solid var(--border);border-radius:16px;padding:14px;text-align:center}.stats-grid strong{font-size:24px;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{margin:6px 0 14px!important;padding:12px 14px!important;border-radius:17px!important}
  .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:500;
}
.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:16px;
  padding:13px;
}
.tc-availability-card strong,
.tc-availability-card span{
  display:block;
}
.tc-availability-card span{
  color:var(--brand);
  font-weight:500;
  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 var(--ui-primary-border);font-weight:500;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:6px;flex-wrap:wrap;justify-content:flex-end}.tc-ranking-criteria-move .compact{width:auto;min-width:92px;padding:8px 10px;margin:0;font-size:13px}.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}.tc-ranking-criteria-move .compact{width:100%;min-width:0}.ranking-card-v2 .ranking-main span{font-size:12px}}


/* 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:500}.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:28px;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(--brand),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:16px}.compact-row span{color:var(--mut);font-size:14px}.compact-row b{font-size:20px;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:15px;
  overflow-wrap:anywhere;
}
.bc-drawer-title span{
  display:block;
  color:var(--mut);
  font-size:13px;
  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:14px;}
  .bc-drawer-title span{font-size:12px;}
  .bc-nav a{min-height:46px;padding:12px 13px!important;}
}

/* Tournoi Bracket 0.2.0 */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--ui-muted) 35%,transparent);border-radius:999px;padding:6px 10px;background:color-mix(in srgb,var(--ui-text) 5%,transparent);font-weight:500}.checkline{display:flex;align-items:center;gap:8px;margin:12px 0}.checkline input{width:auto;margin:0}.btn.danger,.danger{background:var(--ui-danger);color:var(--ui-text);border-color:var(--ui-danger)}.alert.success{border-color:var(--ui-success-border);background:var(--ui-success-soft)}.alert.warning{border-color:var(--ui-warning-border);background:var(--ui-warning-soft)}.alert.danger{border-color:var(--ui-danger-border);background:var(--ui-danger-soft)}


/* Tournoi Bracket 0.3.2 - Typographie plus nette sur mobile
   Règle: éviter les graisses 700+ qui rendent le texte flou sur certains écrans. */
:where(body, input, select, textarea, button, .btn, .chip, .badge, .pill){font-weight:400;}
:where(strong, b, label, th, .btn, button, .menu a, .drawer a){font-weight:500;}
:where(h1, h2, h3, .page-title, .card-title){font-weight:600;}


/* Tournoi Bracket 0.3.3 - Police d’interface et cartes arbre cliquables */
html,body,input,select,textarea,button,.btn{
  font-family:"Segoe UI",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
}
a.true-tree-card{
  color:inherit;
  text-decoration:none;
}
.true-tree-card.is-clickable{
  cursor:pointer;
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;
}
.true-tree-card.is-clickable:hover,
.true-tree-card.is-clickable:focus-visible{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--ui-primary) 70%,transparent);
  box-shadow:0 10px 24px color-mix(in srgb,var(--ui-primary) 10%,transparent),0 8px 20px color-mix(in srgb,var(--ui-bg) 24%,transparent);
  outline:none;
}


/* Tournoi Bracket 0.5.7 - Design System centralisé porté depuis Tournoi Cartésien */
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,.ranking-main strong{font-weight:var(--ui-font-heading-weight)}
.bc-nav a{font-size:var(--ui-font-nav-size);font-weight:var(--ui-font-nav-weight)}
.btn,button,input[type=submit]{font-family:var(--ui-font-body);font-size:var(--ui-font-button-size);font-weight:var(--ui-font-button-weight)}
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{font-size:var(--ui-font-small-size);font-weight:var(--ui-font-small-weight)}
.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}
.status-pill{display:inline-flex;align-items:center;justify-content:center;width:auto;max-width:100%;white-space:nowrap;line-height:1.15;border:1px solid var(--ui-border);border-radius:var(--ui-badge-radius);padding:var(--ui-badge-padding-y) var(--ui-badge-padding-x);background:color-mix(in srgb,var(--ui-muted) 10%,transparent);color:var(--ui-muted)}
.status-pill.ok{background:color-mix(in srgb,var(--ui-success) 14%,transparent);border-color:color-mix(in srgb,var(--ui-success) 36%,transparent);color:var(--ui-success)}
.status-pill.wait{background:color-mix(in srgb,var(--ui-warning) 14%,transparent);border-color:color-mix(in srgb,var(--ui-warning) 35%,transparent);color:var(--ui-warning)}
.tablebox{overflow:auto}
table{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}
th,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}
th{color:var(--ui-secondary);font-weight:var(--ui-font-heading-weight);white-space:nowrap}
.flash{padding:var(--ui-space-md) var(--ui-space-lg);margin:var(--ui-space-sm) 0;border-radius:var(--ui-radius);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)}
.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}
.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-value{min-width:0;width:100%}.theme-color-value.theme-color-invalid{outline:2px solid var(--ui-danger);outline-offset:1px}
.theme-font-family{max-width:100%;margin:8px 0 14px}.theme-font-family label>span{display:block;margin-bottom:6px}.theme-font-preview{margin-top:10px;padding:14px;border:1px solid var(--ui-border);border-radius:12px;background:color-mix(in srgb,var(--ui-input) 60%,transparent);color:var(--ui-text)}
.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}
.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!important;margin:0!important;border:1px solid var(--ui-border);border-radius:12px;background:var(--ui-input);color:var(--ui-text);font-family:var(--ui-font-body);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: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)}.theme-type-roles{grid-template-columns:1fr}.bc-theme-select{max-width:126px;min-width:92px}.bc-theme-picker-icon{display:none}.bc-brand-text{display:none}}

/* Maintenance - full-width version/action rows (0.5.9) */
.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}
.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-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-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}}

/* 0.5.24 - Notifications internes */
.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}
.tc-notifications-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.tc-notifications-list{display:grid;gap:10px;margin-top:16px}.tc-notification-item{display:block;padding:14px;border:1px solid var(--ui-border);border-radius:14px;background:var(--ui-panel);color:var(--ui-text);text-decoration:none}.tc-notification-item.is-unread{border-color:color-mix(in srgb,var(--ui-primary) 65%,var(--ui-border));background:var(--ui-primary-soft)}.tc-notification-item strong{display:block;margin-bottom:4px}.tc-notification-item small{display:block;margin-top:7px;color:var(--ui-muted)}
@media(max-width:640px){.bc-notification-bell{width:40px;height:40px;font-size:19px}.tc-notifications-head{display:block}.tc-notifications-head .btn{margin-top:10px}}


/* V0.5.126 - Header aligne sur Tournoi Cartesien 1.7.95 */
.bc-topbar{height:68px!important}
@media(max-width:760px){.bc-topbar{height:65px!important}}
@media(min-width:761px){.bc-topbar{height:80px!important;min-height:80px!important}}
.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}}

/* 0.5.197 - Tableau de bord public : identité du tournoi lisible */
.dashboard-logo-wrap{
  width:140px;
  height:140px;
  border:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.dashboard-logo{width:100%;height:100%;object-fit:contain;padding:0}
.dashboard-identity-main h2{font-size:clamp(34px,5vw,52px);line-height:1.05;margin:4px 0 14px}
.dashboard-meta-grid span strong{color:var(--ui-text);font-weight:700}
@media(max-width:760px){
  .dashboard-identity{grid-template-columns:88px 1fr;text-align:left;align-items:start;gap:12px}
  .dashboard-logo-wrap{margin:0;width:88px;height:88px}
  .dashboard-identity-main h2{font-size:clamp(25px,8vw,36px);margin-top:2px}
  .dashboard-meta-grid{grid-column:1/-1;justify-content:flex-start}
}


/* 0.5.198 - Affiche du tournoi avant génération */
.dashboard-poster{padding:0;overflow:hidden}
.dashboard-poster img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}


/* Tournoi Bracket 0.5.199 - Tableau de bord public : identité centrée et détails lisibles */
.dashboard-identity{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
}
.dashboard-logo-wrap{
  width:112px;
  height:112px;
  margin:0 auto;
}
.dashboard-identity-main{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.dashboard-identity-main h2{
  margin:0;
  max-width:100%;
  text-align:center;
  line-height:1.08;
  overflow-wrap:anywhere;
}
.dashboard-status{
  display:block;
  margin-top:7px;
  text-align:center;
}
.dashboard-registration-btn{
  width:auto;
  margin:12px auto 14px;
}
.dashboard-meta-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 14px;
  justify-content:stretch;
  text-align:left;
}
.dashboard-meta-grid span{
  display:block;
  min-width:0;
  border-radius:12px;
  overflow-wrap:anywhere;
}
.dashboard-meta-grid a{
  overflow-wrap:anywhere;
  word-break:break-word;
}
.dashboard-poster{
  width:min(100%,760px);
  margin-left:auto;
  margin-right:auto;
}
.dashboard-poster img{
  width:100%;
}
@media(max-width:760px){
  .dashboard-identity{
    text-align:center;
  }
  .dashboard-logo-wrap{
    width:104px;
    height:104px;
  }
  .dashboard-identity-main h2{
    font-size:clamp(28px,8vw,38px);
  }
  .dashboard-meta-grid{
    grid-template-columns:1fr;
    text-align:left;
  }
  .dashboard-meta-grid span{
    width:100%;
  }
  .dashboard-registration-btn{
    width:min(100%,320px);
  }
  .dashboard-poster{
    width:100%;
  }
}

/* Tournoi Bracket 0.5.200 - équilibre vertical du logo du tableau de bord */
.dashboard-logo-wrap{
  margin-bottom:28px;
}
/* Tournoi Bracket 0.5.202 - synthèse publique par tableau */
.dashboard-bracket-summary{margin:16px 0;padding:16px}
.dashboard-bracket-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.dashboard-bracket-summary-head h2{margin:0}
.dashboard-bracket-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 11px;font-size:.82rem;font-weight:700;border:1px solid var(--ui-neutral-border)}
.dashboard-bracket-status.preparation{color:var(--ui-warning);background:var(--ui-warning-soft-strong)}
.dashboard-bracket-status.in-progress{color:var(--ui-primary);background:var(--ui-primary-soft)}
.dashboard-bracket-status.finished{color:var(--ui-success);background:var(--ui-success-soft-strong)}
.dashboard-bracket-summary .dashboard-stats-grid{grid-template-columns:repeat(6,1fr);margin:0;gap:10px}
.dashboard-bracket-summary .stat-card{padding:12px;border:1px solid var(--ui-neutral-border);border-radius:14px;background:var(--ui-neutral-soft);box-shadow:none}
@media(max-width:900px){.dashboard-bracket-summary .dashboard-stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.dashboard-bracket-summary-head{align-items:flex-start;flex-direction:column}.dashboard-bracket-summary .dashboard-stats-grid{grid-template-columns:repeat(2,1fr)}}
