/* CTLG Portal Basis + Header wie Hauptseite */
* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:#030303;
  color:#fff;
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden
}

a {
  color:inherit;
  text-decoration:none
}

img {
  max-width:100%;
  display:block
}

button,input,textarea {
  font:inherit
}

.site-header {
  height:112px;
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:center;
  gap:34px;
  padding:0 clamp(18px,5vw,86px);
  background:rgba(0,0,0,.93);
  border-bottom:1px solid rgba(255,204,77,.12);
  backdrop-filter:blur(14px)
}

.brand {
  width:clamp(160px,15vw,265px);
  flex:0 0 auto
}

.brand img {
  width:100%;
  height:auto;
  object-fit:contain
}

.main-nav {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(18px,2.2vw,38px);
  flex:1;
  white-space:nowrap
}

.main-nav a {
  text-transform:uppercase;
  font-size:clamp(12px,.85vw,15px);
  font-weight:900;
  letter-spacing:.12em;
  color:#f2f2f2;
  position:relative;
  padding:14px 0
}

.main-nav a.active,.main-nav a:hover {
  color:#fff
}

.main-nav a.active:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:linear-gradient(90deg,#e3a21c,#ffd56d);
  box-shadow:0 0 18px #e3a21c
}

.header-actions {
  display:flex;
  gap:16px;
  flex:0 0 auto
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:52px;
  padding:0 34px;
  border-radius:4px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  border:1px solid rgba(234,176,50,.75);
  box-shadow:0 0 22px rgba(0,0,0,.3);
  white-space:nowrap
}

.btn-gold {
  background:linear-gradient(180deg,#ffd76c,#c58616);
  color:#fff
}

.btn-ghost {
  background:rgba(0,0,0,.28);
  color:#fff
}

.btn.active-action {
  box-shadow:0 0 22px rgba(234,176,50,.28),inset 0 0 0 1px rgba(255,255,255,.16)
}

.nav-toggle {
  display:none
}
.portal-header {
  position:sticky;
  top:0;
  z-index:100;
  min-height:86px;
  display:flex;
  align-items:center;
  gap:28px;
  padding:14px clamp(16px,4vw,70px);
  background:rgba(0,0,0,.94);
  border-bottom:1px solid rgba(255,200,70,.16);
  backdrop-filter:blur(16px)
}
.portal-brand {
  display:flex;
  align-items:center;
  gap:14px;
  min-width:260px
}
.brand-mark {
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border-radius:16px;
  background:linear-gradient(180deg,#ffd76c,#b67710);
  color:#120900;
  font-weight:1000;
  letter-spacing:.04em;
  box-shadow:0 0 34px rgba(226,164,39,.34)
}
.brand-text {
  font-size:13px;
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.14em;
  line-height:1.2;
  color:#f1f1f1
}
.portal-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:12px
}
.portal-nav a {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:#eee;
  background:rgba(255,255,255,.03);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em
}
.portal-nav a:hover {
  border-color:rgba(240,179,60,.65);
  background:rgba(240,179,60,.1)
}
.portal-nav-toggle {
  display:none;
  margin-left:auto;
  background:#111;
  color:#fff;
  border:1px solid #bf8d25;
  font-size:22px;
  border-radius:8px;
  width:48px;
  height:44px
}
.portal-main {
  width:min(1380px,calc(100% - 34px));
  margin:0 auto;
  padding:34px 0 60px
}
.flash {
  margin:0 0 18px;
  padding:16px 18px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  font-weight:800
}
.flash-success {
  background:rgba(34,197,94,.14);
  border-color:rgba(34,197,94,.42)
}
.flash-error {
  background:rgba(239,68,68,.14);
  border-color:rgba(239,68,68,.42)
}
.eyebrow {
  margin:0 0 12px;
  color:#f0b33c;
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.24em;
  font-size:12px
}
.lead {
  font-size:clamp(16px,1.5vw,21px);
  line-height:1.5;
  color:#ddd
}
.auth-shell {
  min-height:calc(100vh - 160px);
  display:grid;
  place-items:center;
  padding:35px 0
}
.auth-card {
  width:min(720px,100%);
  border:1px solid rgba(255,255,255,.13);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  box-shadow:0 30px 90px rgba(0,0,0,.55);
  padding:clamp(24px,4vw,46px)
}
.auth-card.wide {
  width:min(920px,100%)
}
.auth-card h1,.dashboard-hero h1,.page-title-row h1,.public-team-content h1,.player-public-copy h1 {
  margin:0;
  text-transform:uppercase;
  font-size:clamp(34px,5vw,72px);
  line-height:.95;
  letter-spacing:.02em
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:24px
}
.form-grid.single {
  grid-template-columns:1fr
}
.form-grid label {
  display:flex;
  flex-direction:column;
  gap:8px
}
.form-grid label span {
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#ddd
}
.form-grid input,.form-grid textarea {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:15px 16px;
  outline:none
}
.form-grid input:focus,.form-grid textarea:focus {
  border-color:#eab437;
  box-shadow:0 0 0 4px rgba(234,180,55,.12)
}
.form-grid textarea {
  resize:vertical;
  line-height:1.45
}
.full {
  grid-column:1/-1
}
.check {
  display:grid!important;
  grid-template-columns:22px 1fr;
  align-items:start;
  gap:12px!important;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.035)
}
.check input {
  width:18px;
  height:18px;
  margin-top:2px
}
.form-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:6px
}
.btn-primary,.btn-secondary,.btn-danger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:0 24px;
  border-radius:12px;
  border:1px solid rgba(234,176,50,.75);
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer
}
.btn-primary {
  background:linear-gradient(180deg,#ffd76c,#c58616);
  color:#150900
}
.btn-secondary {
  background:rgba(255,255,255,.06);
  color:#fff
}
.btn-danger {
  background:rgba(220,38,38,.18);
  border-color:rgba(220,38,38,.55);
  color:#fff
}
.small {
  min-height:38px;
  padding:0 14px;
  font-size:12px
}
.error-box {
  background:rgba(239,68,68,.14);
  border:1px solid rgba(239,68,68,.45);
  border-radius:14px;
  padding:14px 16px;
  margin:18px 0
}
.error-box p {
  margin:6px 0
}
.wide-box {
  width:min(1380px,100%)
}
.dashboard-hero {
  display:grid;
  grid-template-columns:1fr 280px;
  gap:22px;
  align-items:stretch;
  margin-bottom:24px;
  padding:clamp(26px,5vw,58px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:radial-gradient(circle at 90% 20%,rgba(240,179,60,.16),transparent 32%),linear-gradient(145deg,rgba(24,26,27,.97),rgba(6,7,8,.96))
}
.status-card {
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  padding:24px;
  background:rgba(255,255,255,.04)
}
.status-card span,.status-card em {
  color:#bbb;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-style:normal;
  font-size:12px;
  font-weight:900
}
.status-card strong {
  font-size:30px;
  text-transform:uppercase;
  color:#f0b33c;
  margin:8px 0
}
.dashboard-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}
.portal-panel {
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:28px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  min-height:240px
}
.portal-panel.muted {
  opacity:.82
}
.portal-panel h2 {
  font-size:26px;
  margin:0 0 14px
}
.portal-panel p {
  color:#d7d7d7;
  line-height:1.55
}
.panel-icon {
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:rgba(240,179,60,.13);
  color:#f0b33c;
  font-size:24px;
  margin-bottom:16px
}
.panel-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:20px
}
.page-title-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin:12px 0 24px
}
.page-title-row p {
  color:#ccc
}
.page-title-row.compact {
  margin-top:36px
}
.edit-shell {
  display:grid;
  grid-template-columns:360px 1fr;
  gap:22px;
  align-items:start
}
.edit-preview,.edit-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:24px
}
.edit-preview {
  position:sticky;
  top:112px;
  text-align:center
}
.team-cover {
  height:190px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.05);
  display:grid;
  place-items:center
}
.team-cover img {
  width:100%;
  height:100%;
  object-fit:cover
}
.empty-image {
  font-size:46px;
  color:#777
}
.team-logo-preview {
  width:120px;
  height:120px;
  border-radius:28px;
  margin:-50px auto 16px;
  background:#090909;
  border:1px solid rgba(240,179,60,.4);
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#f0b33c;
  font-size:44px
}
.team-logo-preview img {
  width:100%;
  height:100%;
  object-fit:cover
}
.edit-preview h2 {
  margin:0 0 8px;
  font-size:28px
}
.edit-preview p {
  color:#cfcfcf
}
.player-image-preview {
  width:210px;
  height:210px;
  margin:0 auto 18px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(240,179,60,.35);
  font-size:72px;
  color:#f0b33c
}
.player-image-preview img {
  width:100%;
  height:100%;
  object-fit:cover
}
.profile-icons {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:18px 0;
  color:#ddd
}
.form-section-title {
  margin:18px 0 0;
  font-size:22px;
  color:#f0b33c
}
.members-layout {
  display:grid;
  grid-template-columns:390px 1fr;
  gap:22px;
  align-items:start
}
.members-list {
  display:flex;
  flex-direction:column;
  gap:14px
}
.member-card {
  display:grid;
  grid-template-columns:76px 1fr auto;
  gap:16px;
  align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:18px
}
.member-avatar {
  width:76px;
  height:76px;
  border-radius:22px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(255,255,255,.06);
  font-size:28px;
  color:#f0b33c
}
.member-avatar img {
  width:100%;
  height:100%;
  object-fit:cover
}
.member-info h3 {
  margin:0 0 8px;
  font-size:22px
}
.member-info p {
  margin:7px 0;
  color:#cfcfcf
}
.badge {
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.1);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em
}
.badge.gold {
  background:rgba(240,179,60,.18);
  color:#ffd76c;
  border:1px solid rgba(240,179,60,.34)
}
.muted-badge {
  color:#bbb
}
.member-icons {
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.member-icons i {
  color:#f0b33c
}
.member-actions {
  display:flex;
  flex-direction:column;
  gap:8px;
  align-items:stretch
}
.public-team-hero {
  position:relative;
  min-height:420px;
  border-radius:26px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  background:#090909;
  margin-bottom:24px
}
.public-team-bg {
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 82% 20%,rgba(240,179,60,.2),transparent 38%),linear-gradient(145deg,#161819,#050505)
}
.public-team-bg img {
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.72;
  filter:contrast(1.08) brightness(1.08)
}
.public-team-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.16),rgba(0,0,0,.40))
}
.public-team-content {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:26px;
  min-height:420px;
  padding:clamp(28px,5vw,64px)
}
.public-team-logo {
  width:160px;
  height:160px;
  border-radius:36px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(0,0,0,.7);
  border:1px solid rgba(240,179,60,.45);
  font-size:70px;
  color:#f0b33c
}
.public-team-logo img {
  width:100%;
  height:100%;
  object-fit:cover
}
.public-status {
  display:inline-flex;
  margin-left:10px;
  border:1px solid rgba(240,179,60,.35);
  border-radius:999px;
  padding:5px 10px;
  color:#ffd76c;
  font-size:12px;
  text-transform:uppercase;
  font-weight:900
}
.public-content-grid {
  display:grid;
  grid-template-columns:1.5fr .9fr;
  gap:18px;
  margin-bottom:18px
}
.big-text p {
  font-size:18px
}
.public-section {
  margin-top:24px
}
.public-player-grid,.team-list-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px
}
.public-player-card,.team-list-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:22px;
  text-align:center
}
.public-player-img,.team-list-logo {
  width:130px;
  height:130px;
  margin:0 auto 16px;
  border-radius:28px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  color:#f0b33c;
  font-size:52px;
  border:1px solid rgba(240,179,60,.25)
}
.public-player-img img,.team-list-logo img {
  width:100%;
  height:100%;
  object-fit:cover
}
.public-player-card h3,.team-list-card h2 {
  margin:0 0 8px;
  font-size:22px
}
.public-player-card p,.team-list-card p {
  color:#cfcfcf
}
.material-line {
  font-size:14px
}
.material-line i {
  color:#f0b33c
}
.player-public-hero {
  display:grid;
  grid-template-columns:260px 1fr;
  gap:28px;
  align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:radial-gradient(circle at 82% 20%,rgba(240,179,60,.18),transparent 35%),linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:clamp(26px,5vw,56px);
  margin-bottom:22px
}
.player-public-image {
  width:240px;
  height:240px;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(240,179,60,.38);
  font-size:82px;
  color:#f0b33c
}
.player-public-image img {
  width:100%;
  height:100%;
  object-fit:cover
}
.public-contact-icons {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px
}
.public-contact-icons a,.public-contact-icons span {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  color:#eee;
  font-weight:900
}
.public-contact-icons i {
  color:#f0b33c
}
.material-list {
  display:flex;
  flex-direction:column;
  gap:10px
}
.material-list div {
  display:grid;
  grid-template-columns:130px 1fr;
  gap:14px;
  padding:12px;
  border-radius:14px;
  background:rgba(255,255,255,.045)
}
.material-list span {
  color:#aaa
}
.material-list strong {
  color:#fff
}
@media (max-width:1150px) {
  .dashboard-grid,.public-player-grid,.team-list-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .edit-shell,.members-layout {
    grid-template-columns:1fr
  }
  .edit-preview {
    position:relative;
    top:auto
  }
  .public-content-grid {
    grid-template-columns:1fr
  }
}
@media (max-width:820px) {
  .portal-header {
    flex-wrap:wrap
  }
  .portal-brand {
    min-width:0
  }
  .brand-text {
    display:none
  }
  .portal-nav-toggle {
    display:block
  }
  .portal-nav {
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    margin-left:0
  }
  .portal-nav.open {
    display:flex
  }
  .portal-nav a {
    border-radius:12px
  }
  .portal-main {
    width:calc(100% - 22px);
    padding-top:20px
  }
  .form-grid,.dashboard-hero,.member-card,.player-public-hero {
    grid-template-columns:1fr
  }
  .dashboard-grid,.public-player-grid,.team-list-grid {
    grid-template-columns:1fr
  }
  .public-team-content {
    flex-direction:column;
    align-items:flex-start
  }
  .public-team-logo {
    width:120px;
    height:120px;
    font-size:52px
  }
  .member-actions {
    flex-direction:row;
    flex-wrap:wrap
  }
  .auth-card h1,.dashboard-hero h1,.page-title-row h1,.public-team-content h1,.player-public-copy h1 {
    font-size:42px
  }
  .page-title-row {
    align-items:flex-start;
    flex-direction:column
  }
  .player-public-image {
    width:190px;
    height:190px
  }
  .material-list div {
    grid-template-columns:1fr
  }
  .form-actions .btn-primary,.form-actions .btn-secondary {
    width:100%
  }
}


