/* =====================================================================
   Turnier-App V3.1.4 – ein einziges UI-System für alle normalen Seiten
   ===================================================================== */

:root{
  --app-max:1180px;
  --app-gutter:clamp(14px,3vw,28px);
  --app-nav-height:64px;
  --app-soft-border:color-mix(in srgb,var(--app-text) 13%,transparent);
  --app-hover:color-mix(in srgb,var(--user-primary) 10%,var(--app-surface));
  --app-focus:0 0 0 3px color-mix(in srgb,var(--user-primary) 28%,transparent);
}

html{background:var(--app-bg)}
body.app-ui-v314:not(.app-scoreboard){
  margin:0!important;
  background:var(--app-bg)!important;
  color:var(--app-text)!important;
  min-height:100vh;
}

body.app-ui-v314:not(.app-scoreboard) :where(.page,.center-shell,.profile-v2-layout,.auth-shell){
  width:min(var(--app-max),calc(100% - (var(--app-gutter) * 2)));
  margin-inline:auto;
}

/* ---------- Hauptnavigation: immer nur dieses eine System ---------- */
body.app-ui-v314 :where(.v3-quick-nav,.public-role-nav,.legacy-main-nav){display:none!important}
body.app-ui-v314 .global-app-nav-v314{
  position:sticky;top:0;z-index:1400;
  min-height:var(--app-nav-height);
  padding:8px max(var(--app-gutter),calc((100vw - var(--app-max))/2));
  display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;
  background:color-mix(in srgb,var(--app-surface) 94%,transparent)!important;
  border-bottom:1px solid var(--app-soft-border)!important;
  box-shadow:0 8px 34px rgba(0,0,0,.16)!important;
  backdrop-filter:blur(20px) saturate(1.12);
}
body.app-ui-v314 .global-app-brand{display:flex;align-items:center;gap:10px;color:var(--app-text)!important;text-decoration:none;min-width:max-content}
body.app-ui-v314 .global-app-brand-mark{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:var(--user-primary)!important;color:var(--user-primary-contrast)!important;
  font-weight:950;box-shadow:0 8px 22px color-mix(in srgb,var(--user-primary) 26%,transparent)
}
body.app-ui-v314 .global-app-brand-copy{display:grid;line-height:1.02}
body.app-ui-v314 .global-app-brand-copy strong{font-size:.94rem;color:var(--app-text)!important}
body.app-ui-v314 .global-app-brand-copy small{font-size:.69rem;color:var(--app-muted)!important;margin-top:5px}
body.app-ui-v314 .global-app-nav-links{justify-self:end;display:flex;align-items:center;gap:5px;overflow:auto;scrollbar-width:none}
body.app-ui-v314 .global-app-nav-links::-webkit-scrollbar{display:none}
body.app-ui-v314 .global-app-nav-link{
  min-height:42px;padding:9px 12px;border-radius:11px;display:flex;align-items:center;gap:7px;
  color:var(--app-muted)!important;text-decoration:none;font-weight:850;white-space:nowrap;border:1px solid transparent
}
body.app-ui-v314 .global-app-nav-link:hover{background:var(--app-hover)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)}
body.app-ui-v314 .global-app-nav-link.is-active{background:var(--user-primary)!important;color:var(--user-primary-contrast)!important;box-shadow:0 8px 22px color-mix(in srgb,var(--user-primary) 24%,transparent)}
body.app-ui-v314 .global-nav-icon{font-size:.9rem;filter:saturate(.8)}
body.app-ui-v314 .global-mobile-nav-v314{display:none}

