/* dartscom unified UI - bereinigte app.css
   Ziel: kein Layout-Zerfall, keine mehrfachen body/card/table Overrides,
   saubere Desktop/Tablet/Mobile Darstellung.
*/

:root{
  --bg0:#0b1422;
  --bg1:#0f1f33;
  --bg2:#102a45;
  --panel:#111d2f;
  --panel2:#15243a;
  --text:#eaf2ff;
  --muted:#a6b6cc;
  --line:rgba(255,255,255,.10);
  --blue:#2ea8ff;
  --blue2:#1f6fbf;
  --win:#1ecb5a;
  --warn:#ffc857;
  --danger:#ff4d6d;
  --gold:#ffc857;
  --shadow:0 14px 40px rgba(0,0,0,.42);
  --radius:18px;
  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{width:100%;max-width:100%;scrollbar-gutter:stable}
body{
  margin:0;
  min-height:100vh;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(46,168,255,.18), transparent 55%),
    radial-gradient(820px 540px at 92% 16%, rgba(31,111,191,.14), transparent 58%),
    linear-gradient(135deg,var(--bg0) 0%,var(--bg1) 52%,var(--bg2) 100%);
  padding:24px;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.12;
  background-image:
    linear-gradient(120deg,rgba(255,255,255,.10) 1px,transparent 1px),
    linear-gradient(60deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:62px 62px;
  mask-image:radial-gradient(900px 700px at 50% 10%,black 20%,transparent 70%);
}
body.center{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
img,svg,video,canvas{max-width:100%;height:auto}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5,h6{margin-top:0}
h1{font-size:clamp(26px,3vw,42px);line-height:1.08;margin-bottom:12px}
h2{font-size:clamp(20px,2.2vw,28px);line-height:1.15;margin:0}
h3{font-size:20px;margin-bottom:10px}
p{line-height:1.55}

.main,.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  position:relative;
  z-index:2;
}
.muted{color:var(--muted);font-size:13px}
.links{color:var(--muted);font-size:13px}
.small{font-size:12px;color:rgba(234,242,255,.72)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}

/* Layout */
.topbar,.cardHeader{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:14px;
  position:relative;
  z-index:2;
}
.nav,.rowflex,.match,.aliasRow,.actionsWrap,.playerForm{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  position:relative;
  z-index:2;
}
.card{
  width:100%;
  background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025));
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px;
  box-shadow:var(--shadow);
  margin:14px 0;
  position:relative;
  overflow:hidden;
  z-index:2;
}
.card::after{
  content:"";
  position:absolute;
  inset:auto -35% -70% -35%;
  height:180px;
  background:radial-gradient(closest-side,rgba(46,168,255,.18),transparent 65%);
  transform:rotate(-8deg);
  pointer-events:none;
}
.card > *{position:relative;z-index:2}
.card--login{width:min(520px,100%)}

/* Hero */
.hero{min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center}
.heroCard{text-align:center;max-width:900px}
.heroLogo{width:100%;max-width:700px;margin-bottom:40px}
.heroButtons{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}
.heroButtons a{min-width:180px}

/* Forms */
.form-grid,form{display:grid;gap:10px;position:relative;z-index:2}
input,select,textarea,button{max-width:100%;font:inherit}
input,select,textarea{
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.22);
  color:var(--text);
  outline:none;
}
input:focus,select:focus,textarea:focus{border-color:rgba(46,168,255,.7)}
input::placeholder,textarea::placeholder{color:rgba(166,182,204,.7)}
select{cursor:pointer}
textarea{min-height:110px;width:100%;resize:vertical}
.btn{
  appearance:none;
  border:1px solid rgba(46,168,255,.45);
  background:linear-gradient(180deg,rgba(46,168,255,.22),rgba(31,111,191,.12));
  color:var(--text);
  padding:10px 14px;
  border-radius:14px;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.2px;
  box-shadow:0 10px 24px rgba(0,0,0,.25);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.btn:hover{border-color:rgba(46,168,255,.85);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn-muted{border-color:rgba(255,255,255,.14);background:rgba(0,0,0,.20);box-shadow:none}
.btn-danger{border-color:rgba(255,77,109,.55);background:linear-gradient(180deg,rgba(255,77,109,.22),rgba(255,77,109,.10))}
.msg,.err,.ok{
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.20);
  position:relative;
  z-index:2;
}
.msg--ok,.ok{border-color:rgba(30,203,90,.30);background:rgba(30,203,90,.12);color:#d7ffe9}
.msg--err,.err{border-color:rgba(255,80,110,.28);background:rgba(176,0,32,.18);color:#ffd7de}

/* Badges */
.pill,.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.20);
  color:rgba(234,242,255,.78);
  text-transform:uppercase;
  letter-spacing:.6px;
  white-space:nowrap;
}
.pill{border-color:rgba(46,168,255,.22);background:rgba(46,168,255,.08)}
.pill--win,.badge--ok{border-color:rgba(30,203,90,.35);background:rgba(30,203,90,.14);color:#d7ffe9}
.badge--muted{border-color:rgba(46,168,255,.22);background:rgba(46,168,255,.08);color:rgba(234,242,255,.68)}
.badge--warn{border-color:rgba(255,200,87,.35);background:rgba(255,200,87,.14);color:#fff0cf}

/* Tables */
.tableWrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  border-radius:16px;
  position:relative;
  z-index:2;
}
table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:rgba(0,0,0,.18);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
}
th,td{
  padding:12px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:14px;
  vertical-align:middle;
  text-align:center;
}
th:first-child,td:first-child{text-align:left}
th{
  color:rgba(234,242,255,.72);
  font-weight:900;
  background:rgba(255,255,255,.035);
  letter-spacing:.4px;
  text-transform:uppercase;
  font-size:12px;
  white-space:nowrap;
}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(46,168,255,.055)}
th a{color:inherit;text-decoration:none;font-weight:900}