@media (max-width:1250px) {
  .site-header {
    gap:18px
  }
  .header-actions .btn {
    padding:0 20px
  }
}

@media (max-width:980px) {
  .site-header {
    height:auto;
    min-height:84px;
    flex-wrap:wrap;
    padding:10px 18px
  }
  .brand {
    width:185px
  }
  .nav-toggle {
    display:block;
    margin-left:auto;
    background:#111;
    color:#fff;
    border:1px solid #bf8d25;
    font-size:26px;
    border-radius:4px;
    width:48px;
    height:44px
  }
  .main-nav,.header-actions {
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .main-nav.open,.header-actions.open {
    display:flex
  }
  .main-nav a {
    padding:14px;
    border-top:1px solid rgba(255,255,255,.1)
  }
  .header-actions {
    padding-bottom:12px
  }
}

@media (max-width:560px) {
  .brand {
    width:154px
  }
  .btn {
    width:100%;
    padding:0 18px
  }
}


/* =========================
   CTLG Phase 2: Admin, Status, Freigabe
   ========================= */
.status-pill,
.public-status {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.06em;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#eee;
  white-space:nowrap;
}

.status-pending {
  border-color:rgba(240,179,60,.45)!important;
  background:rgba(240,179,60,.12)!important;
  color:#ffd76c!important;
}

.status-approved,
.status-active {
  border-color:rgba(34,197,94,.45)!important;
  background:rgba(34,197,94,.12)!important;
  color:#86efac!important;
}

.status-blocked {
  border-color:rgba(239,68,68,.48)!important;
  background:rgba(239,68,68,.13)!important;
  color:#fca5a5!important;
}

.status-draft,
.status-unknown {
  border-color:rgba(148,163,184,.35)!important;
  background:rgba(148,163,184,.10)!important;
  color:#cbd5e1!important;
}

.status-info {
  display:grid;
  grid-template-columns:72px 1fr;
  gap:18px;
  align-items:center;
  min-height:auto;
  margin-bottom:18px;
}

.admin-highlight {
  border-color:rgba(240,179,60,.35);
  box-shadow:0 0 34px rgba(240,179,60,.08);
}

.admin-nav {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 22px;
}

.admin-nav a {
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
  color:#eee;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:13px;
}

.admin-nav a.active,
.admin-nav a:hover,
.active-filter {
  border-color:rgba(240,179,60,.7)!important;
  background:rgba(240,179,60,.13)!important;
  color:#ffd76c!important;
}

.admin-stat-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-bottom:18px;
}

.admin-stat-grid .portal-panel {
  min-height:170px;
}

.admin-stat-grid h2 {
  font-size:44px;
  margin:0 0 8px;
  color:#f0b33c;
}

.filter-row,
.filter-form {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin:0 0 18px;
}