/* ---------- Hero/Header: kompakt, keine leeren Deko-Flächen ---------- */
body.app-ui-v314 :where(.premium-header-decoration){display:none!important}
body.app-ui-v314 :where(.site-header,.center-hero,.profile-v2-hero){
  min-height:0!important;
  padding:clamp(24px,4vw,46px) var(--app-gutter)!important;
  border:0!important;border-bottom:1px solid var(--app-soft-border)!important;border-radius:0!important;
  background:
    radial-gradient(circle at 82% 20%,color-mix(in srgb,var(--user-accent) 18%,transparent),transparent 31rem),
    linear-gradient(125deg,color-mix(in srgb,var(--user-primary) 38%,var(--app-bg)),color-mix(in srgb,var(--user-accent) 20%,var(--app-bg)))!important;
  color:#fff!important;box-shadow:none!important;overflow:hidden
}
body.app-ui-v314 :where(.site-header,.center-hero)>div,
body.app-ui-v314 .profile-v2-hero-inner{width:min(var(--app-max),100%);margin-inline:auto!important}
body.app-ui-v314 :where(.site-header,.center-hero,.profile-v2-hero) h1{font-size:clamp(2rem,4.8vw,3.55rem)!important;line-height:.98!important;letter-spacing:-.035em;margin:.35rem 0 .55rem!important;color:#fff!important}
body.app-ui-v314 :where(.site-header,.center-hero,.profile-v2-hero) :where(.subtitle,p){max-width:760px;color:rgba(255,255,255,.82)!important}
body.app-ui-v314 :where(.premium-header-chip,.center-kicker,.profile-v2-kicker){
  background:color-mix(in srgb,var(--app-bg) 38%,transparent)!important;
  color:#fff!important;border-color:rgba(255,255,255,.22)!important;box-shadow:none!important
}

/* Alte Header-Hauptmenüs werden zusätzlich optisch neutralisiert, falls ein
   Browser noch alten Markup-Code aus dem Cache zusammensetzt. */
body.app-ui-v314 header :where(.public-role-nav,.v3-quick-nav,.legacy-main-nav){display:none!important}
body.app-ui-v314 header .header-actions:not(.is-context-only){display:none!important}
body.app-ui-v314 .header-actions.is-context-only{
  width:min(var(--app-max),100%);margin:12px auto 0!important;justify-content:flex-start!important;
  padding:0!important;gap:8px!important
}

/* ---------- Karten, Formulare, Tabellen ---------- */
body.app-ui-v314:not(.app-scoreboard) :where(
  .panel,.wizard-shell,.management-card,.mini-profile-card,.profile-view,.center-card,.center-panel,
  .owner-card,.spectator-tournament-card,.tournament-card,.assignment-dialog,.past-tournaments-section,
  .empty-state,.notice,.profile-v2-sidebar,.profile-v2-content,.profile-stat-card,.profile-data-card,
  .profile-card,.experience-guide,.referee-tournament-catalogue,.referee-sport-tournament-section,
  .admin-item,.playing-field-card,.group-card,.bracket-match,.access-editor,.rights-block
){
  background:var(--app-surface)!important;color:var(--app-text)!important;
  border-color:var(--app-soft-border)!important;border-radius:var(--user-radius)!important;
  box-shadow:0 16px 44px rgba(0,0,0,.14)!important
}
body.app-ui-v314 :where(input:not([type=color]),textarea,select){
  background:var(--app-surface-2)!important;color:var(--app-text)!important;
  border:1px solid var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.72)!important
}
body.app-ui-v314 :where(input:not([type=color]),textarea,select):focus{
  outline:none!important;border-color:var(--user-primary)!important;box-shadow:var(--app-focus)!important
}
body.app-ui-v314 :where(input,textarea)::placeholder{color:var(--app-muted)!important}
body.app-ui-v314 :where(label,small,.muted,.section-support-copy,.footer-note){color:var(--app-muted)!important}
body.app-ui-v314 :where(table){color:var(--app-text)!important}
body.app-ui-v314 :where(th){background:var(--app-surface-2)!important;color:var(--app-muted)!important}
body.app-ui-v314 :where(td,th){border-color:var(--app-soft-border)!important}