/* Rankings table */
table.rankings-table{
  table-layout:auto;
  min-width:760px;
}
table.rankings-table th.col-rank,table.rankings-table td.col-rank{width:52px;min-width:52px;text-align:center}
table.rankings-table th.col-player,table.rankings-table td.col-player{min-width:180px;text-align:left}
table.rankings-table th.col-points,table.rankings-table td.col-points{width:82px;min-width:82px;text-align:center}

/* Platzierungen */
table.rankings-table tr.rank-top td{background:linear-gradient(90deg,rgba(34,197,94,.22),rgba(34,197,94,.08))}
table.rankings-table tr.rank-gold td{background:linear-gradient(90deg,rgba(245,158,11,.34),rgba(234,179,8,.13));color:#ffe9a3;font-weight:900}
table.rankings-table tr.rank-bottom td{background:linear-gradient(90deg,rgba(239,68,68,.22),rgba(239,68,68,.08))}
table.rankings-table tr.rank-top:hover td{background:linear-gradient(90deg,rgba(34,197,94,.30),rgba(34,197,94,.12))}
table.rankings-table tr.rank-gold:hover td{background:linear-gradient(90deg,rgba(245,158,11,.43),rgba(234,179,8,.18))}
table.rankings-table tr.rank-bottom:hover td{background:linear-gradient(90deg,rgba(239,68,68,.30),rgba(239,68,68,.12))}

/* Sticky ranking columns only on smaller screens */
@media (max-width:900px){
  table.rankings-table{width:max-content;min-width:760px;table-layout:auto}
  table.rankings-table th,table.rankings-table td{white-space:nowrap}
  table.rankings-table th.col-rank,table.rankings-table td.col-rank{position:sticky;left:0;z-index:30;background:#102033}
  table.rankings-table th.col-player,table.rankings-table td.col-player{position:sticky;left:52px;z-index:30;background:#102033;max-width:170px;overflow:hidden;text-overflow:ellipsis}
  table.rankings-table th.col-points,table.rankings-table td.col-points{position:sticky;left:222px;z-index:30;background:#102033}
  table.rankings-table th.col-rank,table.rankings-table th.col-player,table.rankings-table th.col-points{z-index:40;background:#14263d}
  table.rankings-table tr.rank-top td.col-rank,table.rankings-table tr.rank-top td.col-player,table.rankings-table tr.rank-top td.col-points{background:#123b35}
  table.rankings-table tr.rank-gold td.col-rank,table.rankings-table tr.rank-gold td.col-player,table.rankings-table tr.rank-gold td.col-points{background:#4a3510;color:#ffe9a3}
  table.rankings-table tr.rank-bottom td.col-rank,table.rankings-table tr.rank-bottom td.col-player,table.rankings-table tr.rank-bottom td.col-points{background:#3b1720}
}

.statsTable table,.schedule-table{min-width:760px;table-layout:auto}
.rowWin td{background:rgba(30,203,90,.06)}
.rowDraw td{background:rgba(255,200,87,.06)}
.player,.player--win{font-weight:900}
.player--win{color:#d7ffe9}
.player--draw{color:#fff0cf}
.player--eliminated,.player--eliminated-input{color:var(--danger);font-weight:900;text-decoration:line-through;opacity:1}
.league-archived{opacity:.5}
.scorePanel{display:block;width:100%;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.score{font-weight:1000;font-size:18px}
.vs{opacity:.7;font-weight:900}
.playerChip{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18)}
.clickable{cursor:pointer}

/* Registration/admin helper */
.reg-input,.reg-select{width:100%;max-width:100%}
.reg-input--avg{width:110px;min-width:110px}.reg-select--season,.reg-select--league{width:120px;min-width:120px}.reg-select--payment{width:100px;min-width:100px}.reg-input--note{width:220px;min-width:220px}
.actionStack{display:flex;flex-direction:column;gap:8px;align-items:stretch;min-width:130px}
.aliases{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:10px;padding-top:10px}
.aliasRow input{min-width:220px}

/* Modals */
.modal-backdrop,.modalBack,#modalBack,.matchIdModalBack,.eventModalBack{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:12px;
  background:rgba(3,8,18,.72);
  backdrop-filter:blur(4px);
  z-index:9999;
}
.modal,.matchIdModal,.eventModal{
  width:min(620px,96vw);
  max-width:100%;
  max-height:90vh;
  display:flex;
  flex-direction:column;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,rgba(16,42,69,.98),rgba(11,20,34,.98));
  box-shadow:var(--shadow);
  overflow:hidden;
}
#modalBack .modal{width:min(820px,96vw)}
.modalHeader,.modalHead,.matchIdModalHead,.eventModalHead{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(0,0,0,.20);
  flex:0 0 auto;
}
.modalTitle,.matchIdModalTitle,.eventModalTitle{font-size:16px;font-weight:1000;letter-spacing:.2px}
.modalBody,.matchIdModalBody,.eventModalBody{
  padding:14px 16px;
  overflow:auto;
  -webkit-overflow-scrolling:touch;
  flex:1 1 auto;
}
.modalClose{
  appearance:none;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.20);
  color:var(--text);
  padding:8px 10px;
  border-radius:14px;
  cursor:pointer;
  font-weight:900;
}
.mrow{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);color:rgba(234,242,255,.88)}
.mrow:last-child{border-bottom:none}.mkey{color:rgba(234,242,255,.70)}.mval{font-weight:900}
.modalActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.modalInput{width:100%;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.18);color:var(--text)}.modalInput--small{max-width:86px;text-align:center}.saveHint{font-size:12px;color:var(--muted);margin-right:auto}

/* Match id / highlights */
.matchIdBtn,.boltBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;transition:.18s ease;box-shadow:none}
.matchIdBtn{width:36px;height:36px;border-radius:10px;font-size:18px;line-height:1}.matchIdBtn:hover,.boltBtn:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.20);transform:translateY(-1px)}.matchIdBtn[disabled]{opacity:.45;cursor:not-allowed}
.matchIdBox{padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03);margin-bottom:12px;word-break:break-all}.matchIdLink{display:inline-flex;align-items:center;gap:8px}.matchIdEmpty{color:var(--muted);font-style:italic}
.matchNames{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.boltWrap{display:inline-flex;align-items:center;gap:6px;margin-right:8px;flex:0 0 auto}.boltBtn{width:26px;height:26px;border-radius:999px;color:#ffbf47;font-size:14px;line-height:1;padding:0}.boltCount{font-size:12px;font-weight:800;color:#ffcf5a;line-height:1}.event180List{display:flex;flex-direction:column;gap:10px}.event180Item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.03)}.event180Name{font-weight:900}.event180Meta{color:var(--muted);font-size:13px;text-align:right}

/* Accordions */
.infoAccordion{display:grid;gap:12px;margin:14px 0 18px;position:relative;z-index:2}.infoItem{border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(0,0,0,.16);overflow:hidden}.infoToggle{width:100%;appearance:none;border:0;background:transparent;color:var(--text);padding:14px 16px;text-align:left;font-weight:1000;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}.infoToggle:hover{background:rgba(255,255,255,.03)}.infoToggle .chev{transition:transform .18s ease;opacity:.8}.infoItem.open .infoToggle .chev{transform:rotate(180deg)}.infoBody{display:none;padding:0 16px 16px;color:rgba(234,242,255,.88);line-height:1.6}.infoItem.open .infoBody{display:block}.miniBlock{margin-top:10px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03)}.checkLine{display:flex;gap:10px;align-items:flex-start}.checkLine input[type="checkbox"]{width:auto;margin-top:3px;flex:0 0 auto}

/* Search */
.scheduleSearchCard{margin-bottom:14px}.scheduleSearchBox{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;border:1px solid rgba(46,168,255,.22);background:linear-gradient(180deg,rgba(16,31,52,.78),rgba(10,20,34,.78))}.scheduleSearchIcon{color:var(--blue);font-size:20px;flex:0 0 auto}.scheduleSearchInput{width:100%;border:0;outline:none;background:transparent;color:var(--text);font-size:15px;font-weight:800}.scheduleSearchInput::placeholder{color:rgba(159,177,201,.75)}.scheduleNoResults{display:none;margin-top:10px;padding:12px 14px;border-radius:14px;color:var(--muted);background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}.scheduleSearchInfo{margin-top:8px;color:var(--muted);font-size:12px;font-weight:700}

/* Archive / Highlights */
.archiveGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.archiveCard{border:1px solid rgba(255,255,255,.10);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));padding:16px}.archiveTitle{font-size:18px;font-weight:1000;margin-bottom:6px}.archiveMeta,.archiveActions{display:flex;gap:8px;flex-wrap:wrap}.archiveMeta{margin:10px 0 14px}.archiveEmpty{padding:18px;border:1px dashed rgba(255,255,255,.14);border-radius:16px;color:var(--muted);background:rgba(255,255,255,.02)}
.highlightsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.highlightBox{background:linear-gradient(90deg,#0b1220 0%,#13233d 50%,#0f1b31 100%);border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.28)}.highlightBoxTitle{background:rgba(255,255,255,.04);color:#f3f7ff;text-align:center;font-weight:1000;text-transform:uppercase;padding:14px 16px;letter-spacing:.5px;font-size:18px;border-bottom:1px solid rgba(255,255,255,.06)}.highlightHead,.highlightRow{display:grid;grid-template-columns:minmax(0,1fr) 110px 90px;align-items:center}.highlightHead{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.08),rgba(255,255,255,.04));color:rgba(230,238,255,.78);font-weight:900;text-transform:uppercase;font-size:13px;border-bottom:1px solid rgba(255,255,255,.06)}.highlightHead>div,.highlightRow>div{padding:14px 16px}.highlightHead .col-name,.highlightRow .col-name{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.highlightHead .col-amount,.highlightHead .col-value,.highlightRow .col-amount,.highlightRow .col-value{text-align:right}.highlightRow{color:#eef4ff;border-bottom:1px solid rgba(255,255,255,.06);transition:background .15s ease}.highlightRow:nth-child(even){background:rgba(255,255,255,.025)}.highlightRow:hover{background:rgba(255,255,255,.045)}.highlightRow:last-child{border-bottom:none}.highlightEmpty{padding:16px;color:rgba(255,255,255,.72)}.highlightTop .col-name,.highlightTop .col-amount,.highlightTop .col-value{font-weight:900;color:#fff}

/* Date edit */
.cardHeader{overflow:visible}.editDateBtn{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);border-radius:8px;cursor:pointer;padding:4px 8px;font-size:14px;transition:.15s}.editDateBtn:hover{background:rgba(255,255,255,.12)}.dateEditBox{position:absolute;top:-8px;right:44px;min-width:270px;background:#111;border:1px solid rgba(255,255,255,.15);padding:8px;border-radius:10px;z-index:9999;box-shadow:0 10px 30px rgba(0,0,0,.4)}.dateInput{padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#000;color:#fff}

/* Mobile stats block */
.mobileStats{display:flex;align-items:center;justify-content:space-between;gap:0;width:100%;margin:8px 0 16px}.mobileStat{flex:1;text-align:center}.mobileStatIcon{font-size:24px;color:var(--blue);margin-bottom:6px}.mobileStatIcon svg{width:26px;height:26px;stroke:var(--blue);stroke-width:2;fill:none;margin-bottom:6px;filter:drop-shadow(0 0 6px rgba(46,168,255,.4))}.mobileStatValue{font-size:clamp(18px,4vw,24px);font-weight:1000;color:#f4f8ff;line-height:1}.mobileStatLabel{margin-top:6px;font-size:12px;font-weight:900;letter-spacing:.04em;color:#b7c8dc;text-transform:uppercase}.mobileStatDivider{width:1px;height:58px;background:rgba(255,255,255,.12)}

/* Footer */
.footer{width:100%;margin:40px auto 0;padding:20px 10px;background:rgba(7,14,25,.55);border-top:1px solid rgba(255,255,255,.08);position:relative;z-index:2;border-radius:16px}.footer-inner{max-width:var(--container);margin:0 auto;text-align:center}.footer-links{margin-bottom:10px}.footer-links a{color:var(--blue);font-size:14px;margin:0 5px}.footer-links span{color:rgba(166,182,204,.45);margin:0 5px}.footer-copy{font-size:12px;color:rgba(166,182,204,.70)}

/* Desktop tuning */
@media (min-width:901px){
  th,td{white-space:nowrap}
  .card{padding:18px}
}
@media (max-width:1200px){
  body{padding:20px}
  .highlightsGrid{grid-template-columns:1fr}
}
@media (max-width:900px){
  body{padding:14px}
  .container,.main{max-width:100%}
  .card{padding:12px;border-radius:16px}
  .topbar,.cardHeader{align-items:stretch}
  .nav{width:100%;gap:10px}
  table{min-width:640px}
  th,td{padding:10px;font-size:13px;white-space:normal;word-break:normal;overflow-wrap:anywhere}
  th{font-size:11px;white-space:nowrap}
  .statsTable table,.schedule-table{min-width:720px}
  #modalBack{align-items:flex-start;padding:8px}
  #modalBack .modal,.modal,.matchIdModal,.eventModal{width:100%;max-width:100%;max-height:92vh;border-radius:14px;margin:0}
  .modalHeader,.modalHead,.matchIdModalHead,.eventModalHead{padding:10px 12px;gap:8px;align-items:flex-start;flex-wrap:wrap}
  .modalTitle,.matchIdModalTitle,.eventModalTitle{font-size:15px;line-height:1.25}
  .modalBody,.matchIdModalBody,.eventModalBody{padding:10px 12px 22px;max-height:calc(92vh - 72px)}
  .modalActions{width:100%;justify-content:flex-end}.saveHint{width:100%;margin-right:0;font-size:11px}
}
@media (max-width:700px){
  body{padding:12px}
  .topbar,.cardHeader,.rowflex,.nav,.match,.aliasRow,.actionsWrap,.playerForm{flex-direction:column;align-items:stretch}
  .btn,.modalClose{width:100%}
  input,select,textarea{width:100%;min-width:0!important}
  .reg-input,.reg-select,.reg-input--avg,.reg-select--season,.reg-select--league,.reg-select--payment,.reg-input--note{width:100%!important;min-width:0!important;max-width:100%!important}
  .actionStack{min-width:0;width:100%}.aliasRow input{min-width:0;width:100%}
  .pill,.badge{width:fit-content;max-width:100%}
  .mrow,.event180Item{flex-direction:column;align-items:flex-start;gap:4px}.event180Meta{text-align:left}
  .dateEditBox{right:0;top:40px;min-width:240px}
  .footer-links a{display:inline-block;margin:5px}
}
@media (max-width:640px){
  .highlightHead,.highlightRow{grid-template-columns:minmax(0,1fr) 90px 70px}.highlightHead>div,.highlightRow>div{padding:11px 12px;font-size:14px}.highlightBoxTitle{font-size:15px;padding:12px}
}
@media (max-width:480px){
  body{padding:10px}
  .card{padding:10px;border-radius:14px}
  .muted,.links,.small{font-size:12px}
  th,td{padding:8px;font-size:12px}th{font-size:10px}
  table{min-width:560px}.statsTable table,.schedule-table{min-width:660px}
  .mobileStatLabel{font-size:10px}.mobileStatDivider{height:50px}
}

/* =========================================================
   HOME / INDEX: viewport-fit ohne Scrollen bei 1920x1080
   ========================================================= */
body.home-page{
  padding:0;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

body.home-page .hero{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(10px, 2vmin, 24px);
}

body.home-page .heroCard{
  width:min(900px, 94vw);
  max-width:100%;
  max-height:calc(100svh - 96px);
  margin:0 auto;
  padding:clamp(14px, 2.2vmin, 24px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

body.home-page .heroLogo{
  display:block;
  width:auto;
  height:auto;
  max-width:min(720px, 86vw);
  max-height:clamp(220px, 52svh, 560px);
  object-fit:contain;
  margin:0 auto clamp(14px, 3vh, 30px);
}

body.home-page .heroButtons{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(10px, 1.4vw, 18px);
  flex-wrap:wrap;
  margin:0;
}

body.home-page .heroButtons .btn{
  min-width:clamp(150px, 14vw, 190px);
}

body.home-page .heroLogin{
  margin-top:clamp(12px, 2vh, 22px);
  font-size:13px;
  color:var(--muted);
  text-align:center;
}

body.home-page > .footer{
  flex:0 0 auto;
  margin:0;
  border-radius:0;
  padding:12px 10px;
  background:rgba(7,14,25,.70);
}

@media (max-height: 820px){
  body.home-page .heroLogo{
    max-height:46svh;
    margin-bottom:16px;
  }
  body.home-page .heroCard{
    max-height:calc(100svh - 82px);
  }
  body.home-page > .footer{
    padding:9px 10px;
  }
}

@media (max-height: 680px){
  body.home-page .heroLogo{
    max-height:38svh;
  }
  body.home-page .heroLogin{
    margin-top:10px;
  }
}

@media (max-width:700px){
  body.home-page .heroCard{
    width:100%;
    max-height:none;
  }
  body.home-page .heroLogo{
    max-width:88vw;
    max-height:45svh;
  }
  body.home-page .heroButtons .btn{
    width:100%;
    min-width:0;
  }
}


/* =========================================================
   RANKINGS / TABELLE: fluid auf jeder Auflösung
   Ziel:
   - nutzt breite Bildschirme besser aus
   - kein unnötig schmales Kartenlayout
   - bei 1920x1080 kompakt genug ohne unnötigen Scroll
   - Footer optisch wie Index: volle Breite unten
   ========================================================= */
body.rankings-page{
  min-height:100svh;
  padding:0;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

body.rankings-page > .topHeader,
body.rankings-page > header,
body.rankings-page .site-header,
body.rankings-page .header,
body.rankings-page .leagueHeader{
  flex:0 0 auto;
}

.rankings-main{
  width:min(96vw, 1800px);
  margin:0 auto;
  padding:clamp(12px, 1.4vw, 22px) 0 0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:clamp(10px, 1.2vh, 14px);
}

body.rankings-page .topbar.rankings-statsbar{
  width:100%;
  margin:14px 0;
}

body.rankings-page .mobileStats{
  margin:0;
  padding:clamp(10px, 1.25vw, 16px) clamp(12px, 1.5vw, 20px);
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
  box-shadow:var(--shadow);
}

body.rankings-page .mobileStatIcon,
body.rankings-page .mobileStatIcon svg{
  margin-bottom:4px;
}

body.rankings-page .mobileStatValue{
  font-size:clamp(20px, 1.55vw, 28px);
}

body.rankings-page .mobileStatLabel{
  font-size:clamp(10px, .72vw, 12px);
  margin-top:4px;
}

body.rankings-page .mobileStatDivider{
  height:clamp(38px, 4.6vh, 58px);
}

body.rankings-page .card{
  width:calc(100% - 32px) !important;
  max-width:1800px !important;
  margin-left:auto !important;
  margin-right:auto !important;

  margin-top:14px !important;
  margin-bottom:14px !important;

  padding:clamp(10px, 1vw, 18px);
  border-radius:18px;
}

@media (max-width:900px){
  body.rankings-page .card{
    width:calc(100% - 16px) !important;
  }
}

body.rankings-page .tableWrap{
  border-radius:14px;
}

body.rankings-page table.rankings-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
}

body.rankings-page table.rankings-table th,
body.rankings-page table.rankings-table td{
  padding:clamp(7px, .55vw, 12px) clamp(6px, .62vw, 12px);
  font-size:clamp(11px, .74vw, 14px);
  line-height:1.15;
  white-space:nowrap;
}

body.rankings-page table.rankings-table th{
  font-size:clamp(9px, .62vw, 12px);
}

body.rankings-page table.rankings-table th.col-rank,
body.rankings-page table.rankings-table td.col-rank{
  width:44px;
  min-width:44px;
}

body.rankings-page table.rankings-table th.col-player,
body.rankings-page table.rankings-table td.col-player{
  width:clamp(170px, 17vw, 280px);
  min-width:0;
  max-width:none;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.rankings-page table.rankings-table th.col-points,
body.rankings-page table.rankings-table td.col-points{
  width:78px;
  min-width:78px;
}

body.rankings-page .pill{
  padding:4px 9px;
  min-width:30px;
  font-size:clamp(10px, .68vw, 12px);
}

body.rankings-page > .footer{
  flex:0 0 auto;
  width:100%;
  margin:clamp(10px, 1.4vh, 16px) 0 0;
  border-radius:0;
  padding:12px 10px;
  background:rgba(7,14,25,.70);
}

@media (min-width:1921px){
  .rankings-main{
    width:min(92vw, 1960px);
  }
  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    font-size:15px;
    padding:13px 14px;
  }
  body.rankings-page table.rankings-table th{
    font-size:12px;
  }
  body.rankings-page .mobileStatValue{
    font-size:30px;
  }
}

@media (max-width:1500px){
  .rankings-main{
    width:min(97vw, 1500px);
  }
  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    padding:8px 7px;
    font-size:12px;
  }
  body.rankings-page table.rankings-table th{
    font-size:10px;
  }
  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table td.col-player{
    width:190px;
  }
}

@media (max-width:1100px){
  .rankings-main{
    width:calc(100vw - 20px);
    padding-top:10px;
  }
  body.rankings-page table.rankings-table{
    width:max-content;
    min-width:980px;
    table-layout:auto;
  }
  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    font-size:12px;
    padding:9px 10px;
  }
}

@media (max-width:900px){
  .rankings-main{
    width:calc(100vw - 16px);
    padding-top:8px;
  }
  body.rankings-page .mobileStats{
    border-radius:16px;
    padding:10px 8px;
  }
  body.rankings-page table.rankings-table{
    min-width:980px;
  }
  body.rankings-page table.rankings-table th.col-rank,
  body.rankings-page table.rankings-table td.col-rank{
    left:0;
    width:44px;
    min-width:44px;
  }
  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table td.col-player{
    left:44px;
    width:168px;
    max-width:168px;
  }
  body.rankings-page table.rankings-table th.col-points,
  body.rankings-page table.rankings-table td.col-points{
    left:212px;
    width:76px;
    min-width:76px;
  }
}

@media (max-height:820px) and (min-width:1101px){
  .rankings-main{
    gap:8px;
    padding-top:10px;
  }
  body.rankings-page .mobileStats{
    padding:9px 14px;
  }
  body.rankings-page .mobileStatIcon svg{
    width:21px;
    height:21px;
  }
  body.rankings-page .mobileStatValue{
    font-size:22px;
  }
  body.rankings-page .mobileStatLabel{
    font-size:10px;
  }
  body.rankings-page .card{
    padding:10px;
  }
  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    padding-top:7px;
    padding-bottom:7px;
    font-size:12px;
  }
  body.rankings-page table.rankings-table th{
    font-size:10px;
  }
  body.rankings-page > .footer{
    margin-top:8px;
    padding:8px 10px;
  }
  body.rankings-page .footer-links{
    margin-bottom:4px;
  }
}

@media (max-width:700px){
  body.rankings-page .mobileStats{
    flex-direction:row;
  }
  body.rankings-page .mobileStatDivider{
    display:block;
  }
  body.rankings-page > .footer{
    padding:10px 8px;
  }
}


/* =========================================================
   GLOBAL HEADER + LEAGUE DROPDOWN: einheitlich auf allen Seiten
   ========================================================= */
body:not(.home-page){
  padding:0;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

body:not(.home-page) > header,
body:not(.home-page) .site-header,
body:not(.home-page) .topHeader,
body:not(.home-page) .header,
body:not(.home-page) .leagueHeader{
  width:100%;
  max-width:none;
  margin:0;
  flex:0 0 auto;
}

/* Falls header_nav.php direkt eine Card/Leistenbox ausgibt */
body:not(.home-page) > .leagueBox,
body:not(.home-page) > .league-card,
body:not(.home-page) > .navCard,
body:not(.home-page) > .headerCard{
  width:calc(100% - 32px);
  max-width:none;
  margin:0 auto 14px;
}

/* Einheitliches Dropdown / Select im Header */
select,
.header select,
.site-header select,
.topHeader select,
.leagueHeader select,
.nav select{
  min-height:40px;
  border-radius:14px;
  border:1px solid rgba(46,168,255,.30);
  background:linear-gradient(180deg,rgba(18,36,60,.96),rgba(10,22,38,.96));
  color:var(--text);
  font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}

.header select:focus,
.site-header select:focus,
.topHeader select:focus,
.leagueHeader select:focus,
.nav select:focus{
  border-color:rgba(46,168,255,.75);
}

/* Einheitliche Contentbreite für normale Seiten */
body:not(.home-page):not(.rankings-page) > .card,
body:not(.home-page):not(.rankings-page) > .topbar,
body:not(.home-page):not(.rankings-page) > .container,
body:not(.home-page):not(.rankings-page) > .main{
  width:min(96vw, 1800px);
  margin-left:auto;
  margin-right:auto;
}

body:not(.home-page):not(.rankings-page) > .card:first-of-type{
  margin-top:14px;
}

body:not(.home-page):not(.rankings-page) > .footer,
body.rankings-page > .footer,
body.home-page > .footer{
  width:100%;
  max-width:none;
  margin-top:auto;
  border-radius:0;
  background:rgba(7,14,25,.70);
}

body.rankings-page .footer-inner,
body:not(.home-page):not(.rankings-page) .footer-inner,
body.home-page .footer-inner{
  max-width:1800px;
}

/* Rankings Header darf nicht anders wirken als Admin/Header */
body.rankings-page > header,
body.rankings-page .site-header,
body.rankings-page .topHeader,
body.rankings-page .header,
body.rankings-page .leagueHeader{
  width:calc(100% - 20px);
  max-width:1800px;
  margin:0 auto;
}

@media (max-width:700px){
  body:not(.home-page) > .leagueBox,
  body:not(.home-page) > .league-card,
  body:not(.home-page) > .navCard,
  body:not(.home-page) > .headerCard{
    width:calc(100% - 20px);
  }

  body:not(.home-page):not(.rankings-page) > .card,
  body:not(.home-page):not(.rankings-page) > .topbar,
  body:not(.home-page):not(.rankings-page) > .container,
  body:not(.home-page):not(.rankings-page) > .main{
    width:calc(100vw - 20px);
  }
}

/* =========================================
   HEADER / DROPDOWN RANDABSTAND FIX
========================================= */

body.rankings-page .topbar,
body.rankings-page .leagueHeader,
body.rankings-page .header,
body.rankings-page .rankings-main{
    width:min(98%, 1800px);
    margin-left:auto;
    margin-right:auto;
}

/* Mobile etwas enger */
@media (max-width:900px){
    body.rankings-page .topbar,
    body.rankings-page .leagueHeader,
    body.rankings-page .header,
    body.rankings-page .rankings-main{
        width:calc(100% - 16px);
    }
}

/* =========================================================
   FINAL FIX: GLOBALER HEADER-RAND FÜR ALLE UNTERSEITEN
   Dieser Block muss GANZ UNTEN stehen.
   Gibt Header/App-Header links und rechts Luft – nicht auf index.php.
   ========================================================= */

/* Alle möglichen Header-Wrapper */
body:not(.home-page) > header,
body:not(.home-page) .site-header,
body:not(.home-page) .topHeader,
body:not(.home-page) .header,
body:not(.home-page) .leagueHeader,
body:not(.home-page) .app-header,
body:not(.home-page) .appHeader,
body:not(.home-page) .leagueBox,
body:not(.home-page) .league-card,
body:not(.home-page) .navCard,
body:not(.home-page) .headerCard{
  width:calc(100% - 32px) !important;
  max-width:1800px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Direktes Header-Element oben bekommt zusätzlich etwas Abstand nach oben */
body:not(.home-page) > header,
body:not(.home-page) > .site-header,
body:not(.home-page) > .topHeader,
body:not(.home-page) > .header,
body:not(.home-page) > .leagueHeader,
body:not(.home-page) > .app-header,
body:not(.home-page) > .appHeader{
  margin-top:8px !important;
  margin-bottom:15px !important;
}

/* Falls im Header innen eine volle Breite erzwungen wird */
body:not(.home-page) > header > *,
body:not(.home-page) .site-header > *,
body:not(.home-page) .topHeader > *,
body:not(.home-page) .header > *,
body:not(.home-page) .leagueHeader > *,
body:not(.home-page) .app-header > *,
body:not(.home-page) .appHeader > *{
  max-width:100% !important;
}

/* Rankings-Content soll weiterhin sauber zur Headerbreite passen */
body.rankings-page .rankings-main{
  width:calc(100% - 32px) !important;
  max-width:1800px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Normale Seiten-Content passend zum Header */
body:not(.home-page):not(.rankings-page) > .main,
body:not(.home-page):not(.rankings-page) > .container,
body:not(.home-page):not(.rankings-page) > main.main,
body:not(.home-page):not(.rankings-page) > .card,
body:not(.home-page):not(.rankings-page) > .topbar{
  width:calc(100% - 32px) !important;
  max-width:1800px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Footer bleibt bewusst vollbreit wie auf index.php */
body:not(.home-page) > .footer,
body.rankings-page > .footer,
body.home-page > .footer{
  width:100% !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  border-radius:0 !important;
}

/* Tablet / Mobile */
@media (max-width:900px){
  body:not(.home-page) > header,
  body:not(.home-page) .site-header,
  body:not(.home-page) .topHeader,
  body:not(.home-page) .header,
  body:not(.home-page) .leagueHeader,
  body:not(.home-page) .app-header,
  body:not(.home-page) .appHeader,
  body:not(.home-page) .leagueBox,
  body:not(.home-page) .league-card,
  body:not(.home-page) .navCard,
  body:not(.home-page) .headerCard,
  body.rankings-page .rankings-main,
  body:not(.home-page):not(.rankings-page) > .main,
  body:not(.home-page):not(.rankings-page) > .container,
  body:not(.home-page):not(.rankings-page) > main.main,
  body:not(.home-page):not(.rankings-page) > .card,
  body:not(.home-page):not(.rankings-page) > .topbar{
    width:calc(100% - 16px) !important;
  }

  body:not(.home-page) > header,
  body:not(.home-page) > .site-header,
  body:not(.home-page) > .topHeader,
  body:not(.home-page) > .header,
  body:not(.home-page) > .leagueHeader,
  body:not(.home-page) > .app-header,
  body:not(.home-page) > .appHeader{
    margin-top:6px !important;
  }
}

/* =========================================================
   FINAL: Mobile Ranking Sticky nur Name + Punkte
   MUSS GANZ UNTEN STEHEN
========================================================= */

@media (max-width:900px){
  body.rankings-page .tableWrap{
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
  }

  body.rankings-page table.rankings-table{
    width:max-content !important;
    min-width:980px !important;
    table-layout:auto !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
  }

  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    white-space:nowrap !important;
  }

  /* Rang NICHT sticky */
  body.rankings-page table.rankings-table th.col-rank,
  body.rankings-page table.rankings-table td.col-rank{
    position:static !important;
    left:auto !important;
    z-index:auto !important;
  }

  /* Name sticky links */
  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table td.col-player{
    position:sticky !important;
    left:0 !important;
    z-index:30 !important;
    width:145px !important;
    min-width:145px !important;
    max-width:145px !important;
    background:#102033 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  /* Punkte sticky direkt neben Name */
  body.rankings-page table.rankings-table th.col-points,
  body.rankings-page table.rankings-table td.col-points{
    position:sticky !important;
    left:145px !important;
    z-index:30 !important;
    width:72px !important;
    min-width:72px !important;
    max-width:72px !important;
    background:#102033 !important;
  }

  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table th.col-points{
    z-index:40 !important;
    background:#14263d !important;
  }

  body.rankings-page table.rankings-table tr.rank-top td.col-player,
  body.rankings-page table.rankings-table tr.rank-top td.col-points{
    background:#123b35 !important;
  }

  body.rankings-page table.rankings-table tr.rank-gold td.col-player,
  body.rankings-page table.rankings-table tr.rank-gold td.col-points{
    background:#4a3510 !important;
  }

  body.rankings-page table.rankings-table tr.rank-bottom td.col-player,
  body.rankings-page table.rankings-table tr.rank-bottom td.col-points{
    background:#3b1720 !important;
  }
}

/* Chrome Mobile Sticky Fix */
@media (max-width:900px){
  body.rankings-page .card{
    overflow:visible !important;
  }

  body.rankings-page .tableWrap{
    overflow-x:auto !important;
    overflow-y:visible !important;
    position:relative !important;
    transform:none !important;
  }

  body.rankings-page table.rankings-table{
    border-collapse:separate !important;
    border-spacing:0 !important;
  }

  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table td.col-player{
    position:-webkit-sticky !important;
    position:sticky !important;
    left:0 !important;
  }

  body.rankings-page table.rankings-table th.col-points,
  body.rankings-page table.rankings-table td.col-points{
    position:-webkit-sticky !important;
    position:sticky !important;
    left:145px !important;
  }
}
/* =========================================================
   CHROME FIX: Ranking Sticky Mobile
   Nur Name + Punkte sticky
========================================================= */

@media (max-width:900px){

  body.rankings-page .card{
    overflow:visible !important;
  }

  body.rankings-page .tableWrap{
    width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    position:relative !important;
    transform:none !important;
    contain:none !important;
  }

  body.rankings-page table.rankings-table{
    width:max-content !important;
    min-width:980px !important;
    table-layout:auto !important;
    border-collapse:separate !important;
    border-spacing:0 !important;
    overflow:visible !important;
  }

  body.rankings-page table.rankings-table th,
  body.rankings-page table.rankings-table td{
    white-space:nowrap !important;
  }

/* Platz sticky */
body.rankings-page table.rankings-table th.col-rank,
body.rankings-page table.rankings-table td.col-rank{
  position:-webkit-sticky !important;
  position:sticky !important;
  left:0 !important;
  z-index:52 !important;
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  background:#102033 !important;
}

/* Name sticky */
body.rankings-page table.rankings-table th.col-player,
body.rankings-page table.rankings-table td.col-player{
  position:-webkit-sticky !important;
  position:sticky !important;
  left:44px !important;
  z-index:51 !important;
  width:145px !important;
  min-width:145px !important;
  max-width:145px !important;
  background:#102033 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Punkte sticky */
body.rankings-page table.rankings-table th.col-points,
body.rankings-page table.rankings-table td.col-points{
  position:-webkit-sticky !important;
  position:sticky !important;
  left:189px !important; /* 44 + 145 */
  z-index:50 !important;
  width:72px !important;
  min-width:72px !important;
  max-width:72px !important;
  background:#102033 !important;
}

  body.rankings-page table.rankings-table th.col-player,
  body.rankings-page table.rankings-table th.col-points{
    z-index:70 !important;
    background:#14263d !important;
  }
}
/* Rankings wieder wie normales Body-Layout, aber Sticky behalten */
body.rankings-page .rankings-main{
  width:min(100% - 32px, var(--container)) !important;
  max-width:var(--container) !important;
  padding-top:14px !important;
  gap:14px !important;
}

body.rankings-page .card{
  width:calc(100% - 32px) !important;
  max-width:1800px !important;
  margin:14px auto !important;
}

@media (max-width:900px){
  body.rankings-page .card{
    width:calc(100% - 16px) !important;
    margin:12px auto !important;
  }
}

/* MOBILE FIX: Live-Kalender / geplante Matches */
@media (max-width:700px){
  body.scheduled-page .main,
  body.scheduled-page .container{
    width:calc(100% - 16px) !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  body.scheduled-page .card{
    width:100% !important;
    margin:12px auto !important;
    padding:12px !important;
    overflow:visible !important;
  }

  body.scheduled-page .liveFormGrid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  body.scheduled-page input,
  body.scheduled-page select,
  body.scheduled-page textarea,
  body.scheduled-page .btn{
    width:100% !important;
    min-width:0 !important;
  }

  body.scheduled-page table.table{
    min-width:680px !important;
    width:max-content !important;
  }

  body.scheduled-page .card:has(table.table){
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  body.scheduled-page th,
  body.scheduled-page td{
    white-space:nowrap !important;
    font-size:12px !important;
    padding:9px 8px !important;
  }
}
/* FINAL HARD FIX: Live/Stream Modal bleibt im Handy-Bildschirm */
@media (max-width:700px){
  html,
  body{
    overflow-x:hidden !important;
  }

  .statusPanel{
    position:fixed !important;

    left:12px !important;
    right:12px !important;
    top:50% !important;
    bottom:auto !important;

    transform:translateY(-50%) !important;

    width:auto !important;
    min-width:0 !important;
    max-width:none !important;

    max-height:85dvh !important;
    margin:0 !important;

    box-sizing:border-box !important;
    overflow:hidden !important;

    border-radius:18px !important;
    z-index:999999 !important;
  }

  .statusPanel *,
  .statusPanel *::before,
  .statusPanel *::after{
    box-sizing:border-box !important;
    max-width:100% !important;
  }

  .statusList{
    width:100% !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    max-height:calc(85dvh - 60px) !important;
    -webkit-overflow-scrolling:touch;
  }

  .statusItem{
    width:100% !important;
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .statusMatch,
  .statusMeta{
    width:100% !important;
    min-width:0 !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
  }

  .statusAction{
    width:100% !important;
    min-width:0 !important;
    justify-content:center !important;
  }
}

/* Live-Kalender: kompakte Buttons, Edit-Zeile, Aktionen */
body.scheduled-page .btn.small{
  padding:6px 12px;
  font-size:12px;
  border-radius:10px;
  box-shadow:none;
}
body.scheduled-page .btn.ghost{
  border-color:rgba(255,255,255,.18);
  background:rgba(0,0,0,.20);
}
body.scheduled-page .btn.danger{
  border-color:rgba(255,77,109,.55);
  background:linear-gradient(180deg,rgba(255,77,109,.22),rgba(255,77,109,.10));
}
body.scheduled-page td.actions{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
body.scheduled-page td.actions form{margin:0}
body.scheduled-page tr.editing td{background:rgba(46,168,255,.08)}
body.scheduled-page .liveEditForm{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
}
body.scheduled-page .liveEditForm strong{margin-right:6px}
body.scheduled-page .liveFilter{margin:0 0 14px}
body.scheduled-page .liveFilter select{max-width:260px}