.filter-form input,
.filter-form select,
.role-form select,
.captain-select-form select {
  min-height:44px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:12px;
  color:#fff;
  padding:0 14px;
  outline:none;
}

.filter-form input {
  min-width:min(360px,100%);
}

.table-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  overflow:hidden;
}

.table-responsive {
  width:100%;
  overflow-x:auto;
}

.admin-table {
  width:100%;
  border-collapse:collapse;
  min-width:860px;
}

.admin-table th,
.admin-table td {
  padding:18px;
  border-bottom:1px solid rgba(255,255,255,.10);
  text-align:left;
  vertical-align:middle;
}

.admin-table th {
  color:#f0b33c;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  background:rgba(255,255,255,.035);
}

.admin-table td span {
  color:#aaa;
}

.admin-table tr:last-child td {
  border-bottom:0;
}

.admin-actions-row {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}

.inline-form {
  display:inline-flex;
  margin:0;
}

.role-form {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}

.role-pill {
  border-color:rgba(96,165,250,.35);
  background:rgba(96,165,250,.10);
  color:#bfdbfe;
}

.empty-state {
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:34px;
  text-align:center;
}

.empty-state .panel-icon {
  margin:0 auto 16px;
}

.admin-team-hero {
  display:grid;
  grid-template-columns:260px 1fr 320px;
  gap:22px;
  align-items:stretch;
  margin-bottom:18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  padding:22px;
}

.admin-team-image {
  min-height:210px;
  border-radius:18px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(255,255,255,.05);
  color:#f0b33c;
  font-size:58px;
}

.admin-team-image img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.admin-team-main h2 {
  margin:14px 0 8px;
  font-size:clamp(28px,4vw,52px);
  text-transform:uppercase;
  line-height:.98;
}

.admin-team-main p {
  color:#d6d6d6;
}

.admin-team-status-box {
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:18px;
  background:rgba(255,255,255,.035);
}

.admin-team-status-box h3 {
  margin:0 0 14px;
}

.status-button-grid {
  display:grid;
  gap:10px;
}

.status-button-grid form,
.status-button-grid button {
  width:100%;
}

.captain-select-form {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:flex-end;
  margin:0 0 18px;
  padding:18px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}

.captain-select-form label {
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
  min-width:260px;
}

.captain-select-form span {
  text-transform:uppercase;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.08em;
  color:#ddd;
}

/* Teamfoto-Layer heller als vorher */
.public-team-bg img {
  opacity:.82;
  filter:contrast(1.08) brightness(1.16);
}

.public-team-hero:after {
  background:linear-gradient(90deg,rgba(0,0,0,.38),rgba(0,0,0,.08),rgba(0,0,0,.26));
}

@media (max-width:1150px) {
  .admin-stat-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .admin-team-hero {
    grid-template-columns:1fr;
  }
}

@media (max-width:820px) {
  .status-info {
    grid-template-columns:1fr;
  }

  .admin-stat-grid {
    grid-template-columns:1fr;
  }

  .filter-form input,
  .filter-form select,
  .filter-form button,
  .filter-form a,
  .captain-select-form button {
    width:100%;
  }
}

/* Phase 3: Team-Ortssuche, Halle und Verein */
.field-help {
  display:block;
  margin-top:7px;
  color:#aaa;
  font-size:12px;
  line-height:1.45;
  text-transform:none!important;
  letter-spacing:0!important;
  font-weight:600!important;
}

.location-search-wrap {
  position:relative;
}

.location-results {
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  z-index:30;
  border:1px solid rgba(240,179,60,.38);
  border-radius:16px;
  overflow:hidden;
  background:rgba(8,9,10,.98);
  box-shadow:0 20px 50px rgba(0,0,0,.6);
}

.location-result-item {
  width:100%;
  display:block;
  padding:13px 15px;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:transparent;
  color:#fff;
  text-align:left;
  cursor:pointer;
}

.location-result-item:last-child {
  border-bottom:0;
}

.location-result-item:hover,
.location-result-item:focus {
  background:rgba(240,179,60,.12);
  outline:none;
}

.location-result-item strong {
  display:block;
  margin-bottom:4px;
  color:#ffd76c;
}

.location-result-item span {
  display:block;
  color:#bbb;
  font-size:12px;
  line-height:1.35;
}

.location-attribution {
  padding:9px 15px;
  background:rgba(255,255,255,.035);
  color:#999;
  font-size:11px;
  line-height:1.35;
}

.profile-icons a {
  color:#ddd;
}

.profile-icons a i {
  color:#f0b33c;
}

.public-contact-icons .status-approved,
.public-contact-icons .status-pending,
.public-contact-icons .status-blocked,
.public-contact-icons .status-draft {
  color:#eee;
}

/* Phase 4: Passwort vergessen + Kontaktformular */
.auth-card .form-actions .btn-secondary {
  margin-top:0;
}

.hp-field {
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.privacy-note {
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:rgba(255,255,255,.045);
  color:#d8d8d8;
  line-height:1.45;
}

.privacy-note i {
  color:#f0b33c;
  margin-top:2px;
}

.admin-stat-grid {
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}

.admin-filter-row {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin:0 0 18px;
}

.contact-message-list {
  display:flex;
  flex-direction:column;
  gap:16px;
}

.contact-message-card {
  min-height:auto;
}

.contact-message-head {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:start;
}

.contact-message-head h2 {
  margin:0 0 10px;
}

.contact-message-head p {
  margin:8px 0;
}

.contact-message-body {
  margin-top:18px;
  padding:18px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.28);
  color:#eee;
  line-height:1.55;
}

.contact-message-card.status-failed {
  border-color:rgba(239,68,68,.45);
}

.contact-message-card.status-archived {
  opacity:.72;
}

@media (max-width:820px) {
  .contact-message-head {
    grid-template-columns:1fr;
  }
}

/* Phase 5: Teamfinder, Designkarte und Saisonverwaltung */
.form-grid select,
.filter-form select,
.teamfinder-filter-form select,
.teamfinder-map-actions select {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:15px 16px;
  outline:none;
}

.form-grid select:focus,
.filter-form select:focus,
.teamfinder-filter-form select:focus,
.teamfinder-map-actions select:focus {
  border-color:#eab437;
  box-shadow:0 0 0 4px rgba(234,180,55,.12);
}

.teamfinder-hero {
  position:relative;
  min-height:310px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:26px;
  overflow:hidden;
  margin:0 0 22px;
  background:#050505;
  box-shadow:0 28px 90px rgba(0,0,0,.52);
}

.teamfinder-hero-bg {
  position:absolute;
  inset:0;
  background-position:center;
  background-size:cover;
  opacity:.88;
  filter:contrast(1.08) brightness(1.08) saturate(1.05);
}

.teamfinder-hero:before {
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 78% 20%,rgba(255,205,85,.23),transparent 33%),
    linear-gradient(90deg,rgba(0,0,0,.90),rgba(0,0,0,.34),rgba(0,0,0,.74));
  z-index:1;
}

.teamfinder-hero:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background-image:radial-gradient(rgba(255,210,93,.55) 1px,transparent 1px);
  background-size:44px 44px;
  opacity:.14;
}

.teamfinder-hero-content {
  position:relative;
  z-index:3;
  min-height:310px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:30px;
  padding:clamp(28px,5vw,58px);
}

.teamfinder-hero-content h1 {
  margin:0;
  text-transform:uppercase;
  font-size:clamp(48px,6.2vw,92px);
  line-height:.9;
  letter-spacing:.02em;
}

.teamfinder-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  min-width:min(440px,100%);
}

.teamfinder-stats div {
  min-height:108px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:18px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:18px;
  background:rgba(0,0,0,.58);
  box-shadow:inset 0 0 0 1px rgba(240,179,60,.08);
}

.teamfinder-stats strong {
  font-size:34px;
  color:#ffd76c;
  line-height:1;
}

.teamfinder-stats span {
  margin-top:8px;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-size:12px;
  font-weight:900;
  color:#ddd;
}

.teamfinder-filter-panel {
  min-height:auto;
  margin-bottom:22px;
}

.teamfinder-filter-form {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr auto;
  gap:16px;
  align-items:end;
}