body.app-ui-v314 :where(.button,.auth-button,button){font-family:inherit}
body.app-ui-v314 :where(.button-primary,.auth-button-primary){background:var(--user-primary)!important;color:var(--user-primary-contrast)!important;border-color:transparent!important}
body.app-ui-v314 :where(.button-secondary,.auth-button-secondary){background:var(--app-surface-2)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 :where(.button-danger){background:#a92424!important;color:#fff!important;border-color:#c43a3a!important}
body.app-ui-v314 :where(.button,.auth-button):focus-visible{outline:none!important;box-shadow:var(--app-focus)!important}

/* Keine zufälligen Blau-/Grün-Akzente in dekorativen UI-Elementen. Semantische
   Erfolg-/Fehlerfarben bleiben bewusst erhalten. */
body.app-ui-v314 :where(.nav-icon,.profile-v2-avatar,.experience-guide>div>span,.counter,.sport-badge){
  background:color-mix(in srgb,var(--user-primary) 22%,var(--app-surface-2))!important;
  color:var(--app-text)!important;border-color:var(--app-soft-border)!important
}
body.app-ui-v314 :where(.profile-v2-avatar){background:var(--user-primary)!important;color:var(--user-primary-contrast)!important}

/* ---------- Bereichsnavigation: klar als Untermenü erkennbar ---------- */
body.app-ui-v314 :where(.profile-nav,.center-tabs,.tournament-workflow,.referee-quick-nav){
  background:var(--app-surface)!important;border:1px solid var(--app-soft-border)!important;
  border-radius:var(--user-radius)!important;box-shadow:none!important
}
body.app-ui-v314 :where(.profile-nav,.center-tabs,.tournament-workflow,.referee-quick-nav)::before{
  content:"Bereich";display:block;font-size:.65rem;font-weight:950;letter-spacing:.13em;text-transform:uppercase;
  color:var(--app-muted);margin:0 0 8px
}
body.app-ui-v314 .profile-nav{padding:12px!important}
body.app-ui-v314 .profile-nav-item{border-radius:calc(var(--user-radius)*.72)!important;color:var(--app-text)!important}
body.app-ui-v314 .profile-nav-item:hover{background:var(--app-hover)!important}
body.app-ui-v314 .profile-nav-item.active{background:color-mix(in srgb,var(--user-primary) 18%,var(--app-surface-2))!important;border-color:color-mix(in srgb,var(--user-primary) 52%,var(--app-soft-border))!important}
body.app-ui-v314 .center-tabs{padding:7px!important;display:flex!important;gap:5px!important;flex-wrap:wrap!important}
body.app-ui-v314 .center-tabs button{background:transparent!important;color:var(--app-muted)!important;border:0!important;border-radius:calc(var(--user-radius)*.68)!important;padding:10px 12px!important;font-weight:850!important}
body.app-ui-v314 .center-tabs button:hover{background:var(--app-hover)!important;color:var(--app-text)!important}
body.app-ui-v314 .center-tabs button.is-active{background:var(--user-primary)!important;color:var(--user-primary-contrast)!important}

/* ---------- Profil ---------- */
body.app-ui-v314 .profile-v2-layout{align-items:start!important;gap:18px!important}
body.app-ui-v314 .profile-v2-sidebar{position:sticky!important;top:calc(var(--app-nav-height) + 14px)!important}
body.app-ui-v314 .mini-profile-card{
  background:linear-gradient(145deg,color-mix(in srgb,var(--user-primary) 24%,var(--app-surface)),color-mix(in srgb,var(--user-accent) 12%,var(--app-surface)))!important
}
body.app-ui-v314 .profile-data-grid>*{background:var(--app-surface-2)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 .theme-preset{box-shadow:none!important}
body.app-ui-v314 .theme-preset.is-selected{border-color:var(--user-primary)!important;box-shadow:var(--app-focus)!important}

/* ---------- Admin-Wizard: Schrittleiste oben, nichts überlappt ---------- */
body.app-ui-v314.admin-wizard-page .admin-layout{display:block!important}
body.app-ui-v314 .wizard-shell{display:flex!important;flex-direction:column!important;gap:16px!important;background:transparent!important;border:0!important;box-shadow:none!important}
body.app-ui-v314 .wizard-progress{
  position:sticky;top:calc(var(--app-nav-height) + 10px);z-index:80;
  display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:7px!important;
  width:100%!important;padding:8px!important;margin:0!important;
  background:color-mix(in srgb,var(--app-surface) 96%,transparent)!important;
  border:1px solid var(--app-soft-border)!important;border-radius:var(--user-radius)!important;
  box-shadow:0 12px 34px rgba(0,0,0,.14)!important;backdrop-filter:blur(16px)
}
body.app-ui-v314 .wizard-progress button{
  min-width:0!important;min-height:48px!important;padding:7px 9px!important;
  display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:8px!important;
  background:transparent!important;color:var(--app-muted)!important;border:1px solid transparent!important;border-radius:calc(var(--user-radius)*.72)!important;box-shadow:none!important
}
body.app-ui-v314 .wizard-progress button span{background:var(--app-surface-2)!important;color:var(--app-text)!important}
body.app-ui-v314 .wizard-progress button.active{background:color-mix(in srgb,var(--user-primary) 16%,var(--app-surface-2))!important;color:var(--app-text)!important;border-color:color-mix(in srgb,var(--user-primary) 44%,var(--app-soft-border))!important}
body.app-ui-v314 .wizard-progress button.active span,
body.app-ui-v314 .wizard-progress button.completed span{background:var(--user-primary)!important;color:var(--user-primary-contrast)!important}
body.app-ui-v314 #tournament-wizard{display:block!important;width:100%!important}
body.app-ui-v314 .wizard-step{min-height:0!important;width:100%!important;margin:0!important}
body.app-ui-v314 .admin-sport-choice label>span,
body.app-ui-v314 .wizard-option-card>span{
  background:var(--app-surface-2)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important;box-shadow:none!important
}
body.app-ui-v314 .admin-sport-choice input:checked+span,
body.app-ui-v314 .wizard-option-card input:checked+span{
  background:color-mix(in srgb,var(--user-primary) 16%,var(--app-surface-2))!important;
  color:var(--app-text)!important;border-color:var(--user-primary)!important;box-shadow:var(--app-focus)!important
}
body.app-ui-v314 .wizard-option-card :where(strong,small){color:inherit!important}
body.app-ui-v314 .wizard-conditional-settings{background:var(--app-surface-2)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 .wizard-summary dl div{
  background:var(--app-surface-2)!important;color:var(--app-text)!important;
  border:1px solid var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.78)!important
}
body.app-ui-v314 .wizard-summary :where(dt){color:var(--app-muted)!important}
body.app-ui-v314 .wizard-summary :where(dd){color:var(--app-text)!important}
body.app-ui-v314 .wizard-summary-teams span{background:color-mix(in srgb,var(--user-primary) 14%,var(--app-surface-2))!important;color:var(--app-text)!important;border:1px solid var(--app-soft-border)!important}
body.app-ui-v314 .wizard-confirmation{background:var(--app-surface-2)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 .wizard-navigation{background:var(--app-surface)!important;border:1px solid var(--app-soft-border)!important;border-radius:var(--user-radius)!important;padding:10px!important}

/* ---------- Branding: funktionale Drop-Zonen statt unscheinbarer Inputs ---------- */
body.app-ui-v314 .branding-editor{background:var(--app-surface-2)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 .branding-field{position:relative;padding:12px;border:1px solid var(--app-soft-border);border-radius:calc(var(--user-radius)*.8);background:var(--app-surface)}
body.app-ui-v314 .branding-field input[type=file]{width:100%;padding:9px;background:var(--app-surface-2)!important}
body.app-ui-v314 .branding-preview{background:color-mix(in srgb,var(--app-surface-2) 78%,var(--app-bg))!important;border-color:color-mix(in srgb,var(--app-text) 20%,transparent)!important}
body.app-ui-v314 .branding-preview img{filter:none!important}
body.app-ui-v314 .branding-upload-state{font-size:.78rem;color:var(--app-muted);margin-top:6px}

/* ---------- Status-/Center-Bereiche ---------- */
body.app-ui-v314 :where(.system-grid,.center-stats){gap:10px!important}
body.app-ui-v314 :where(.system-grid>*,.center-stats>*){background:var(--app-surface)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 .center-card-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important}
body.app-ui-v314 .rights-mode{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0}
body.app-ui-v314 .rights-mode label{position:relative;cursor:pointer}
body.app-ui-v314 .rights-mode input{position:absolute;opacity:0;pointer-events:none}
body.app-ui-v314 .rights-mode span{display:grid;gap:3px;height:100%;padding:10px;border:1px solid var(--app-soft-border);border-radius:calc(var(--user-radius)*.72);background:var(--app-surface-2);color:var(--app-text)}
body.app-ui-v314 .rights-mode input:checked+span{border-color:var(--user-primary);background:color-mix(in srgb,var(--user-primary) 15%,var(--app-surface-2));box-shadow:var(--app-focus)}

/* ---------- Auth: gleiche Designfamilie ---------- */
body.app-ui-v314.auth-page-v31 .auth-shell{width:100%!important;max-width:none!important;margin:0!important}
body.app-ui-v314 .auth-brand{background:linear-gradient(145deg,color-mix(in srgb,var(--user-primary) 28%,var(--app-bg)),var(--app-bg))!important}
body.app-ui-v314 .auth-card{background:var(--app-surface)!important;border-color:var(--app-soft-border)!important}

/* ---------- Responsiv ---------- */
@media(max-width:900px){
  body.app-ui-v314 .global-app-nav-v314{grid-template-columns:auto minmax(0,1fr);gap:10px}
  body.app-ui-v314 .global-app-nav-link{padding:9px}.global-nav-icon{display:none}
  body.app-ui-v314 .profile-v2-sidebar{position:static!important}
  body.app-ui-v314 .wizard-progress button strong{font-size:.68rem!important}
}

@media(max-width:760px){
  body.app-ui-v314:not(.app-scoreboard){padding-bottom:82px!important}
  body.app-ui-v314 .global-app-nav-v314{position:relative;display:flex;justify-content:center;min-height:54px;padding:7px 12px!important}
  body.app-ui-v314 .global-app-nav-links{display:none!important}
  body.app-ui-v314 .global-app-brand-copy small{display:none}
  body.app-ui-v314 .global-mobile-nav-v314{
    position:fixed;display:flex!important;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:1600;
    gap:3px;padding:5px;background:color-mix(in srgb,var(--app-surface) 96%,transparent)!important;
    border:1px solid var(--app-soft-border)!important;border-radius:17px;box-shadow:0 18px 48px rgba(0,0,0,.32);backdrop-filter:blur(18px)
  }
  body.app-ui-v314 .global-mobile-nav-v314 a{flex:1;min-width:0;display:grid;place-items:center;gap:2px;padding:7px 3px;border-radius:12px;text-decoration:none;color:var(--app-muted)!important;font-size:.68rem;font-weight:850;overflow:hidden}
  body.app-ui-v314 .global-mobile-nav-v314 a.is-active{background:var(--user-primary)!important;color:var(--user-primary-contrast)!important}
  body.app-ui-v314 .global-mobile-icon{font-size:1rem;line-height:1.1}
  body.app-ui-v314 :where(.site-header,.center-hero,.profile-v2-hero){padding:24px 14px!important}
  body.app-ui-v314 :where(.page,.center-shell,.profile-v2-layout){width:min(100% - 20px,var(--app-max))!important}
  body.app-ui-v314 .wizard-progress{position:static;grid-template-columns:repeat(5,1fr)!important;overflow:visible!important}
  body.app-ui-v314 .wizard-progress button{display:grid!important;grid-template-columns:1fr!important;justify-items:center!important;min-height:44px!important;padding:6px 3px!important}
  body.app-ui-v314 .wizard-progress button strong{display:none!important}
  body.app-ui-v314 .wizard-summary dl,.admin-sport-choice,.wizard-option-grid{grid-template-columns:1fr!important}
  body.app-ui-v314 .wizard-navigation{position:sticky;bottom:82px;z-index:60}
  body.app-ui-v314 .center-tabs{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none}
  body.app-ui-v314 .center-tabs::before{display:none!important}
  body.app-ui-v314 .center-tabs button{flex:0 0 auto}
  body.app-ui-v314 .rights-mode{grid-template-columns:1fr}
}

@media(max-width:440px){
  body.app-ui-v314 .global-mobile-nav-v314 a{font-size:.62rem}
  body.app-ui-v314 .global-mobile-icon{font-size:.9rem}
  body.app-ui-v314 .center-card-grid{grid-template-columns:1fr!important}
}

/* Profil-spezifische Altflächen ebenfalls vollständig an das Benutzerthema koppeln. */
body.app-ui-v314 :where(.profile-identity-card,.next-assignment-card,.profile-mini-stats,.profile-overview-grid>* ,.profile-info-card){
  background:var(--app-surface)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important;box-shadow:none!important
}
body.app-ui-v314 .profile-identity-card{
  background:linear-gradient(145deg,color-mix(in srgb,var(--user-primary) 24%,var(--app-surface)),color-mix(in srgb,var(--user-accent) 12%,var(--app-surface)))!important
}
body.app-ui-v314 .profile-live{background:color-mix(in srgb,var(--user-accent) 18%,var(--app-surface-2))!important;color:var(--app-text)!important;border-color:color-mix(in srgb,var(--user-accent) 40%,var(--app-soft-border))!important}
body.app-ui-v314 .profile-live i{background:var(--user-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--user-accent) 20%,transparent)!important}
body.app-ui-v314 .profile-mini-stats>div{border-color:var(--app-soft-border)!important}
body.app-ui-v314 .next-field{background:var(--app-surface-2)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important}
body.app-ui-v314 :where(.profile-avatar,.profile-v2-avatar){background:var(--user-primary)!important;color:var(--user-primary-contrast)!important;border-color:color-mix(in srgb,var(--user-primary) 60%,var(--app-soft-border))!important}

/* =====================================================================
   V3.1.4 – Rollen-/Verwaltungsseiten und Designvorlagen
   ===================================================================== */

/* Verwaltungs-Untermenü: bewusst unter der Hauptnavigation statt
   wechselnder Buttons oben rechts. */
body.app-ui-v314 .global-context-nav-v314{
  position:sticky;top:var(--app-nav-height);z-index:1250;
  background:color-mix(in srgb,var(--app-bg) 92%,transparent);
  border-bottom:1px solid var(--app-soft-border);backdrop-filter:blur(16px)
}
body.app-ui-v314 .global-context-nav-inner{
  width:min(var(--app-max),calc(100% - (var(--app-gutter)*2)));margin:auto;
  min-height:52px;display:flex;align-items:center;gap:14px
}
body.app-ui-v314 .global-context-label{
  color:var(--app-muted);font-size:.7rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap
}
body.app-ui-v314 .global-context-links{display:flex;gap:5px;overflow:auto;scrollbar-width:none}
body.app-ui-v314 .global-context-links::-webkit-scrollbar{display:none}
body.app-ui-v314 .global-context-links a{
  min-height:36px;padding:7px 10px;border-radius:10px;display:flex;align-items:center;gap:7px;
  text-decoration:none;color:var(--app-muted);font-weight:820;white-space:nowrap;border:1px solid transparent
}
body.app-ui-v314 .global-context-links a:hover{background:var(--app-hover);color:var(--app-text)}
body.app-ui-v314 .global-context-links a.is-active{
  background:color-mix(in srgb,var(--user-primary) 17%,var(--app-surface));
  color:var(--app-text);border-color:color-mix(in srgb,var(--user-primary) 45%,var(--app-soft-border))
}

/* Schiedsrichter-Center: keine alte Türkis-Seite mehr, sondern dieselbe
   Informationsarchitektur wie Verwaltung/Owner. */
body.app-ui-v314.referee-center-page .center-hero{padding-bottom:34px!important}
body.app-ui-v314 .referee-center-panel{display:grid;gap:18px}
body.app-ui-v314 .referee-overview-head{display:flex;justify-content:space-between;align-items:end;gap:18px;flex-wrap:wrap}
body.app-ui-v314 .referee-overview-head h2{margin:.15rem 0 .35rem;font-size:clamp(1.45rem,3vw,2.05rem)}
body.app-ui-v314 .referee-overview-head p{margin:0;color:var(--app-muted)}
body.app-ui-v314 .referee-workflow-v314{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:0;margin:0
}
body.app-ui-v314 .referee-workflow-v314>div{
  min-height:76px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:11px;padding:13px;
  background:var(--app-surface-2);border:1px solid var(--app-soft-border);border-radius:calc(var(--user-radius)*.82)
}
body.app-ui-v314 .referee-workflow-v314 span{
  width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:950;
  background:var(--user-primary);color:var(--user-primary-contrast)
}
body.app-ui-v314 .referee-workflow-v314 small{display:block;margin-top:3px;color:var(--app-muted)}
body.app-ui-v314 .referee-sport-grid-v314{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body.app-ui-v314 .referee-sport-tournament-section{
  padding:16px!important;min-width:0;background:var(--app-surface)!important;border:1px solid var(--app-soft-border)!important
}
body.app-ui-v314 .referee-sport-section-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}
body.app-ui-v314 .referee-sport-section-heading>div{display:flex;align-items:center;gap:10px}
body.app-ui-v314 .referee-sport-section-heading h3{margin:0!important;font-size:1.1rem}
body.app-ui-v314 .referee-tournament-grid{display:grid;grid-template-columns:1fr!important;gap:10px!important}
body.app-ui-v314 .referee-tournament-card{
  position:relative;overflow:hidden;padding:0!important;background:var(--app-surface-2)!important;border:1px solid var(--app-soft-border)!important
}
body.app-ui-v314 .referee-tournament-card .card-accent{height:4px;background:var(--user-primary)!important}
body.app-ui-v314 .referee-tournament-card .card-accent.volleyball{background:var(--user-accent)!important}
body.app-ui-v314 .referee-tournament-card .card-content{padding:14px!important}
body.app-ui-v314 .referee-tournament-card h3{margin:10px 0!important;color:var(--app-text)!important}
body.app-ui-v314 .referee-tournament-card .meta-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:6px;color:var(--app-muted)}
body.app-ui-v314 .referee-tournament-card .meta-list li{display:flex;gap:8px;align-items:center}
body.app-ui-v314 .referee-tournament-card .meta-list strong{color:var(--app-text);font-weight:700}
body.app-ui-v314 .referee-tournament-card .card-topline{display:flex;justify-content:space-between;gap:8px;align-items:center}
body.app-ui-v314 .referee-date-state{font-size:.72rem;font-weight:850;color:var(--app-muted)}
body.app-ui-v314 .referee-sport-empty{padding:18px!important;text-align:center;background:var(--app-surface-2)!important;border-style:dashed!important}
body.app-ui-v314 .referee-sport-empty .empty-icon{font-size:1.5rem;margin-bottom:6px}
body.app-ui-v314 .referee-sport-empty h3{margin:.2rem 0}

/* Benutzerverwaltung: das alte eigenständige Seitenlayout wird in das
   gemeinsame Center-System eingepasst. */
body.app-ui-v314.user-admin-page{--bg:var(--app-bg);--surface:var(--app-surface);--surface-2:var(--app-surface-2);--surface-3:var(--app-surface-2);--text:var(--app-text);--muted:var(--app-muted);--border:var(--app-soft-border);--primary:var(--user-primary);--primary-strong:var(--user-primary);--radius:var(--user-radius)}
body.app-ui-v314.user-admin-page .app{width:min(var(--app-max),calc(100% - (var(--app-gutter)*2)))!important;padding:18px 0 46px!important;margin:auto!important}
body.app-ui-v314.user-admin-page .topbar{display:none!important}
body.app-ui-v314.user-admin-page .panel{background:var(--app-surface)!important;color:var(--app-text)!important;border-color:var(--app-soft-border)!important;border-radius:var(--user-radius)!important;box-shadow:0 16px 44px rgba(0,0,0,.14)!important}
body.app-ui-v314.user-admin-page .toolbar{grid-template-columns:minmax(240px,1fr) auto!important;gap:12px!important;margin-bottom:12px!important}
body.app-ui-v314.user-admin-page .filters{padding-top:4px}
body.app-ui-v314.user-admin-page .filter-button{background:var(--app-surface-2)!important;color:var(--app-muted)!important;border:1px solid var(--app-soft-border)!important}
body.app-ui-v314.user-admin-page .filter-button.active{background:var(--user-primary)!important;color:var(--user-primary-contrast)!important;border-color:transparent!important}
body.app-ui-v314.user-admin-page .stats{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))!important;gap:9px!important;margin:12px 0!important}
body.app-ui-v314.user-admin-page .stat{padding:12px!important;background:var(--app-surface-2)!important}
body.app-ui-v314.user-admin-page .stat span{color:var(--app-muted)!important}
body.app-ui-v314.user-admin-page .table-wrap{overflow:auto!important}
body.app-ui-v314.user-admin-page table{min-width:920px}
body.app-ui-v314.user-admin-page tbody tr:hover{background:var(--app-hover)!important}
body.app-ui-v314.user-admin-page .user-card{background:var(--app-surface-2)!important;border-color:var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.86)!important}
body.app-ui-v314.user-admin-page .role-select{background:var(--app-surface-2)!important;color:var(--app-text)!important}
body.app-ui-v314.user-admin-page .footer-note{margin:14px 4px 0!important}