.teamfinder-filter-form label {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.teamfinder-filter-form label span {
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#ddd;
}

.teamfinder-filter-form input {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:15px 16px;
  outline:none;
}

.teamfinder-filter-form input:focus {
  border-color:#eab437;
  box-shadow:0 0 0 4px rgba(234,180,55,.12);
}

.teamfinder-filter-actions {
  display:flex;
  gap:10px;
  align-items:center;
}

.teamfinder-map-shell {
  position:relative;
  overflow:hidden;
  margin:0 0 24px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  box-shadow:0 26px 80px rgba(0,0,0,.45);
}

.teamfinder-map-head {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-end;
  padding:26px 28px 20px;
  border-bottom:1px solid rgba(255,255,255,.1);
}

.teamfinder-map-head h2 {
  margin:0 0 8px;
  font-size:clamp(28px,2.4vw,44px);
  text-transform:uppercase;
}

.teamfinder-map-head p {
  margin:0;
  color:#cfcfcf;
}

.teamfinder-map-actions {
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.teamfinder-map-actions select {
  min-width:190px;
}

.team-map {
  width:100%;
  height:min(62vh,620px);
  min-height:430px;
  background:#060606;
}

.team-map .leaflet-tile-pane {
  filter:grayscale(1) invert(1) brightness(.72) contrast(1.12) sepia(.18) saturate(1.5);
}

.team-map .leaflet-container,
.team-map.leaflet-container {
  background:#050505;
}

.ctlg-map-marker {
  width:28px!important;
  height:28px!important;
  margin-left:-14px!important;
  margin-top:-14px!important;
}

.ctlg-map-marker span {
  display:block;
  width:28px;
  height:28px;
  border-radius:50%;
  background:radial-gradient(circle,#fff5c5 0 14%,#ffd76c 15% 42%,#c58616 43% 100%);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 0 18px rgba(255,210,90,.92),0 0 34px rgba(240,179,60,.42);
}

.team-map-popup {
  min-width:190px;
  color:#111;
}

.team-map-popup-logo {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:#090909;
  color:#c58616;
  margin-bottom:10px;
}

.team-map-popup-logo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.team-map-popup strong,
.team-map-popup span,
.team-map-popup a {
  display:block;
}

.team-map-popup strong {
  font-size:16px;
  margin-bottom:5px;
}

.team-map-popup span {
  color:#444;
  margin:4px 0;
}

.team-map-popup a {
  margin-top:9px;
  color:#8a5b00;
  font-weight:900;
}

.map-empty {
  min-height:430px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  padding:30px;
  text-align:center;
  color:#ddd;
}

.map-empty strong {
  font-size:24px;
  color:#ffd76c;
}

.map-note {
  margin:0;
  padding:12px 18px;
  color:#999;
  font-size:12px;
  border-top:1px solid rgba(255,255,255,.08);
}

.teamfinder-team-grid .team-list-card[hidden] {
  display:none;
}

.team-card-facts {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:16px 0 18px;
  color:#d7d7d7;
  font-size:14px;
}

.team-card-facts i {
  color:#f0b33c;
  width:18px;
}

.season-admin-info {
  min-height:auto;
  display:grid;
  grid-template-columns:70px 1fr;
  gap:18px;
  align-items:center;
  margin:0 0 22px;
}

.season-admin-info h2 {
  margin:0 0 8px;
}

.season-admin-list {
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}

.season-admin-card {
  min-height:auto;
}

.active-season-card {
  border-color:rgba(240,179,60,.42);
  box-shadow:0 0 40px rgba(240,179,60,.08);
}

.season-card-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.season-card-head h2 {
  margin:0;
  font-size:30px;
}

.season-create-card {
  min-height:auto;
  margin-top:22px;
}

@media (max-width:1100px) {
  .teamfinder-hero-content,
  .teamfinder-filter-form {
    grid-template-columns:1fr;
  }

  .teamfinder-stats {
    min-width:0;
  }

  .teamfinder-filter-actions .btn-primary,
  .teamfinder-filter-actions .btn-secondary {
    flex:1;
  }
}

@media (max-width:820px) {
  .teamfinder-hero-content {
    align-items:start;
  }

  .teamfinder-stats {
    grid-template-columns:1fr;
  }

  .teamfinder-stats div {
    min-height:82px;
  }

  .teamfinder-map-head {
    flex-direction:column;
    align-items:stretch;
  }

  .teamfinder-map-actions,
  .teamfinder-map-actions select,
  .teamfinder-map-actions button {
    width:100%;
  }

  .team-map {
    min-height:360px;
    height:56vh;
  }

  .season-admin-info {
    grid-template-columns:1fr;
  }

  .season-card-head {
    flex-direction:column;
  }
}

.btn-primary:disabled,
.btn-secondary:disabled,
.btn-danger:disabled {
  opacity:.45;
  cursor:not-allowed;
}

/* =========================
   CTLG Phase 6 - Matchanfragen
   ========================= */

.form-grid select,
.match-action-form select,
.match-toolbar-panel select,
.match-counter-form select {
  width:100%;
  min-height:48px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:0 16px;
  outline:none;
}

.form-grid select:focus,
.match-action-form select:focus,
.match-toolbar-panel select:focus,
.match-counter-form select:focus {
  border-color:#eab437;
  box-shadow:0 0 0 4px rgba(234,180,55,.12);
}

.status-requested {
  border-color:rgba(240,179,60,.45)!important;
  background:rgba(240,179,60,.12)!important;
  color:#ffd76c!important;
}

.status-countered {
  border-color:rgba(96,165,250,.45)!important;
  background:rgba(96,165,250,.13)!important;
  color:#bfdbfe!important;
}

.status-accepted,
.status-lineup_pending,
.status-completed {
  border-color:rgba(34,197,94,.45)!important;
  background:rgba(34,197,94,.12)!important;
  color:#86efac!important;
}

.status-declined,
.status-cancelled {
  border-color:rgba(239,68,68,.48)!important;
  background:rgba(239,68,68,.13)!important;
  color:#fca5a5!important;
}

.match-request-layout,
.match-detail-grid {
  display:grid;
  grid-template-columns:.9fr 1.3fr;
  gap:22px;
  align-items:start;
}

.match-versus-card {
  position:sticky;
  top:128px;
}

.match-team-mini {
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:18px;
  background:rgba(255,255,255,.045);
}

.match-team-mini strong {
  display:block;
  font-size:24px;
  margin-bottom:6px;
}

.match-team-mini span {
  color:#aaa;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:900;
}

.match-vs {
  display:grid;
  place-items:center;
  width:70px;
  height:70px;
  margin:18px auto;
  border-radius:50%;
  background:linear-gradient(180deg,#ffd76c,#c58616);
  color:#150900;
  font-weight:1000;
  letter-spacing:.08em;
  box-shadow:0 0 34px rgba(240,179,60,.22);
}

.match-date-grid {
  margin-top:0;
}

.match-neutral-location {
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  padding:16px;
  background:rgba(255,255,255,.035);
}

.match-stat-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-bottom:18px;
}

.match-stat-grid .portal-panel {
  min-height:150px;
}

.match-stat-grid h2 {
  font-size:44px;
  margin:0 0 8px;
  color:#f0b33c;
}

.match-toolbar-panel {
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  margin-bottom:18px;
}

.match-card-list {
  display:grid;
  gap:16px;
}

.match-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
}

.match-card.needs-attention {
  border-color:rgba(240,179,60,.45);
  box-shadow:0 0 34px rgba(240,179,60,.09);
}

.match-card-head {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:14px;
}

.match-card-teams {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  font-size:clamp(24px,3vw,42px);
  text-transform:uppercase;
  font-weight:1000;
  letter-spacing:.02em;
}

.match-card-teams b {
  color:#f0b33c;
  font-size:.65em;
}

.match-card-meta {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:16px 0 0;
}

.match-card-meta span {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:#ddd;
}

.match-card-meta i,
.challenge-link i {
  color:#f0b33c;
}

.attention-note {
  color:#ffd76c!important;
  font-weight:900;
}

.match-scoreboard {
  min-height:auto;
}

.match-versus-line {
  display:grid;
  grid-template-columns:1fr 70px 1fr;
  gap:16px;
  align-items:center;
  text-align:center;
  margin:22px 0;
}

.match-versus-line strong {
  display:block;
  font-size:clamp(22px,3vw,36px);
  text-transform:uppercase;
}

.match-versus-line span {
  color:#aaa;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:900;
}

.match-versus-line b {
  display:grid;
  place-items:center;
  width:70px;
  height:70px;
  border-radius:50%;
  margin:auto;
  background:rgba(240,179,60,.14);
  border:1px solid rgba(240,179,60,.38);
  color:#ffd76c;
}

.match-action-form {
  display:grid;
  gap:14px;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.10);
}

.match-action-form:first-of-type {
  border-top:0;
  padding-top:0;
}

.match-action-form label {
  display:flex;
  flex-direction:column;
  gap:8px;
}

.match-action-form label span {
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#ddd;
}

.match-action-form textarea,
.role-form input[type="text"] {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:15px 16px;
  outline:none;
  resize:vertical;
}

.danger-zone {
  border-color:rgba(239,68,68,.25);
}

.counter-box {
  margin-top:18px;
  padding:18px;
  border:1px solid rgba(96,165,250,.32);
  border-radius:18px;
  background:rgba(96,165,250,.08);
}

.counter-box h3 {
  margin:0 0 10px;
  color:#bfdbfe;
}

.timeline-list {
  display:grid;
  gap:12px;
}

.timeline-item {
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  padding:14px;
  background:rgba(255,255,255,.035);
}

.timeline-item strong,
.timeline-item span {
  display:block;
}

.timeline-item span {
  color:#aaa;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-top:4px;
}

.timeline-item p {
  margin:10px 0 0;
  color:#ddd;
}

.team-card-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:14px;
}

.public-contact-icons .challenge-link {
  background:linear-gradient(180deg,#ffd76c,#c58616);
  color:#140900;
  border-color:rgba(255,215,108,.85);
}

@media (max-width:1050px) {
  .match-request-layout,
  .match-detail-grid,
  .match-stat-grid {
    grid-template-columns:1fr;
  }

  .match-versus-card {
    position:relative;
    top:auto;
  }

  .match-toolbar-panel {
    flex-direction:column;
    align-items:stretch;
  }
}

@media (max-width:680px) {
  .match-card-teams,
  .match-card-meta,
  .match-toolbar-panel .filter-form,
  .team-card-actions {
    flex-direction:column;
    align-items:stretch;
  }

  .match-card-teams {
    font-size:28px;
  }

  .match-versus-line {
    grid-template-columns:1fr;
  }
}

/* Phase 8 - Verfügbarkeitsabfrage */
.availability-panel {
  margin:22px 0;
}

.availability-panel-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:22px;
}

.availability-panel-head h2 {
  margin:0 0 10px;
  font-size:30px;
}

.availability-panel-head p {
  margin:0;
  color:#cfcfcf;
  line-height:1.55;
}

.availability-team-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}

.availability-team-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  background:rgba(255,255,255,.035);
  padding:20px;
}

.availability-team-title {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:14px;
}

.availability-team-title h3 {
  margin:0;
  font-size:24px;
}

.availability-team-title span {
  color:#b9b9b9;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.availability-summary-grid {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-bottom:16px;
}

.availability-summary {
  min-height:86px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(255,255,255,.045);
}

.availability-summary strong {
  font-size:34px;
  line-height:1;
}

.availability-summary span {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  color:#ddd;
}

.availability-summary.yes strong,
.availability-status-pill.status-yes,
.availability-choice.yes i {
  color:#74f08b;
}

.availability-summary.no strong,
.availability-status-pill.status-no,
.availability-choice.no i {
  color:#ff7070;
}

.availability-summary.pending strong,
.availability-status-pill.status-pending {
  color:#f0b33c;
}

.availability-hint {
  display:flex;
  align-items:center;
  gap:8px;
  margin:10px 0 16px;
  font-weight:900;
}

.availability-hint.good {
  color:#74f08b;
}

.availability-hint.warn {
  color:#f0b33c;
}

.availability-start-form {
  margin:16px 0;
  padding:16px;
  border:1px solid rgba(240,179,60,.24);
  border-radius:18px;
  background:rgba(240,179,60,.06);
}

.availability-start-form h4 {
  margin:0 0 12px;
  color:#f0b33c;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.availability-list {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
}

.availability-row {
  display:grid;
  grid-template-columns:54px 1fr auto;
  align-items:center;
  gap:14px;
  padding:12px;
  border-radius:16px;
  background:rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.08);
}

.availability-row strong {
  display:block;
  font-size:16px;
}

.availability-row span {
  display:block;
  color:#bdbdbd;
  font-size:13px;
  margin-top:3px;
}

.availability-row p {
  margin:8px 0 0;
  color:#e7e7e7;
  line-height:1.45;
}

.small-avatar {
  width:54px;
  height:54px;
  border-radius:16px;
  font-size:21px;
}

.availability-status-pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:86px;
  min-height:36px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.1);
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:12px;
}

.availability-inline-form {
  margin:-2px 0 8px 68px;
  padding:12px;
  border-left:3px solid rgba(240,179,60,.4);
  background:rgba(255,255,255,.025);
  border-radius:0 14px 14px 0;
}

.availability-inline-form label {
  display:flex;
  flex-direction:column;
  gap:7px;
}

.availability-inline-form label span {
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#ccc;
  font-weight:900;
}

.availability-inline-form textarea {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:12px;
  color:#fff;
  padding:12px 14px;
  outline:none;
  resize:vertical;
}

.availability-choice-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.availability-choice {
  min-height:155px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  color:#fff;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-align:center;
}

.availability-choice i {
  font-size:42px;
}

.availability-choice strong {
  font-size:30px;
  text-transform:uppercase;
}

.availability-choice span {
  color:#ccc;
  font-weight:900;
}

.availability-confirm-box,
.success-hero-box {
  margin:22px 0;
  padding:20px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
}

.availability-confirm-box h2 {
  margin:0 0 8px;
}

.success-hero-box {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
}

.success-hero-box i {
  font-size:44px;
  color:#74f08b;
}

.success-hero-box strong {
  font-size:24px;
}

.success-hero-box span {
  color:#d6d6d6;
}

.attention-note.inline {
  display:inline-block;
  margin-top:10px;
}

@media (max-width:980px) {
  .availability-team-grid,
  .availability-choice-grid {
    grid-template-columns:1fr;
  }

  .availability-panel-head,
  .availability-team-title {
    flex-direction:column;
  }

  .availability-row {
    grid-template-columns:54px 1fr;
  }

  .availability-status-pill {
    grid-column:1 / -1;
    justify-content:flex-start;
  }

  .availability-inline-form {
    margin-left:0;
  }
}

/* Phase 9: interne Terminplanung */
.match-stat-grid {
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
}

.challenge-panel {
  margin-top:18px;
}

.page-match-plans .match-request-layout,
.page-match-plan .match-detail-grid {
  margin-bottom:18px;
}

.status-ready,
.status-polling,
.status-draft,
.status-requested,
.status-archived {
  border-color:rgba(240,179,60,.32)!important;
}

.status-ready {
  background:rgba(34,197,94,.12)!important;
}

.status-polling,
.status-requested {
  background:rgba(240,179,60,.11)!important;
}

.status-draft,
.status-archived {
  background:rgba(255,255,255,.045)!important;
}

.page-match-plan .challenge-panel select,
.page-match-request .edit-card select,
.page-match-plans .edit-card select {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:15px 16px;
  outline:none;
}

/* Admin-/Captain-Testansicht */
.view-mode-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 22px;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(240,179,60,.36);
  background:linear-gradient(135deg,rgba(240,179,60,.16),rgba(255,255,255,.045));
  box-shadow:0 18px 50px rgba(0,0,0,.28)
}
.view-mode-bar strong {
  display:block;
  margin-bottom:5px;
  color:#ffd76c;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:14px
}
.view-mode-bar span {
  display:block;
  color:#ddd;
  line-height:1.35
}
.view-mode-bar.is-captain-mode {
  border-color:rgba(34,197,94,.42);
  background:linear-gradient(135deg,rgba(34,197,94,.14),rgba(255,255,255,.04))
}
.view-mode-bar.is-captain-mode strong {
  color:#62f28f
}
.view-mode-bar.is-player-mode {
  border-color:rgba(96,165,250,.42);
  background:linear-gradient(135deg,rgba(96,165,250,.14),rgba(255,255,255,.04))
}
.view-mode-bar.is-player-mode strong {
  color:#93c5fd
}
.view-mode-bar form {
  flex:0 0 auto;
  margin:0
}
.view-mode-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap
}
@media (max-width:820px) {
  .view-mode-bar {
    align-items:stretch;
    flex-direction:column
  }
  .view-mode-bar form,
  .view-mode-bar button {
    width:100%
  }
  .view-mode-actions {
    justify-content:stretch
  }
}