/* Farbvorlagen: klare Auswahlmarkierung und sofortige Rückmeldung. */
body.app-ui-v314 .theme-preset-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(155px,1fr))!important;gap:9px!important}
body.app-ui-v314 .theme-preset{
  min-height:74px!important;display:grid!important;align-content:center!important;gap:7px!important;text-align:left!important;
  background:var(--app-surface-2)!important;color:var(--app-text)!important;border:1px solid var(--app-soft-border)!important;
  border-radius:calc(var(--user-radius)*.78)!important;padding:11px!important;position:relative
}
body.app-ui-v314 .theme-preset:hover{border-color:color-mix(in srgb,var(--user-primary) 55%,var(--app-soft-border))!important;transform:translateY(-1px)}
body.app-ui-v314 .theme-preset.is-selected{border-color:var(--user-primary)!important;box-shadow:var(--app-focus)!important}
body.app-ui-v314 .theme-preset.is-selected::after{content:"✓";position:absolute;right:9px;top:8px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--user-primary);color:var(--user-primary-contrast);font-weight:950;font-size:.75rem}
body.app-ui-v314 .theme-preset-swatches{display:flex;gap:4px}
body.app-ui-v314 .theme-preset-swatches i{width:22px;height:10px;border-radius:999px;border:1px solid rgba(255,255,255,.14)}