/* Phase 12: Benachrichtigungen, Aufgaben, Einladungen */
.notification-pill {
  position:relative;
  width:52px;
  min-width:52px;
  height:52px;
  display:inline-grid;
  place-items:center;
  border-radius:4px;
  border:1px solid rgba(234,176,50,.75);
  background:rgba(0,0,0,.28);
  color:#fff;
  box-shadow:0 0 22px rgba(0,0,0,.3)
}
.notification-pill i {
  color:#f0b33c;
  font-size:18px
}
.notification-pill span {
  position:absolute;
  top:-7px;
  right:-7px;
  min-width:24px;
  height:24px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#e22420;
  color:#fff;
  font-size:12px;
  font-weight:1000;
  border:2px solid #050505
}
.dashboard-overview-grid {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:18px;
  margin:18px 0
}
.panel-heading-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px
}
.panel-heading-row h2 {
  margin:0;
  font-size:26px
}
.tasks-panel {
  min-height:auto
}
.task-list,.notifications-list,.mini-notification-list {
  display:flex;
  flex-direction:column;
  gap:12px
}
.task-card,.mini-notification,.notification-card {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  align-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:rgba(255,255,255,.045);
  padding:14px;
  transition:.18s ease
}
.task-card:hover,.mini-notification:hover,.notification-card:hover {
  border-color:rgba(240,179,60,.55);
  background:rgba(240,179,60,.08)
}
.task-card > i,.mini-notification > i,.notification-icon {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:15px;
  background:rgba(240,179,60,.12);
  color:#f0b33c;
  font-size:19px
}
.task-card strong,.mini-notification strong {
  display:block;
  color:#fff;
  font-size:15px;
  margin-bottom:4px
}
.task-card em,.mini-notification em {
  display:block;
  color:#bfc3ca;
  font-style:normal;
  line-height:1.45;
  font-size:13px
}
.task-admin > i { background:rgba(96,165,250,.13); color:#93c5fd }
.task-match > i,.task-availability > i { background:rgba(240,179,60,.14); color:#f0b33c }
.task-team > i,.task-profile > i { background:rgba(34,197,94,.12); color:#7dff9a }
.empty-state-card {
  display:grid;
  place-items:center;
  text-align:center;
  gap:10px;
  border:1px dashed rgba(255,255,255,.16);
  border-radius:18px;
  padding:30px;
  color:#bfc3ca;
  background:rgba(255,255,255,.025)
}
.empty-state-card.compact {
  padding:18px
}
.empty-state-card i {
  font-size:34px;
  color:#f0b33c
}
.empty-state-card strong {
  display:block;
  color:#fff;
  font-size:18px
}
.notification-summary {
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:22px
}
.notification-summary h2 {
  margin:0 0 6px;
  font-size:30px
}
.notification-summary p {
  margin:0;
  color:#cfd3da
}
.notification-card {
  grid-template-columns:56px 1fr;
  align-items:start
}
.notification-card.is-unread {
  border-color:rgba(240,179,60,.34);
  background:linear-gradient(145deg,rgba(240,179,60,.10),rgba(255,255,255,.04))
}
.notification-icon {
  width:56px;
  height:56px;
  font-size:22px
}
.notification-card-head {
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start
}
.notification-card-head h3 {
  margin:0;
  font-size:20px
}
.notification-card-head span {
  color:#aeb4bd;
  font-size:13px;
  white-space:nowrap
}
.notification-body p {
  color:#d5d8df;
  line-height:1.55;
  margin:8px 0 0
}
.notification-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px
}
.mini-notification.is-unread {
  border-color:rgba(240,179,60,.38);
  box-shadow:inset 4px 0 0 rgba(240,179,60,.9)
}
.admin-tasks-panel {
  margin-bottom:18px
}
@media (max-width:1100px) {
  .dashboard-overview-grid {
    grid-template-columns:1fr
  }
}
@media (max-width:820px) {
  .notification-pill {
    width:100%;
    min-width:0;
    height:52px;
    border-radius:12px;
    margin-bottom:8px
  }
  .notification-pill span {
    right:calc(50% - 28px)
  }
  .notification-card-head {
    flex-direction:column;
    gap:4px
  }
  .notification-card {
    grid-template-columns:1fr
  }
  .notification-icon {
    width:48px;
    height:48px
  }
}

/* Phase 13: Dashboard-Polish */
.page-dashboard-modern .portal-main {
  padding-top:26px;
}

.dash-hero-v2 {
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:20px;
  align-items:stretch;
  margin:0 0 18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  overflow:hidden;
  background:
    radial-gradient(circle at 84% 18%,rgba(240,179,60,.18),transparent 34%),
    radial-gradient(circle at 15% 85%,rgba(180,26,22,.16),transparent 36%),
    linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  box-shadow:0 24px 75px rgba(0,0,0,.42);
}

.dash-hero-copy {
  padding:clamp(28px,4vw,52px);
}

.dash-hero-copy h1 {
  margin:0;
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:.02em;
  font-size:clamp(42px,5.4vw,82px);
  text-shadow:0 10px 30px rgba(0,0,0,.55);
}

.dash-hero-copy .lead {
  max-width:760px;
  margin:18px 0 0;
  color:#e5e7eb;
}

.dash-hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}

.dash-user-card {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:18px;
  padding:28px;
  border-left:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
}

.dash-avatar {
  width:106px;
  height:106px;
  border-radius:30px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid rgba(240,179,60,.35);
  background:rgba(0,0,0,.35);
  color:#f0b33c;
  font-size:42px;
  box-shadow:0 18px 50px rgba(0,0,0,.35);
}

.dash-avatar img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.dash-user-card span,
.dash-user-card em,
.dash-status-copy span,
.dash-kpi-card em {
  display:block;
  color:#aeb4bd;
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:900;
  font-size:12px;
}

.dash-user-card strong {
  display:block;
  margin:8px 0 7px;
  color:#ffd76c;
  text-transform:uppercase;
  font-size:22px;
  line-height:1.1;
}

.dash-kpi-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin:0 0 18px;
}

.dash-kpi-card {
  position:relative;
  min-height:112px;
  display:grid;
  grid-template-columns:54px 1fr;
  gap:14px;
  align-items:center;
  padding:18px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:22px;
  background:linear-gradient(145deg,rgba(24,26,27,.94),rgba(5,6,7,.95));
  box-shadow:0 18px 55px rgba(0,0,0,.28);
  overflow:hidden;
}

.dash-kpi-card:after {
  content:"";
  position:absolute;
  inset:auto -40px -70px auto;
  width:150px;
  height:150px;
  border-radius:50%;
  background:rgba(240,179,60,.08);
  pointer-events:none;
}

.dash-kpi-card:hover {
  border-color:rgba(240,179,60,.48);
  transform:translateY(-1px);
}

.dash-kpi-card span {
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:rgba(240,179,60,.13);
  color:#f0b33c;
  font-size:22px;
}

.dash-kpi-card strong {
  display:block;
  color:#fff;
  font-size:clamp(26px,2.5vw,40px);
  line-height:1;
  margin-bottom:8px;
}

.dash-status-strip {
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  min-height:118px;
  padding:20px;
  margin:0 0 18px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(145deg,rgba(23,25,27,.95),rgba(5,6,7,.96));
}

.dash-status-strip.is-approved {
  border-color:rgba(34,197,94,.42);
  background:linear-gradient(145deg,rgba(34,197,94,.12),rgba(5,6,7,.94));
}

.dash-status-strip.is-pending {
  border-color:rgba(240,179,60,.42);
  background:linear-gradient(145deg,rgba(240,179,60,.11),rgba(5,6,7,.94));
}

.dash-status-strip.is-blocked {
  border-color:rgba(239,68,68,.45);
  background:linear-gradient(145deg,rgba(239,68,68,.12),rgba(5,6,7,.94));
}

.dash-status-icon {
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:rgba(240,179,60,.13);
  color:#f0b33c;
  font-size:25px;
}

.dash-status-strip.is-approved .dash-status-icon {
  background:rgba(34,197,94,.14);
  color:#75ff9a;
}

.dash-status-strip.is-blocked .dash-status-icon {
  background:rgba(239,68,68,.15);
  color:#fca5a5;
}

.dash-status-copy strong {
  display:block;
  margin:5px 0 5px;
  font-size:28px;
  line-height:1.1;
  color:#fff;
}

.dash-status-strip.is-approved .dash-status-copy strong {
  color:#75ff9a;
}

.dash-status-strip.is-pending .dash-status-copy strong {
  color:#ffd76c;
}

.dash-status-strip.is-blocked .dash-status-copy strong {
  color:#fca5a5;
}

.dash-status-copy p {
  margin:0;
  color:#d7dce3;
  line-height:1.45;
}

.dash-status-actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}

.dash-focus-grid {
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);
  gap:18px;
  margin:0 0 18px;
}

.dash-focus-card,
.dash-action-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(23,25,27,.94),rgba(5,6,7,.96));
  box-shadow:0 22px 65px rgba(0,0,0,.32);
}

.dash-focus-card {
  padding:24px;
  min-height:230px;
}

.dash-action-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:18px;
}

.dash-action-card {
  padding:26px;
  min-height:248px;
  display:flex;
  flex-direction:column;
}

.dash-action-card h2 {
  margin:0 0 12px;
  font-size:25px;
}

.dash-action-card p {
  margin:0 0 18px;
  color:#d7dce3;
  line-height:1.55;
}

.dash-action-card .panel-actions {
  margin-top:auto;
}

.dash-action-card.is-highlighted {
  border-color:rgba(240,179,60,.38);
  box-shadow:0 22px 65px rgba(240,179,60,.08);
}

.dash-count-pill {
  min-width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  padding:0 10px;
  font-weight:1000;
  border:1px solid rgba(255,255,255,.12);
}

.dash-count-pill.is-hot {
  background:rgba(240,179,60,.15);
  color:#ffd76c;
  border-color:rgba(240,179,60,.35);
}

.dash-count-pill.is-ok {
  background:rgba(34,197,94,.13);
  color:#75ff9a;
  border-color:rgba(34,197,94,.35);
}

.dash-task-list .task-card,
.dash-mini-list .mini-notification {
  border-radius:18px;
  background:rgba(255,255,255,.04);
}

.dash-task-list .task-card strong,
.dash-mini-list .mini-notification strong {
  font-size:16px;
}

.dash-empty-ok i {
  color:#75ff9a;
}

.dash-empty-muted i {
  color:#f0b33c;
}

.page-dashboard-modern .portal-panel.status-info {
  display:none;
}

@media (max-width:1280px) {
  .dash-hero-v2 {
    grid-template-columns:1fr;
  }

  .dash-user-card {
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.10);
  }

  .dash-kpi-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .dash-focus-grid,
  .dash-action-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:860px) {
  .page-dashboard-modern .portal-main {
    width:calc(100% - 22px);
    padding-top:18px;
  }

  .dash-hero-copy {
    padding:26px;
  }

  .dash-hero-copy h1 {
    font-size:clamp(40px,13vw,64px);
  }

  .dash-user-card,
  .dash-status-strip {
    grid-template-columns:1fr;
  }

  .dash-user-card {
    align-items:flex-start;
  }

  .dash-kpi-grid,
  .dash-focus-grid,
  .dash-action-grid {
    grid-template-columns:1fr;
  }

  .dash-status-actions {
    justify-content:stretch;
  }

  .dash-status-actions a,
  .dash-hero-actions a {
    width:100%;
  }

  .dash-action-card {
    min-height:auto;
  }
}

/* =========================
   Phase 14: Matchraum + öffentliche Wettkämpfe
   ========================= */
.page-match-room .portal-main,
.page-public-matches .portal-main,
.page-public-match-detail .portal-main {
  width:min(1500px,calc(100% - 34px));
}

.match-room-hero {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  background:#050505;
  padding:clamp(26px,5vw,56px);
  margin:12px 0 22px;
  box-shadow:0 34px 90px rgba(0,0,0,.48);
}

.match-room-bg {
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 20%,rgba(200,0,0,.20),transparent 32%),
    radial-gradient(circle at 82% 18%,rgba(240,179,60,.20),transparent 34%),
    linear-gradient(145deg,rgba(18,20,22,.96),rgba(3,3,3,.98));
  opacity:.95;
}

.match-room-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(240,179,60,.38) 1px,transparent 1px);
  background-size:54px 54px;
  opacity:.12;
  pointer-events:none;
}

.match-room-topline,
.match-room-versus,
.match-room-meta,
.match-room-actions {
  position:relative;
  z-index:2;
}

.match-room-topline {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:28px;
}

.match-room-versus {
  display:grid;
  grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);
  gap:24px;
  align-items:center;
}

.match-room-team {
  display:flex;
  gap:18px;
  align-items:center;
  min-width:0;
}

.match-room-team.is-right {
  flex-direction:row-reverse;
  text-align:right;
}

.match-room-logo {
  width:112px;
  height:112px;
  flex:0 0 auto;
  border-radius:26px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:rgba(0,0,0,.62);
  border:1px solid rgba(240,179,60,.38);
  color:#f0b33c;
  font-size:46px;
  box-shadow:0 18px 50px rgba(0,0,0,.38);
}

.match-room-logo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.match-room-team span {
  display:block;
  margin-bottom:8px;
  color:#f0b33c;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
  font-weight:1000;
}

.match-room-team h1 {
  margin:0;
  font-size:clamp(30px,3.6vw,64px);
  line-height:.96;
  text-transform:uppercase;
  letter-spacing:.02em;
}

.match-room-vs {
  width:90px;
  height:90px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(180deg,#ffd76c,#c58616);
  color:#120900;
  font-weight:1000;
  font-size:24px;
  box-shadow:0 0 40px rgba(240,179,60,.22);
}

.match-room-meta {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:34px;
}

.match-room-meta div {
  display:grid;
  grid-template-columns:36px 1fr;
  gap:4px 12px;
  align-items:center;
  padding:16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.045);
}

.match-room-meta i {
  grid-row:1/3;
  color:#f0b33c;
  font-size:22px;
}

.match-room-meta span {
  color:#aeb4bd;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  font-size:11px;
}

.match-room-meta strong {
  color:#fff;
  font-size:15px;
  line-height:1.3;
}

.match-room-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:22px;
}

.match-room-info-grid,
.match-room-upload-grid {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:18px;
  margin-bottom:18px;
}

.match-room-next h2,
.match-room-timeline-card h2 {
  margin:0 0 10px;
}

.match-room-note {
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:14px 16px;
  border-radius:16px;
  background:rgba(240,179,60,.10);
  border:1px solid rgba(240,179,60,.22);
  color:#ffe0a0!important;
}

.compact-head {
  margin-bottom:10px;
}

.match-room-timeline {
  display:flex;
  flex-direction:column;
  gap:12px;
}

.match-room-timeline-item {
  display:grid;
  grid-template-columns:42px 1fr;
  gap:14px;
  padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.match-room-timeline-item:last-child {
  border-bottom:0;
}

.match-room-timeline-item > i {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:rgba(240,179,60,.12);
  color:#f0b33c;
}

.match-room-timeline-item strong {
  display:block;
  color:#fff;
}

.match-room-timeline-item span {
  display:block;
  margin:3px 0 0;
  color:#aeb4bd;
  font-size:13px;
}

.match-room-timeline-item p {
  margin:7px 0 0;
  color:#d8dde5;
  line-height:1.45;
}

.match-upload-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
}

.match-upload-card {
  display:grid;
  grid-template-columns:92px 1fr;
  gap:14px;
  align-items:center;
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.045);
}

.match-upload-card:hover {
  border-color:rgba(240,179,60,.45);
  background:rgba(240,179,60,.08);
}

.match-upload-preview {
  width:92px;
  height:78px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:14px;
  background:rgba(0,0,0,.38);
  color:#f0b33c;
  font-size:34px;
}

.match-upload-preview img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.match-upload-card strong,
.match-upload-card span,
.match-upload-card em {
  display:block;
}

.match-upload-card span {
  margin-top:5px;
  color:#b8bec7;
  font-size:13px;
}

.match-upload-card em {
  margin-top:7px;
  color:#f0b33c;
  font-style:normal;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:900;
}

.empty-inline {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:90px;
  padding:18px;
  border:1px dashed rgba(255,255,255,.18);
  border-radius:18px;
  color:#cdd3dd;
}

.empty-inline i {
  color:#f0b33c;
  font-size:26px;
}

.match-upload-form-panel select,
.public-match-filter-panel select,
.public-match-filter-panel input[type="search"] {
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:13px 14px;
  outline:none;
}

.public-match-hero {
  display:grid;
  grid-template-columns:1fr 320px;
  gap:22px;
  align-items:stretch;
  margin:12px 0 20px;
  padding:clamp(28px,5vw,58px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  background:radial-gradient(circle at 88% 20%,rgba(240,179,60,.18),transparent 34%),linear-gradient(145deg,rgba(24,26,27,.97),rgba(5,6,7,.98));
}

.public-match-hero h1 {
  margin:0;
  text-transform:uppercase;
  font-size:clamp(48px,7vw,98px);
  line-height:.92;
}

.public-match-hero-card {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.045);
}

.public-match-hero-card span,
.public-match-hero-card em {
  color:#aeb4bd;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}

.public-match-hero-card strong {
  margin:8px 0;
  color:#f0b33c;
  font-size:30px;
}

.public-match-filter-panel .filter-form {
  display:grid;
  grid-template-columns:1fr 220px 230px auto auto;
  gap:12px;
  align-items:center;
}

.public-match-section {
  margin-top:24px;
}

.public-match-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
}

.public-match-list.compact-list {
  grid-template-columns:repeat(3,1fr);
}

.public-match-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  padding:22px;
  background:linear-gradient(145deg,rgba(23,25,27,.96),rgba(5,6,7,.96));
  box-shadow:0 22px 65px rgba(0,0,0,.30);
}

.public-match-card.is-completed {
  opacity:.88;
}

.public-match-status-row {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:16px;
}

.public-match-teams {
  display:grid;
  grid-template-columns:1fr 54px 1fr;
  gap:12px;
  align-items:center;
  text-align:center;
}

.public-match-teams > div {
  min-width:0;
}

.public-match-logo {
  width:86px;
  height:86px;
  margin:0 auto 10px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:22px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(240,179,60,.25);
  color:#f0b33c;
  font-size:34px;
}

.public-match-logo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.public-match-teams strong {
  display:block;
  font-size:22px;
  line-height:1.15;
}

.public-match-teams b {
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:50%;
  background:rgba(240,179,60,.14);
  color:#f0b33c;
}

.public-match-card h3 {
  margin:0 0 14px;
  font-size:24px;
}