@media(max-width:820px){
  body.app-ui-v314 .global-context-nav-v314{top:54px}
  body.app-ui-v314 .global-context-nav-inner{min-height:46px;display:block;padding:6px 0}
  body.app-ui-v314 .global-context-label{display:none}
  body.app-ui-v314 .referee-sport-grid-v314{grid-template-columns:1fr}
}
@media(max-width:620px){
  body.app-ui-v314 .referee-workflow-v314{grid-template-columns:1fr}
  body.app-ui-v314.user-admin-page .toolbar{grid-template-columns:1fr!important}
  body.app-ui-v314.user-admin-page .session-info{justify-content:flex-start!important}
}

/* Sticky Elemente berücksichtigen die zusätzliche Verwaltungsleiste. */
body.app-ui-v314:has(.global-context-nav-v314){--app-context-height:52px}
body.app-ui-v314:has(.global-context-nav-v314) .wizard-progress{
  top:calc(var(--app-nav-height) + var(--app-context-height) + 10px)!important
}
@media(max-width:820px){
  body.app-ui-v314:has(.global-context-nav-v314){--app-context-height:46px;--app-nav-height:54px}
}

/* Gemeinsame Grundbausteine, damit neue Seiten nicht mehr von Legacy-style.css
   abhängig sind. */
body.app-ui-v314 .hidden{display:none!important}
body.app-ui-v314 .button{
  min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:9px 13px;border:1px solid var(--app-soft-border);border-radius:calc(var(--user-radius)*.72);
  background:var(--app-surface-2);color:var(--app-text);text-decoration:none;font-weight:820;cursor:pointer
}
body.app-ui-v314 .button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--user-primary) 55%,var(--app-soft-border))}
body.app-ui-v314 .counter,
body.app-ui-v314 .sport-badge{
  display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 9px;border-radius:999px;
  font-size:.75rem;font-weight:900;white-space:nowrap;border:1px solid var(--app-soft-border)
}

/* Schiedsrichter-Spielplan: komplexe Alt-Funktionen bleiben erhalten, aber
   die sichtbaren Flächen folgen dem neuen UI-System. */
body.app-ui-v314.app-referee-tournament .referee-schedule-page{display:grid;gap:14px;padding-block:18px 46px!important}
body.app-ui-v314.app-referee-tournament :where(.referee-schedule-tournament-details,.referee-match-status-section,.referee-result-editor-card){
  background:var(--app-surface)!important;color:var(--app-text)!important;border:1px solid var(--app-soft-border)!important;
  border-radius:var(--user-radius)!important;box-shadow:0 16px 44px rgba(0,0,0,.14)!important
}
body.app-ui-v314.app-referee-tournament .referee-match-status-section{padding:16px!important}
body.app-ui-v314.app-referee-tournament .tournament-detail-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important;gap:9px!important}
body.app-ui-v314.app-referee-tournament .detail-box{background:var(--app-surface-2)!important;color:var(--app-text)!important;border:1px solid var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.75)!important;padding:11px!important}
body.app-ui-v314.app-referee-tournament .detail-box span{color:var(--app-muted)!important}
body.app-ui-v314.app-referee-tournament .referee-status-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;margin-top:12px!important}
body.app-ui-v314.app-referee-tournament .referee-status-summary-item{background:var(--app-surface-2)!important;border:1px solid var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.72)!important;padding:10px!important}
body.app-ui-v314.app-referee-tournament .referee-status-summary-item span{color:var(--app-muted)!important}
body.app-ui-v314.app-referee-tournament .referee-status-empty{padding:16px!important;background:var(--app-surface-2)!important;color:var(--app-muted)!important;border:1px dashed var(--app-soft-border)!important;border-radius:calc(var(--user-radius)*.72)!important}
body.app-ui-v314.app-referee-tournament .referee-match-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))!important;gap:10px!important}
@media(max-width:620px){body.app-ui-v314.app-referee-tournament .referee-status-summary{grid-template-columns:1fr!important}}
body.app-ui-v314 .section-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(max-width:700px){body.app-ui-v314 .section-actions{width:100%}body.app-ui-v314 .section-actions .button{flex:1}}