.public-match-card h3 span {
  color:#f0b33c;
  font-size:.78em;
}

.public-facing .match-room-bg {
  background:
    radial-gradient(circle at 20% 25%,rgba(240,179,60,.16),transparent 34%),
    radial-gradient(circle at 78% 20%,rgba(200,0,0,.16),transparent 30%),
    linear-gradient(145deg,rgba(18,20,22,.96),rgba(3,3,3,.98));
}

.compact-empty {
  min-height:190px;
  margin-bottom:16px;
}

@media (max-width:1180px) {
  .match-room-versus,
  .match-room-meta,
  .match-room-info-grid,
  .match-room-upload-grid,
  .public-match-hero,
  .public-match-filter-panel .filter-form,
  .public-match-list,
  .public-match-list.compact-list {
    grid-template-columns:1fr;
  }

  .match-room-vs {
    margin:0 auto;
  }

  .match-room-team.is-right {
    flex-direction:row;
    text-align:left;
  }

  .match-upload-list {
    grid-template-columns:1fr;
  }
}

@media (max-width:680px) {
  .page-match-room .portal-main,
  .page-public-matches .portal-main,
  .page-public-match-detail .portal-main {
    width:calc(100% - 22px);
  }

  .match-room-hero {
    padding:22px;
  }

  .match-room-team,
  .match-room-team.is-right {
    display:grid;
    grid-template-columns:72px 1fr;
    gap:14px;
  }

  .match-room-logo {
    width:72px;
    height:72px;
    border-radius:18px;
    font-size:30px;
  }

  .match-room-team h1 {
    font-size:32px;
  }

  .match-room-vs {
    width:64px;
    height:64px;
    font-size:18px;
  }

  .public-match-teams {
    grid-template-columns:1fr;
  }

  .public-match-teams b {
    margin:0 auto;
  }
}

/* Phase 15: Match-App Grundgerüst */
.match-app-hero {
  display:grid;
  grid-template-columns:1fr 320px;
  gap:22px;
  align-items:stretch;
  border:1px solid rgba(255,255,255,.12);
  border-radius:28px;
  background:radial-gradient(circle at 85% 12%,rgba(240,179,60,.18),transparent 34%),linear-gradient(145deg,rgba(23,25,27,.98),rgba(5,6,7,.98));
  padding:clamp(26px,5vw,58px);
  margin-bottom:18px;
  overflow:hidden;
}

.match-app-hero h1 {
  margin:0 0 18px;
  text-transform:uppercase;
  font-size:clamp(34px,4.8vw,78px);
  line-height:.96;
  letter-spacing:.02em;
}

.match-app-hero h1 span {
  color:#f0b33c;
  font-size:.56em;
  margin:0 .2em;
}

.match-app-hero p {
  color:#ddd;
  font-size:18px;
  line-height:1.55;
  max-width:980px;
}

.match-app-hero-meta {
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  border:1px solid rgba(240,179,60,.22);
  border-radius:22px;
  background:rgba(0,0,0,.24);
  padding:24px;
}

.match-app-hero-meta span,
.match-app-hero-meta em {
  color:#bbb;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-style:normal;
  font-weight:900;
}

.match-app-hero-meta strong {
  font-size:24px;
  color:#ffd76c;
}

.match-app-warning {
  display:flex;
  gap:18px;
  align-items:flex-start;
  border:1px solid rgba(240,179,60,.34);
  background:linear-gradient(135deg,rgba(240,179,60,.13),rgba(255,255,255,.035));
  border-radius:22px;
  padding:20px 22px;
  margin-bottom:18px;
}

.match-app-warning i {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:16px;
  background:rgba(240,179,60,.16);
  color:#ffd76c;
  font-size:22px;
  flex:0 0 auto;
}

.match-app-warning strong {
  display:block;
  font-size:22px;
  margin-bottom:5px;
}

.match-app-warning p {
  margin:0;
  color:#ddd;
  line-height:1.55;
}

.match-app-steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin:20px 0;
}

.match-app-step {
  border:1px solid rgba(255,255,255,.12);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(23,25,27,.94),rgba(5,6,7,.96));
  padding:18px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.match-app-step i {
  color:#f0b33c;
  font-size:24px;
}

.match-app-step strong {
  font-size:18px;
}

.match-app-step span {
  color:#bbb;
  font-size:13px;
}

.match-app-step.done {
  border-color:rgba(34,197,94,.38);
  background:linear-gradient(145deg,rgba(34,197,94,.10),rgba(5,6,7,.96));
}

.match-app-team-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  align-items:start;
}

.match-app-team-card {
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(23,25,27,.97),rgba(5,6,7,.97));
  padding:24px;
  min-height:420px;
}

.match-app-team-head {
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:20px;
}

.match-app-team-logo {
  width:76px;
  height:76px;
  border-radius:22px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(240,179,60,.26);
  color:#f0b33c;
  font-size:32px;
  flex:0 0 auto;
}

.match-app-team-logo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.match-app-team-head span {
  display:block;
  color:#f0b33c;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  font-size:12px;
  margin-bottom:5px;
}

.match-app-team-head h2 {
  margin:0;
  font-size:30px;
}

.match-app-lock {
  margin-left:auto;
  display:inline-flex;
  gap:8px;
  align-items:center;
  border-radius:999px;
  padding:10px 14px;
  background:rgba(34,197,94,.14);
  color:#7dff9a;
  border:1px solid rgba(34,197,94,.34);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:12px;
}

.match-app-select-form,
.match-app-qualification-form,
.match-app-lock-form,
.match-app-admin-unlock {
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:rgba(255,255,255,.035);
  padding:18px;
  margin:16px 0;
}

.match-app-select-form h3,
.match-app-qualification-form h3 {
  margin:0 0 8px;
  color:#fff;
  font-size:22px;
}

.match-app-select-form p,
.match-app-qualification-form p,
.match-app-lock-form p {
  color:#cfcfcf;
  line-height:1.5;
  margin:0 0 14px;
}

.match-app-member-select {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:14px 0;
}

.match-app-member-option {
  display:grid;
  grid-template-columns:22px 48px 1fr;
  gap:10px;
  align-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(0,0,0,.22);
  padding:10px;
  cursor:pointer;
}

.match-app-member-option input {
  width:18px;
  height:18px;
}

.match-app-member-option strong,
.match-app-member-option em {
  display:block;
}

.match-app-member-option em {
  color:#aaa;
  font-size:13px;
  font-style:normal;
  margin-top:3px;
}

.match-app-lineup-list {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:16px 0;
}

.match-app-lineup-row {
  display:grid;
  grid-template-columns:58px 1fr auto;
  gap:14px;
  align-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:rgba(255,255,255,.035);
  padding:12px;
}

.match-app-lineup-row.A,
.match-app-lineup-row.B,
.match-app-lineup-row.C,
.match-app-lineup-row.D {
  border-color:rgba(240,179,60,.30);
  background:linear-gradient(135deg,rgba(240,179,60,.10),rgba(255,255,255,.035));
}

.match-app-lineup-row strong,
.match-app-lineup-row span {
  display:block;
}

.match-app-lineup-row span {
  color:#aaa;
  margin-top:4px;
}

.match-app-score-pill {
  min-width:110px;
  text-align:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:10px 12px;
  background:rgba(0,0,0,.25);
}

.match-app-score-pill b {
  display:block;
  color:#ffd76c;
  font-size:22px;
  line-height:1;
}

.match-app-score-pill span {
  color:#ddd;
  font-size:12px;
  margin-top:6px;
}

.match-app-score-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin:14px 0;
}

.match-app-score-grid label {
  display:flex;
  flex-direction:column;
  gap:7px;
}

.match-app-score-grid label span {
  font-weight:900;
  color:#ddd;
  font-size:13px;
}

.match-app-score-grid input {
  border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.33);
  border-radius:14px;
  color:#fff;
  padding:13px 14px;
  outline:none;
}

.match-app-lock-form {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border-color:rgba(240,179,60,.32);
  background:linear-gradient(135deg,rgba(240,179,60,.12),rgba(255,255,255,.035));
}

.match-app-lock-form strong {
  display:block;
  font-size:20px;
  margin-bottom:4px;
}

.match-app-next-panel {
  margin-top:18px;
}

@media (max-width:1150px) {
  .match-app-hero,
  .match-app-team-grid {
    grid-template-columns:1fr;
  }

  .match-app-steps {
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:720px) {
  .match-app-member-select,
  .match-app-score-grid,
  .match-app-steps {
    grid-template-columns:1fr;
  }

  .match-app-lineup-row {
    grid-template-columns:52px 1fr;
  }

  .match-app-score-pill {
    grid-column:1/-1;
    text-align:left;
  }

  .match-app-lock-form {
    flex-direction:column;
    align-items:stretch;
  }
}
