:root{
    font-family:Arial,sans-serif;
    color:#202124;
    background:#f4f6f8;
    --green:#0a7c42;
    --green-dark:#075f34;
    --navy:#15202b;
    --steel:#1769aa;
    --steel-light:#e8f1fb;
    --edart:#a44800;
    --edart-light:#fff0df;
}
*{box-sizing:border-box}
body{margin:0;background:#f4f6f8}
.topbar{position:relative;z-index:1000;background:var(--navy);color:#fff;padding:14px 5%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.topbar a{color:#fff;text-decoration:none}
.brand{font-size:1.25rem;font-weight:700;flex:0 0 auto}
.main-nav{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:4px}
.main-nav>a{margin-left:11px;padding:7px 4px;border-radius:7px}
.main-nav>a:hover{background:rgba(255,255,255,.09)}
.main-nav>.button{padding:8px 11px}
.menu-toggle{display:none;position:relative;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:46px;height:42px;padding:0;border:1px solid rgba(255,255,255,.32);border-radius:9px;background:transparent;color:#fff}
.menu-toggle:hover,.menu-toggle:focus-visible{background:rgba(255,255,255,.1)}
.menu-toggle:focus-visible{outline:3px solid rgba(255,255,255,.25);outline-offset:2px}
.menu-toggle-bar{display:block;width:24px;height:3px;border-radius:999px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
.container{max-width:1100px;margin:28px auto;padding:0 18px}
.card{background:#fff;border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:0 4px 18px rgba(0,0,0,.07)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid .full{grid-column:1/-1}
label{display:block;font-weight:700;margin-bottom:6px;font-size:.9rem}
input,select,textarea{width:100%;padding:11px;border:1px solid #ccd2d8;border-radius:8px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(10,124,66,.12);border-color:var(--green)}
textarea{min-height:120px}
.button,button{display:inline-block;border:0;border-radius:8px;background:var(--green);color:#fff;padding:11px 16px;text-decoration:none;cursor:pointer;font:inherit}
.button:hover,button:hover{background:var(--green-dark)}
.button.secondary{background:#37474f}
.button.small{padding:8px 11px}
.hero-card{padding:24px}
.hero-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:18px}
.hero-heading h1{margin:2px 0 8px;font-size:2rem}
.eyebrow{margin:0;color:var(--green);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.view-switch{display:inline-flex;background:#eef1f4;border-radius:10px;padding:4px;white-space:nowrap}
.view-switch a{padding:9px 14px;border-radius:7px;text-decoration:none;color:#374151;font-weight:700}
.view-switch a.active{background:#fff;color:var(--green);box-shadow:0 2px 7px rgba(0,0,0,.08)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:end}
.filter-action button{min-height:43px}
.full-filter-row{grid-column:1/-1;margin:3px 0 0}
.inline-check,.check-row{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.inline-check input,.check-row input{width:auto;margin:0;accent-color:var(--green)}
.calendar-toolbar{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;text-align:center;padding:12px 18px}
.calendar-toolbar h2{margin:0 0 4px}
.calendar-toolbar p{margin:0}
.month-arrow{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;text-decoration:none;font-size:2rem;line-height:1;color:var(--green);background:#edf7f1}
.month-arrow:hover{background:#dff0e6}
.calendar-card{padding:16px}
.calendar-scroll{overflow-x:auto;border:1px solid #e1e6ea;border-radius:12px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));min-width:826px}
.calendar-weekdays{background:#f5f7f9;border-bottom:1px solid #e1e6ea;font-weight:700;text-align:center}
.calendar-weekdays>div{padding:11px 8px}
.calendar-days{background:#e1e6ea;gap:1px}
.calendar-day{min-height:145px;background:#fff;padding:9px;position:relative}
.calendar-day.empty-day{background:#f8f9fa}
.calendar-day.today{box-shadow:inset 0 0 0 2px var(--green)}
.day-number{font-weight:700;color:#4b5563;margin-bottom:8px}
.today .day-number{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:#fff;width:27px;height:27px;border-radius:50%;margin-top:-2px}
.day-events{display:flex;flex-direction:column;gap:6px}
.calendar-event{display:block;border-left:4px solid;padding:7px 8px;border-radius:6px;text-decoration:none;color:#202124;font-size:.82rem;line-height:1.25;overflow:hidden}
.calendar-event strong,.calendar-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-event small{margin-top:3px;color:#59636e}
.calendar-event.steel{border-color:var(--steel);background:var(--steel-light)}
.calendar-event.edart{border-color:var(--edart);background:var(--edart-light)}
.event-time{font-weight:700;margin-right:4px}
.calendar-legend{display:flex;gap:20px;justify-content:flex-end;padding:15px 4px 2px;color:#59636e;font-size:.9rem}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.legend-dot.steel{background:var(--steel)}
.legend-dot.edart{background:var(--edart)}
.tournament-list{display:flex;flex-direction:column;gap:0}
.tournament{display:grid;grid-template-columns:110px 1fr auto;gap:18px;align-items:center}
.datebox{text-align:center;background:#eef4f0;border-radius:10px;padding:12px}
.datebox strong{display:block;font-size:1.7rem}
.datebox span:first-child{font-size:.85rem}
.tournament h2{margin:8px 0}
.tournament-topline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.badge{display:inline-block;border-radius:30px;padding:5px 10px;font-size:.85rem;font-weight:700}
.badge.steel{background:var(--steel-light);color:var(--steel)}
.badge.edart{background:var(--edart-light);color:var(--edart)}
.places{font-size:.82rem;color:var(--green);font-weight:700}
.places.full{color:#b42318}
.distance-pill{font-size:.82rem;background:#eef1f4;color:#48525c;padding:5px 9px;border-radius:20px;font-weight:700}
.tournament-location{margin:0 0 8px}
.tournament-location span{color:#a0a7ae;margin:0 4px}
.empty-state{text-align:center;padding:28px 18px;color:#59636e}
.empty-state strong{display:block;color:#202124;font-size:1.15rem;margin-bottom:6px}
.alert{padding:12px;border-radius:8px;margin-bottom:15px}
.alert.success{background:#dff4e7;color:#155c34}
.alert.error{background:#ffe0e0;color:#8a1f17}
.alert.warning{background:#fff2c7;color:#6f5200}
.alert a{color:inherit;font-weight:700}
.muted{color:#67717b}
.account-data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.account-data p{margin:0;padding:14px;background:#f6f8f9;border-radius:10px}
.account-data strong,.account-data span{display:block}
.account-data span{margin-top:5px;color:#58636e}
.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}
.section-heading h2{margin:3px 0 8px}
.status-pill{white-space:nowrap;background:#eef1f4;padding:7px 11px;border-radius:20px;font-size:.82rem;font-weight:700;color:#56616b}
.status-pill.success{background:#dff4e7;color:#17643b}
.notification-options{display:flex;flex-wrap:wrap;gap:14px 24px;padding:15px;background:#f6f8f9;border-radius:10px}
.notification-options>strong{width:100%}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.install-steps{list-style:none;padding:0;margin:20px 0}
.install-steps li{padding:8px 0;border-bottom:1px solid #edf0f2}
.install-warning{color:#8a5b00}
.next-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.install-delete{margin-top:18px}
footer{text-align:center;padding:30px;color:#67717b}
footer a{color:#56616b}
.footer-separator{margin:0 5px}

@media(max-width:850px){
    .filters{grid-template-columns:1fr 1fr}
    .filter-action{align-self:end}
    .filter-action button{width:100%}
    .account-data{grid-template-columns:1fr}
}
@media(max-width:720px){
    .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;padding-bottom:12px}
    .brand{min-width:0;margin:0;font-size:1.16rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .menu-toggle{display:inline-flex;justify-self:end}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(2){opacity:0}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
    .main-nav{display:none;grid-column:1/-1;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;width:100%;margin-top:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#1d2b37;box-shadow:0 14px 30px rgba(0,0,0,.25);overflow:hidden}
    .main-nav.is-open{display:flex;animation:mobile-menu-in .18s ease-out}
    .main-nav>a{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:49px;margin:0;padding:13px 15px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700}
    .main-nav>a:last-child{border-bottom:0}
    .main-nav>a:hover,.main-nav>a:focus-visible{background:rgba(255,255,255,.1)}
    .main-nav>.button,.main-nav>.nav-register{background:transparent;color:#fff}
    .main-nav .nav-count{margin-left:auto}
    .grid,.filters{grid-template-columns:1fr}
    .hero-heading,.section-heading{flex-direction:column}
    .hero-heading h1{font-size:1.65rem}
    .view-switch{width:100%}
    .view-switch a{flex:1;text-align:center}
    .calendar-toolbar{grid-template-columns:42px 1fr 42px}
    .calendar-toolbar h2{font-size:1.15rem}
    .tournament{grid-template-columns:80px 1fr}
    .tournament>.button{grid-column:1/-1;text-align:center}
    .datebox{padding:10px 6px}
    .datebox strong{font-size:1.45rem}
    .notification-options{flex-direction:column;gap:12px}
    .form-actions>*{width:100%;text-align:center}
}

/* PWA & Push â€“ V4 */
[hidden]{display:none!important}
body{padding-bottom:env(safe-area-inset-bottom)}
.topbar{padding-top:max(14px,env(safe-area-inset-top));padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right))}
.brand{display:inline-flex;align-items:center;gap:7px}
.brand-icon{line-height:1}
.app-install-card,.push-card{overflow:hidden}
.app-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.app-feature-grid>div{background:#f6f8f9;border:1px solid #e8ecef;border-radius:12px;padding:16px}
.app-feature-grid strong{display:block;margin-bottom:6px}
.app-feature-grid p{margin:0;color:#606b75;line-height:1.45;font-size:.92rem}
.ios-install-hint{margin-top:16px;background:#eef5ff;border:1px solid #bfd5ef;border-radius:12px;padding:16px}
.ios-install-hint ol{margin:10px 0 0;padding-left:22px}
.ios-install-hint li{margin:7px 0}
.push-status{white-space:nowrap;padding:8px 12px;border-radius:999px;background:#eef1f4;color:#56616b;font-size:.84rem;font-weight:700}
.push-status[data-state="active"]{background:#dff4e7;color:#17643b}
.push-status[data-state="warning"]{background:#fff2c7;color:#745600}
.push-status[data-state="error"]{background:#ffe0e0;color:#8a1f17}
.push-status[data-state="loading"]{background:#eaf2fb;color:#315f8d}
.push-detail{background:#f6f8f9;border-radius:10px;padding:14px;margin:0 0 16px;line-height:1.5;color:#4d5964}
.privacy-note{font-size:.82rem;color:#6a747e;margin:16px 0 0;line-height:1.45}
.app-toast{position:fixed;z-index:9999;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,calc(100% - 28px));background:#15202b;color:#fff;border-radius:12px;padding:13px 14px;box-shadow:0 12px 35px rgba(0,0,0,.28);display:flex;align-items:center;justify-content:space-between;gap:14px}
.app-toast button{padding:8px 11px;white-space:nowrap}

@media(display-mode:standalone){
    .topbar{position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(0,0,0,.12)}
}

@media(max-width:850px){
    .app-feature-grid{grid-template-columns:1fr}
}
@media(max-width:720px){
    .app-toast{align-items:stretch;flex-direction:column}
    .app-toast button{width:100%}
    .push-status{white-space:normal}
}

/* Verwaltung, Absagen, Verschiebungen und Ortsauswahl â€“ V5 */
.button.danger,button.danger{background:#b42318}
.button.danger:hover,button.danger:hover{background:#8f1c13}
.button.warning,button.warning{background:#b66a00}
.button.warning:hover,button.warning:hover{background:#8e5200}
.text-link{color:var(--green);font-weight:700;text-decoration:none}
.text-link:hover{text-decoration:underline}
.status-badge,.registration-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.8rem;font-weight:800;white-space:nowrap}
.status-badge.published{background:#dff4e7;color:#17643b}
.status-badge.cancelled,.registration-badge.cancelled{background:#ffe0e0;color:#8a1f17}
.status-badge.rescheduled{background:#fff2c7;color:#745600}
.status-badge.draft{background:#eef1f4;color:#56616b}
.registration-badge.registered{background:#e8f1fb;color:#1769aa}
.registration-badge.confirmed{background:#dff4e7;color:#17643b}
.registration-badge.waiting{background:#fff2c7;color:#745600}
.registration-badge.rejected{background:#f1e7f7;color:#6a357f}
.location-panel{background:#f7f9fa;border:1px solid #e2e7ea;border-radius:12px;padding:18px}
.location-panel h2{margin:0 0 4px;font-size:1.15rem}
input[readonly]{background:#eef1f4;color:#5d6670;cursor:not-allowed}
.action-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px}
.action-card{border:1px solid #e1e6ea;border-radius:14px;padding:20px;background:#fbfcfd}
.action-card h2{margin-top:0}
.cancel-card{border-color:#f3c0bc;background:#fff8f7}
.reschedule-card{border-color:#efd99c;background:#fffdf6}
.management-list{display:flex;flex-direction:column;gap:0}
.management-item{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px;align-items:center}
.management-item.cancelled,.tournament.cancelled{border-left:6px solid #b42318;background:#fffafa}
.management-item h2{margin:8px 0}
.management-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.management-actions .button,.management-actions button{text-align:center;width:100%}
.management-actions form{margin:0}
.cancel-reason{background:#fff0ef;border-left:4px solid #b42318;padding:10px 12px;border-radius:6px;color:#7a211a}
.reschedule-summary{background:#fff8dc;border-left:4px solid #b66a00;padding:9px 12px;border-radius:6px;color:#6f5200}
.calendar-event.cancelled{background:#fff0ef!important;border-color:#b42318!important;opacity:.92;text-decoration:line-through}
.calendar-event.rescheduled{box-shadow:inset 0 0 0 2px #d59b27}
.event-state{display:block;font-weight:900;font-size:.68rem;letter-spacing:.06em;color:#9a251b;margin-bottom:3px;text-decoration:none}
.calendar-event.rescheduled .event-state{color:#8a5b00}
.legend-dot.cancelled{background:#b42318}
.tournament.cancelled h2{text-decoration:line-through}
.tournament-detail.is-cancelled{border-top:6px solid #b42318}
.cancellation-notice,.reschedule-notice{line-height:1.55}
.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}
.detail-grid>div{background:#f6f8f9;border-radius:10px;padding:14px}
.detail-label{display:block;color:#67717b;font-size:.82rem;margin-bottom:5px}
.detail-section{border-top:1px solid #edf0f2;padding-top:16px;margin-top:16px}
.detail-section h2{font-size:1.05rem;margin:0 0 9px}
.registration-status{background:#eef5ff;border:1px solid #cbdff4;border-radius:10px;padding:13px;margin:18px 0}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.admin-stat{text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}
a.admin-stat:hover{transform:translateY(-2px);box-shadow:0 7px 22px rgba(0,0,0,.11)}
.admin-stat span{display:block;color:#68737d;font-weight:700;font-size:.85rem}
.admin-stat strong{display:block;font-size:2rem;margin-top:8px;color:var(--navy)}
.table-wrap{overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;min-width:720px}
.admin-table th,.admin-table td{text-align:left;padding:13px 12px;border-bottom:1px solid #e8ecef;vertical-align:top}
.admin-table th{background:#f5f7f9;color:#4e5963;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
.admin-table a{color:var(--green)}
.inline-admin-form{display:grid;grid-template-columns:minmax(155px,1fr) auto auto;gap:10px;align-items:center}
.inline-admin-form .inline-check{margin:0;white-space:nowrap}
.inactive-row{opacity:.62;background:#f7f7f7}
.admin-filters{margin-top:18px}
.check-list{list-style:none;padding:0;margin:16px 0}
.check-list li{padding:7px 0;border-bottom:1px solid #edf0f2}
code{background:#eef1f4;padding:2px 5px;border-radius:4px}

@media(max-width:950px){
    .admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .action-grid{grid-template-columns:1fr}
    .management-item{grid-template-columns:1fr}
    .management-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .management-actions .text-link{padding:10px 0;text-align:center}
}
@media(max-width:720px){
    .detail-grid,.admin-stat-grid{grid-template-columns:1fr}
    .management-actions{grid-template-columns:1fr}
    .inline-admin-form{grid-template-columns:1fr}
    .location-panel{padding:14px}
}

/* Turniergrafiken und Flyer â€“ V6 */
.upload-field{background:#f7f9fa;border:1px dashed #bfc9d1;border-radius:12px;padding:16px}
.upload-field small,.media-upload-form small{display:block;margin-top:7px;color:#68737d;line-height:1.45}
.media-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;background:#f7f9fa;border:1px solid #e1e6ea;border-radius:12px;padding:16px;margin-bottom:18px}
.media-upload-form button{min-height:43px}
.media-empty{background:#f8fafb;border:1px dashed #d5dce1;border-radius:10px;margin-top:4px}
.media-manager-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.media-manager-item{position:relative;border:1px solid #dde3e7;border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column;min-width:0}
.media-manager-item.is-cover{border:2px solid var(--green);box-shadow:0 0 0 3px rgba(10,124,66,.08)}
.media-preview{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;background:#eef1f4;overflow:hidden;text-decoration:none}
.media-preview img{width:100%;height:100%;object-fit:contain;background:#f2f3f4}
.pdf-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:150px;width:100%;padding:20px;background:linear-gradient(145deg,#f8eded,#fff);color:#982d25;text-align:center}
.pdf-preview strong{font-size:2rem;letter-spacing:.08em}
.pdf-preview small{color:#6d4542;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-manager-info{padding:12px 13px;display:flex;flex-direction:column;gap:5px;min-width:0}
.media-manager-info>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-manager-info>span{color:#68737d;font-size:.82rem}
.cover-label{display:inline-flex!important;align-self:flex-start;background:#dff4e7;color:#17643b!important;border-radius:999px;padding:4px 8px;font-weight:800}
.media-manager-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 13px 13px;margin-top:auto}
.media-manager-actions form{margin:0;flex:1}
.media-manager-actions button{width:100%;white-space:nowrap}
.tournament-cover{display:block;position:relative;width:min(100%,760px);margin:20px auto 24px;background:#eef1f4;border-radius:14px;overflow:hidden;text-decoration:none;box-shadow:0 6px 22px rgba(0,0,0,.12)}
.tournament-cover img{display:block;width:100%;max-height:900px;object-fit:contain;background:#f1f2f3}
.tournament-cover>span{display:block;padding:10px 14px;background:#15202b;color:#fff;text-align:center;font-size:.86rem;font-weight:700}
.tournament-media-section{margin-top:24px}
.public-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.public-media-item{display:flex;flex-direction:column;border:1px solid #dde3e7;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;background:#fff;transition:transform .15s ease,box-shadow .15s ease;min-width:0}
.public-media-item:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(0,0,0,.11)}
.public-media-item>img{display:block;width:100%;aspect-ratio:4/5;object-fit:contain;background:#f1f2f3}
.public-media-item .pdf-preview{aspect-ratio:4/5;min-height:0}
.public-media-caption{padding:10px 12px;color:#56616b;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:900px){
    .media-manager-grid,.public-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .media-upload-form{grid-template-columns:1fr}
    .media-upload-form button{width:100%}
    .media-manager-grid,.public-media-grid{grid-template-columns:1fr}
    .tournament-cover{margin-top:16px}
    .tournament-cover img{max-height:none}
}

/* Standortfilter in der TurnierÃ¼bersicht â€“ V7 */
.filters.location-filters{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}
.location-filters .filter-search-wide{grid-column:span 2}
.location-filters .filter-buttons{display:flex;gap:9px;align-items:stretch}
.location-filters .filter-buttons button,.location-filters .filter-buttons .button{min-height:43px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
.location-filters select:disabled{background:#eef1f3;color:#89939b;cursor:not-allowed}

@media(max-width:1050px){
    .filters.location-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
    .location-filters .filter-search-wide{grid-column:span 2}
}
@media(max-width:620px){
    .filters.location-filters{grid-template-columns:1fr}
    .location-filters .filter-search-wide{grid-column:span 1}
    .location-filters .filter-buttons{display:grid;grid-template-columns:1fr 1fr}
}

/* Freundesystem und Nachrichten â€“ V8 */
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d93b32;color:#fff;font-size:.72rem;font-weight:900;line-height:1;vertical-align:middle}
.topbar nav>a .nav-count{margin-left:3px}
.status-pill.warning{background:#fff2c7;color:#745600}
.social-hero h1,.message-page-heading h1{margin:3px 0 8px}
.social-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:18px}
.social-search-form button{min-height:43px}
.social-list{display:flex;flex-direction:column;border:1px solid #e5e9ec;border-radius:12px;overflow:hidden}
.social-person-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;background:#fff;border-bottom:1px solid #e8ecef}
.social-person-row:last-child{border-bottom:0}
.social-list.compact .social-person-row{padding-top:11px;padding-bottom:11px}
.social-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:#e4f2e9;color:var(--green-dark);font-weight:900;font-size:1rem;text-transform:uppercase}
.social-avatar.large{width:54px;height:54px;font-size:1.2rem}
.social-avatar.mini{width:26px;height:26px;font-size:.72rem}
.social-person-main{min-width:0}
.social-person-main>strong,.social-person-main>span,.social-person-main>small{display:block}
.social-person-main>strong{font-size:1rem;margin-bottom:4px}
.social-person-main>span{color:#56616b;font-size:.88rem}
.social-person-main>small{color:#87919a;font-size:.77rem;margin-top:4px}
.social-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.social-row-actions form{margin:0}
.friend-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.friend-card{display:flex;flex-direction:column;border:1px solid #dfe5e9;border-radius:14px;background:#fbfcfd;overflow:hidden;min-width:0}
.friend-card-header{display:flex;align-items:center;gap:13px;padding:17px;border-bottom:1px solid #e8ecef;background:#fff}
.friend-card-header h3{margin:0 0 4px;font-size:1.08rem}
.friend-card-header p{margin:0;color:#65717b;font-size:.86rem}
.friend-tournaments{padding:15px 17px;display:flex;flex-direction:column;gap:8px;flex:1}
.friend-tournaments>strong{font-size:.84rem;text-transform:uppercase;letter-spacing:.04em;color:#68737d}
.friend-tournaments>p{margin:5px 0}
.friend-tournaments>a{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:10px;row-gap:2px;padding:9px 10px;border-radius:9px;background:#fff;border:1px solid #e6eaed;color:inherit;text-decoration:none}
.friend-tournaments>a:hover{border-color:#b9d6c4;background:#f7fcf9}
.friend-tournaments>a>span{grid-row:1/3;color:var(--green);font-size:.79rem;font-weight:800;padding-top:2px}
.friend-tournaments>a>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friend-tournaments>a>small{color:#67717b}
.friend-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 17px 17px}
.friend-card-actions .button,.friend-card-actions button{width:100%;height:100%;text-align:center}
.friend-card-actions form{margin:0}
.compact-heading{margin-bottom:12px}
.friends-at-tournament{margin-top:22px}
.friend-attendee-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.friend-attendee{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;background:#f7faf8;border:1px solid #dfeae3;border-radius:11px;padding:11px}
.friend-attendee-main{min-width:0}
.friend-attendee-main strong,.friend-attendee-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.friend-attendee-main small{color:#65717b;margin-top:3px}
.empty-friends-note{color:#65717b}
.empty-friends-note p{margin:0}
.friends-preview{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.friends-preview-label{font-size:.82rem;font-weight:800;color:#59636e}
.friends-preview>a{display:inline-flex;align-items:center;gap:5px;border:1px solid #dfe6e2;border-radius:999px;padding:3px 8px 3px 3px;background:#f7fbf8;color:#244a34;text-decoration:none;font-size:.79rem;font-weight:700}
.friends-preview>a:hover{border-color:#9cc5aa;background:#eef8f1}
.friends-preview>small{color:#68737d;font-weight:700}
.message-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;align-items:stretch}
.conversation-list-card,.chat-card{margin-bottom:0;min-height:620px}
.conversation-list-card{padding:0;overflow:hidden}
.conversation-list-card>h2{font-size:1.05rem;margin:0;padding:17px 18px;border-bottom:1px solid #e8ecef}
.conversation-list{display:flex;flex-direction:column;max-height:760px;overflow-y:auto}
.conversation-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid #edf0f2;color:inherit;text-decoration:none;background:#fff}
.conversation-item:hover{background:#f7faf8}
.conversation-item.active{background:#eaf5ee;border-left:4px solid var(--green);padding-left:10px}
.conversation-main{min-width:0}
.conversation-main strong,.conversation-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conversation-main small{color:#68737d;margin-top:4px;font-size:.78rem}
.conversation-meta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.conversation-meta time{font-size:.68rem;color:#8a949d;white-space:nowrap}
.chat-card{display:flex;flex-direction:column;padding:0;overflow:hidden}
.chat-header{display:flex;align-items:center;gap:13px;padding:15px 18px;border-bottom:1px solid #e3e8eb;background:#fff}
.chat-header h2{margin:0 0 3px;font-size:1.1rem}
.chat-header p{margin:0;color:#68737d;font-size:.84rem}
.message-thread{height:480px;overflow-y:auto;padding:20px;background:#eef2f0;display:flex;flex-direction:column;gap:8px}
.chat-empty{margin:auto;text-align:center;color:#65717b;max-width:360px;padding:25px}
.chat-empty strong{display:block;color:#2d353c;font-size:1.05rem;margin-bottom:7px}
.message-date-divider{display:flex;justify-content:center;margin:8px 0}
.message-date-divider span{background:rgba(255,255,255,.9);border:1px solid #dce3df;border-radius:999px;padding:5px 10px;color:#68737d;font-size:.72rem;font-weight:800}
.chat-message{max-width:min(78%,620px);padding:10px 12px;border-radius:13px;box-shadow:0 1px 3px rgba(0,0,0,.08);line-height:1.45;overflow-wrap:anywhere}
.chat-message>div{white-space:normal}
.chat-message time{display:block;margin-top:5px;text-align:right;font-size:.68rem;color:#758079}
.chat-message.mine{align-self:flex-end;background:#dff4e7;border-bottom-right-radius:4px}
.chat-message.theirs{align-self:flex-start;background:#fff;border-bottom-left-radius:4px}
.message-compose{padding:15px 18px 18px;background:#fff;border-top:1px solid #e1e6e3}
.message-compose textarea{min-height:82px;max-height:180px;resize:vertical}
.message-compose-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.message-compose-actions small{color:#7b858e}

@media(max-width:950px){
    .friend-card-grid{grid-template-columns:1fr}
    .message-layout{grid-template-columns:280px minmax(0,1fr)}
    .friend-attendee-list{grid-template-columns:1fr}
}
@media(max-width:760px){
    .social-search-form{grid-template-columns:1fr}
    .social-person-row{grid-template-columns:auto minmax(0,1fr)}
    .social-row-actions{grid-column:1/-1;justify-content:stretch}
    .social-row-actions>*{flex:1}
    .social-row-actions form button,.social-row-actions>.button{width:100%;text-align:center}
    .friend-card-actions{grid-template-columns:1fr}
    .message-layout{grid-template-columns:1fr}
    .conversation-list-card,.chat-card{min-height:0}
    .conversation-list{max-height:290px}
    .message-thread{height:430px}
    .chat-message{max-width:88%}
}
@media(max-width:520px){
    .friend-attendee{grid-template-columns:auto minmax(0,1fr)}
    .friend-attendee>.button{grid-column:1/-1;width:100%;text-align:center}
    .message-thread{height:390px;padding:14px 10px}
    .message-compose{padding:12px}
    .message-compose-actions{align-items:stretch;flex-direction:column}
    .message-compose-actions button{width:100%}
}


/* Mobiles Hamburger-MenÃ¼ â€“ V10 */
@keyframes mobile-menu-in{
    from{opacity:0;transform:translateY(-7px)}
    to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
    .main-nav.is-open{animation:none}
    .menu-toggle-bar{transition:none}
}

/* V12: getrennte Push-Einstellungen */
.push-category-form{margin-top:8px}
.push-notification-options{margin-bottom:14px}
.push-preference-actions{margin-bottom:18px}
.push-device-settings{padding-top:18px;border-top:1px solid #e3e8eb}
@media(max-width:700px){
  .push-notification-options .check-row{align-items:flex-start;line-height:1.35}
  .push-notification-options .check-row input{margin-top:3px}
}

/* V13: dauerhafte LÃ¶schaktionen in der Administration */
.admin-delete-form{margin:0}
.admin-delete-form .button{width:100%;white-space:nowrap}
.user-table td:last-child{min-width:170px}

/* Interne BenutzerprÃ¼fung und Vereinsdaten â€“ V14 */
.button.success,button.success{background:#0a7c42}
.button.success:hover,button.success:hover{background:#075f34}
.disabled-button{background:#aab2b8!important;color:#f7f8f9!important;cursor:not-allowed!important;pointer-events:none;box-shadow:none!important;opacity:.9}
.create-tournament-control{display:flex;flex-direction:column;align-items:flex-end;gap:8px;max-width:360px}
.verification-note{margin:0;color:#7a5600;background:#fff4cf;border:1px solid #ead08a;border-radius:9px;padding:10px 12px;font-size:.9rem;line-height:1.4}
.blocked-create-card .disabled-button{margin:8px 0 12px}
.blocked-create-card .verification-note{max-width:620px;margin-bottom:16px}
.pending-users-card{border:2px solid #e3b33f;background:#fffdf7}
.pending-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:8px 12px;border-radius:999px;background:#fff0bd;color:#6f5200;font-weight:800;white-space:nowrap}
.status-badge.pending{background:#fff0bd;color:#6f5200}
.verification-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.verification-actions form{margin:0}
.verification-empty{background:#fff;border:1px dashed #d7c384;border-radius:10px}
.pending-user-table td{vertical-align:middle}
.pending-stat{border:2px solid #e3b33f}
.pending-stat strong{color:#8a5b00}

@media(max-width:720px){
    .create-tournament-control{width:100%;max-width:none;align-items:stretch}
    .create-tournament-control .button{width:100%;text-align:center}
    .verification-actions{align-items:stretch;flex-direction:column}
    .verification-actions form,.verification-actions button{width:100%}
    .pending-count-badge{align-self:flex-start}
}

/* V16: private Nachrichten an Veranstalter */
.organizer-contact-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f7fafb;border:1px solid #dbe4e8;border-radius:12px;padding:18px}
.organizer-contact-card h2{margin:0 0 5px}
.organizer-contact-card p{margin:0}
.organizer-contact-card .button{white-space:nowrap}
.conversation-group-title{padding:10px 12px 6px;color:#68747d;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:#f7f9fa;border-top:1px solid #e5eaed;border-bottom:1px solid #e5eaed}
.conversation-group-title:first-child{border-top:0}
.tournament-message-heading .compact-actions{justify-content:flex-end;margin:0}
.tournament-chat-card{max-width:980px;margin-inline:auto;padding:0;overflow:hidden}
.standalone-chat-empty{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;text-align:center}

@media(max-width:720px){
    .organizer-contact-card{align-items:stretch;flex-direction:column}
    .organizer-contact-card .button{width:100%;text-align:center}
    .tournament-message-heading .section-heading{align-items:stretch;flex-direction:column}
    .tournament-message-heading .compact-actions{justify-content:stretch}
    .tournament-message-heading .compact-actions .button{flex:1;text-align:center}
}

/* V17: Portal- und Turnierempfehlungen */
.share-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#fff;border:1px solid #dfe6e9;border-radius:14px;padding:18px 20px;box-shadow:0 4px 18px rgba(0,0,0,.05);margin-bottom:18px}
.share-panel.portal-share{background:linear-gradient(135deg,#f4fbf7,#f8fafc);border-color:#cfe2d6}
.share-panel.tournament-share{margin:0;background:#f7faf8;border-color:#d6e6dc;box-shadow:none}
.share-panel-copy{min-width:0}
.share-panel-copy h2{margin:0 0 6px;font-size:1.08rem}
.share-panel-copy p{margin:0;color:#65717b;line-height:1.45}
.share-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.share-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:0;border-radius:9px;padding:10px 14px;color:#fff;text-decoration:none;font-weight:800;font-size:.88rem;white-space:nowrap;cursor:pointer}
.share-button.whatsapp{background:#128c4a}
.share-button.whatsapp:hover{background:#0d713a}
.share-button.facebook{background:#1864b7}
.share-button.facebook:hover{background:#124f91}
.share-button.email{background:#6d4c8d}
.share-button.email:hover{background:#563b70}
.share-button.native{background:#0a7c42}
.share-button.native:hover{background:#075f34}
.share-button.copy{background:#4b5964}
.share-button.copy:hover{background:#37434c}
.tournament-share-section{padding-top:18px}
.invite-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;margin:18px 0 22px;padding:20px;border:2px solid #73b58e;border-radius:14px;background:linear-gradient(135deg,#eaf8ef,#f7fbff)}
.invite-kicker{display:block;margin-bottom:5px;color:#0a7c42;font-size:.76rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.invite-banner h2{margin:0 0 7px;font-size:1.25rem}
.invite-banner p{margin:0;color:#52616b;line-height:1.5}
.invite-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;max-width:390px}
.invite-actions .button{text-align:center}

@media(max-width:850px){
    .share-panel{align-items:stretch;flex-direction:column}
    .share-actions{justify-content:flex-start}
    .invite-banner{grid-template-columns:1fr}
    .invite-actions{justify-content:flex-start;max-width:none}
}
@media(max-width:560px){
    .share-panel{padding:16px}
    .share-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .share-button{width:100%;white-space:normal;text-align:center}
    .invite-actions{display:grid;grid-template-columns:1fr;width:100%}
    .invite-actions .button{width:100%}
}

/* V18: E-Mail-BestÃ¤tigung, unbegrenzte Teilnehmerzahl und formatierte Informationen */
.verification-mail-card{max-width:760px;margin-inline:auto}
.verification-mail-card>p{line-height:1.55}
.verification-resend-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:18px 0}
.verification-resend-form label{grid-column:1/-1}
.max-player-field{display:flex;flex-direction:column;gap:8px}
.compact-check{margin:0;font-size:.9rem}
.rich-text-editor{overflow:hidden;border:1px solid #cbd5da;border-radius:10px;background:#fff}
.rich-text-toolbar{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:8px;background:#f2f5f6;border-bottom:1px solid #dce3e6}
.rich-text-toolbar button{min-height:34px;padding:6px 10px;border:1px solid #c9d2d7;border-radius:7px;background:#fff;color:#26343d;font-size:.82rem;font-weight:700;cursor:pointer}
.rich-text-toolbar button:hover,.rich-text-toolbar button:focus{border-color:#0a7c42;background:#eef8f2;color:#075d33}
.rich-text-area{min-height:190px;padding:13px 14px;outline:none;line-height:1.55}
.rich-text-area:focus{box-shadow:inset 0 0 0 2px rgba(10,124,66,.18)}
.rich-text-area:empty:before{content:'Turnierinformationen eingeben â€¦';color:#8a959c;pointer-events:none}
.rich-text-area h3,.rich-text-area h4,.tournament-rich-info h3,.tournament-rich-info h4{margin:1em 0 .45em}
.rich-text-area p,.tournament-rich-info p{margin:.55em 0}
.rich-text-area ul,.rich-text-area ol,.tournament-rich-info ul,.tournament-rich-info ol{margin:.65em 0;padding-left:1.6em}
.rich-text-area blockquote,.tournament-rich-info blockquote{margin:.8em 0;padding:10px 14px;border-left:4px solid #79aa8e;background:#f3f8f5}
.tournament-rich-info{line-height:1.6;overflow-wrap:anywhere}
.tournament-rich-info a{color:#08763f;text-decoration:underline}

@media(max-width:620px){
    .verification-resend-form{grid-template-columns:1fr}
    .verification-resend-form label{grid-column:auto}
    .rich-text-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .rich-text-toolbar button{width:100%}
}

/* V19: Spielerkarte und private Namensanzeige bei Turnieranmeldungen */
.player-name-link{color:inherit;text-decoration:none;font-weight:inherit;border-bottom:1px dashed rgba(10,124,66,.45);transition:color .18s ease,border-color .18s ease}
.player-name-link:hover,.player-name-link:focus{color:#087640;border-bottom-color:#087640}
.chat-player-link{font-weight:800;border-bottom-color:rgba(255,255,255,.25)}
.player-profile-shell{display:grid;gap:18px;max-width:980px;margin-inline:auto}
.player-profile-card{padding:0;overflow:hidden;border:1px solid #dbe5df}
.player-profile-banner{position:relative;display:flex;align-items:center;gap:22px;padding:30px;background:linear-gradient(135deg,#10212c 0%,#174a3a 58%,#0a7c42 100%);color:#fff}
.player-profile-banner:after{content:'ðŸŽ¯';position:absolute;right:24px;top:12px;font-size:6rem;line-height:1;opacity:.09;transform:rotate(-12deg);pointer-events:none}
.player-profile-avatar{position:relative;z-index:1;display:grid;place-items:center;width:104px;height:104px;flex:0 0 104px;border:4px solid rgba(255,255,255,.75);border-radius:28px;background:linear-gradient(145deg,#fff,#dceee3);color:#0a6e3b;font-size:2.7rem;font-weight:950;box-shadow:0 14px 34px rgba(0,0,0,.25);transform:rotate(-3deg)}
.player-profile-heading{position:relative;z-index:1;min-width:0}
.player-profile-heading .eyebrow{color:#b9efd0;margin:0 0 4px}
.player-profile-heading h1{margin:0;color:#fff;font-size:clamp(2rem,5vw,3.2rem);line-height:1.02;overflow-wrap:anywhere}
.player-real-name{margin:8px 0 0;color:#d9e9e0;font-size:1rem}
.player-profile-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.player-profile-badges .status-pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff}
.status-pill.soft{background:#eef4f1;color:#4f6158;border:1px solid #dbe6e0}
.player-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid #e2e9e5;background:#f7faf8}
.player-profile-stats>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:104px;padding:18px;text-align:center;border-right:1px solid #e2e9e5}
.player-profile-stats>div:last-child{border-right:0}
.player-profile-stats strong{font-size:1.75rem;line-height:1;color:#0a7c42}
.player-profile-stats span{max-width:180px;color:#66746d;font-size:.82rem;line-height:1.35}
.player-profile-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:22px}
.player-profile-info-grid>div{display:flex;flex-direction:column;gap:5px;padding:14px;border:1px solid #e0e7e3;border-radius:12px;background:#fbfcfb}
.player-profile-info-grid span{color:#728079;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.player-profile-info-grid strong{font-size:1rem;overflow-wrap:anywhere}
.player-profile-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 22px 24px}
.player-profile-actions form{margin:0}
.player-upcoming-card{overflow:hidden}
.player-tournament-list{display:grid;gap:9px}
.player-tournament-list>a{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid #e0e7e3;border-radius:11px;background:#fbfcfb;color:#233139;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.player-tournament-list>a:hover{transform:translateY(-1px);border-color:#8fc5a7;box-shadow:0 8px 20px rgba(30,72,52,.09)}
.player-tournament-date{display:flex;flex-direction:column;text-align:center;border-right:1px solid #e0e7e3;padding-right:12px}
.player-tournament-date strong{color:#0a7c42;font-size:1.1rem}
.player-tournament-date small,.player-tournament-main small{color:#6b7972}
.player-tournament-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.player-tournament-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.public-attendee-chips{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:14px}
.public-attendee-chip{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:6px 11px 6px 6px;border:1px solid #d6e4dc;border-radius:999px;background:#f7fbf8;color:#26362d;text-decoration:none;font-weight:800;transition:border-color .16s ease,transform .16s ease,background .16s ease}
.public-attendee-chip:hover{border-color:#6eb18b;background:#edf8f1;transform:translateY(-1px)}
.public-attendee-chip small{color:#9a6d12;font-size:.7rem}
.anonymous-attendee-count{margin:14px 0 0;padding:12px 14px;border-radius:10px;background:#f2f5f6;color:#56636a;font-weight:800}
.registration-privacy-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:10px 0 18px;padding:14px 16px;border:1px solid #d9e5de;border-radius:12px;background:#f7faf8}
.checkbox-line{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.checkbox-line input{width:19px;height:19px;flex:0 0 19px;margin-top:2px;accent-color:#0a7c42}
.checkbox-line span{display:flex;flex-direction:column;gap:3px;line-height:1.35}
.checkbox-line small{color:#6d7973;font-weight:400}
.tournament-registration-form{display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:760px}
.tournament-registration-form .registration-name-choice{flex:1 1 410px;padding:11px 13px;border:1px solid #d9e5de;border-radius:10px;background:#f7faf8}

@media(max-width:760px){
    .player-profile-banner{align-items:flex-start;padding:23px 18px;gap:15px}
    .player-profile-avatar{width:78px;height:78px;flex-basis:78px;border-radius:22px;font-size:2rem}
    .player-profile-banner:after{font-size:4.5rem;right:8px}
    .player-profile-stats{grid-template-columns:1fr}
    .player-profile-stats>div{min-height:auto;border-right:0;border-bottom:1px solid #e2e9e5;padding:14px}
    .player-profile-stats>div:last-child{border-bottom:0}
    .player-profile-info-grid{grid-template-columns:1fr;padding:16px}
    .player-profile-actions{align-items:stretch;flex-direction:column;padding:0 16px 18px}
    .player-profile-actions .button,.player-profile-actions form,.player-profile-actions button{width:100%;text-align:center}
    .player-tournament-list>a{grid-template-columns:70px minmax(0,1fr);gap:10px}
    .player-tournament-list .registration-badge,.player-tournament-list .status-pill{grid-column:2;justify-self:start}
    .registration-privacy-card{align-items:stretch;flex-direction:column}
    .registration-privacy-card .button{width:100%}
    .tournament-registration-form{align-items:stretch;flex-direction:column;width:100%}
    .tournament-registration-form .registration-name-choice{flex-basis:auto}
    .tournament-registration-form button{width:100%}
}

/* V20: Profilbilder */
.social-avatar,.player-profile-avatar,.account-profile-avatar{overflow:hidden}
.social-avatar img,.player-profile-avatar img,.account-profile-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.social-avatar.has-image,.account-profile-avatar.has-image{background:#dfe8e3;color:transparent;text-transform:none}
.player-profile-avatar.has-image{background:#dce8e1;color:transparent;transform:rotate(-1.5deg)}
.account-summary-head{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.account-summary-head h1{margin:2px 0 0}
.account-summary-head .eyebrow{margin:0}
.account-profile-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:72px;height:72px;border:3px solid #fff;border-radius:22px;background:linear-gradient(145deg,#e8f4ed,#d4e9dd);color:#087640;font-size:1.8rem;font-weight:950;box-shadow:0 8px 24px rgba(24,73,49,.16);text-transform:uppercase}
.account-profile-avatar.large{width:104px;height:104px;border-radius:28px;font-size:2.35rem}
.profile-image-editor{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;padding:18px;border:1px solid #dce7e1;border-radius:14px;background:linear-gradient(135deg,#f7fbf8,#f4f7f8)}
.profile-image-preview{display:flex;align-items:center;justify-content:center}
.profile-image-fields{display:flex;flex-direction:column;gap:8px;min-width:0}
.profile-image-fields input[type=file]{width:100%;padding:10px;border:1px dashed #aabdb2;border-radius:10px;background:#fff}
.profile-image-remove{margin-top:4px;color:#9d2f2a}
.detail-person{display:inline-flex;align-items:center;gap:8px;min-width:0}
.detail-person strong{min-width:0}
.admin-player-cell{display:inline-flex;align-items:flex-start;gap:10px;min-width:0}
.admin-player-cell>span:last-child{min-width:0}

@media(max-width:620px){
    .account-summary-head{align-items:flex-start}
    .account-profile-avatar{width:60px;height:60px;border-radius:18px;font-size:1.45rem}
    .account-profile-avatar.large{width:86px;height:86px;border-radius:24px;font-size:2rem}
    .profile-image-editor{grid-template-columns:1fr;text-align:left}
    .profile-image-preview{justify-content:flex-start}
}
.chat-message.theirs{position:relative;margin-left:34px}
.chat-message-avatar{position:absolute;left:-38px;bottom:0;box-shadow:0 2px 7px rgba(20,55,39,.16)}

/* V22: Unterhaltung lÃ¶schen */
.chat-header{justify-content:space-between;flex-wrap:wrap}
.chat-header-person{display:flex;align-items:center;gap:13px;min-width:0}
.chat-header-person>div{min-width:0}
.chat-delete-form{margin-left:auto}
.small-button{padding:.56rem .78rem;font-size:.82rem}
@media (max-width:640px){
  .chat-header{align-items:stretch}
  .chat-header-person{width:100%}
  .chat-delete-form{width:100%;margin-left:0}
  .chat-delete-form .button{width:100%;text-align:center}
}


/* V24: klare Freundessuche, Gast-Hinweis und Profil-Onboarding */
.player-search-nickname{
    display:block;
    margin-top:2px;
    color:#0a7c42;
    font-size:.8rem;
    font-weight:800;
}
.guest-login-banner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
    padding:15px 18px;
    border:1px solid #bcd8c8;
    border-radius:14px;
    background:linear-gradient(135deg,#eef9f2,#f7fbff);
    box-shadow:0 4px 16px rgba(21,68,43,.07);
}
.guest-login-banner>div:first-child{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.guest-login-banner strong{font-size:1.02rem;color:#173c2b}
.guest-login-banner span{color:#5b6971;line-height:1.4}
.guest-login-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}

.onboarding-overlay{
    position:fixed;
    inset:0;
    z-index:5000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(9,20,27,.72);
    backdrop-filter:blur(5px);
    opacity:0;
    visibility:hidden;
    transition:opacity .18s ease,visibility .18s ease;
}
.onboarding-overlay.is-open{opacity:1;visibility:visible}
.onboarding-dialog{
    position:relative;
    width:min(650px,100%);
    max-height:calc(100vh - 40px);
    overflow:auto;
    padding:30px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:22px;
    background:linear-gradient(155deg,#fff 0%,#f2faf5 68%,#eef5fa 100%);
    box-shadow:0 28px 80px rgba(0,0,0,.35);
    transform:translateY(14px) scale(.98);
    transition:transform .18s ease;
    outline:none;
}
.onboarding-overlay.is-open .onboarding-dialog{transform:translateY(0) scale(1)}
.onboarding-close{
    position:absolute;
    top:12px;
    right:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    padding:0;
    border:0;
    border-radius:50%;
    background:#e8eef0;
    color:#26343d;
    font-size:1.55rem;
    line-height:1;
    cursor:pointer;
}
.onboarding-close:hover{background:#dce5e8}
.onboarding-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    margin-bottom:14px;
    border-radius:19px;
    background:#0a7c42;
    color:#fff;
    font-size:2rem;
    box-shadow:0 10px 24px rgba(10,124,66,.24);
}
.onboarding-dialog h2{margin:3px 45px 10px 0;font-size:clamp(1.55rem,4vw,2.15rem);line-height:1.13}
.onboarding-dialog>p:not(.eyebrow){color:#53626b;line-height:1.55}
.onboarding-checklist{display:grid;gap:10px;margin:20px 0;padding:0;list-style:none}
.onboarding-checklist li{
    position:relative;
    padding:12px 14px 12px 42px;
    border:1px solid #d8e7de;
    border-radius:11px;
    background:rgba(255,255,255,.82);
    color:#263a31;
    font-weight:700;
    line-height:1.4;
}
.onboarding-checklist li::before{
    content:'âœ“';
    position:absolute;
    left:14px;
    top:11px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:50%;
    background:#0a7c42;
    color:#fff;
    font-size:.75rem;
    font-weight:900;
}
.onboarding-highlight{
    padding:12px 14px;
    border-left:4px solid #0a7c42;
    border-radius:8px;
    background:#e8f6ed;
    color:#244735!important;
    font-weight:700;
}
.onboarding-actions{display:flex;align-items:center;gap:10px;margin-top:20px}
.onboarding-actions .button{min-height:46px;text-align:center}

@media(max-width:680px){
    .guest-login-banner{align-items:stretch;flex-direction:column}
    .guest-login-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .guest-login-actions .button{width:100%;text-align:center}
    .onboarding-overlay{align-items:flex-end;padding:10px}
    .onboarding-dialog{max-height:calc(100vh - 20px);padding:24px 18px 20px;border-radius:20px}
    .onboarding-actions{display:grid;grid-template-columns:1fr}
    .onboarding-actions .button{width:100%}
}

/* V29: Veranstaltungsadresse aus Profil und Preispool */
.compact-heading{margin-bottom:12px}
.tournament-location-selector{display:grid;gap:16px}
.profile-location-preview{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px;
    border:1px solid #cddbd3;
    border-radius:15px;
    background:#f7faf8;
}
.profile-location-preview.is-active{
    border-color:#70b48d;
    background:linear-gradient(135deg,#edf9f1,#f8fcfa);
    box-shadow:0 5px 18px rgba(10,124,66,.08);
}
.profile-location-content{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.profile-location-content strong{font-size:1.05rem;color:#183f2d}
.profile-location-content span{color:#586861;line-height:1.35}
.profile-location-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.custom-location-fields{
    padding-top:16px;
    border-top:1px solid #d8e1dc;
}
.custom-location-fields[hidden],
.profile-location-actions [hidden],
[data-organizer-region-fields][hidden],
[data-organizer-country-note][hidden]{display:none!important}
.compact-actions{margin-top:12px}
.profile-location-missing a{font-weight:800}
.organizer-country-note{margin:0}

.prize-pool-section{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin:18px 0 8px;
}
.prize-pool-card{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:18px;
    border:1px solid #d6e1da;
    border-radius:14px;
    background:linear-gradient(145deg,#f9fbfa,#edf6f0);
}
.prize-pool-card.current{background:linear-gradient(145deg,#f8fbff,#edf4fa)}
.prize-pool-card strong{font-size:1.55rem;line-height:1.15;color:#123d28}
.prize-pool-card small{color:#647169;line-height:1.4}
.prize-pool-note{
    grid-column:1/-1;
    margin:0;
    padding:13px 15px;
    border-left:4px solid #d9a112;
    border-radius:9px;
    background:#fff8e6;
    color:#55451a;
    line-height:1.5;
}

@media(max-width:720px){
    .profile-location-preview{align-items:stretch;flex-direction:column}
    .profile-location-actions{justify-content:stretch}
    .profile-location-actions .button{width:100%;text-align:center}
    .prize-pool-section{grid-template-columns:1fr}
}

/* Update V30: Veranstalterprofil, Freundeskategorien und Passwortfunktionen */
.auth-card{max-width:620px;margin:0 auto}
.auth-card .settings-form{margin-top:18px}
.auth-help-link{margin:14px 0 0;text-align:right}
.auth-help-link a{font-weight:750}
.password-change-card{border-top:4px solid #24384a}
.password-change-form{max-width:820px}

.organizer-profile-shell{display:grid;gap:20px}
.organizer-profile-card{overflow:hidden}
.organizer-profile-banner{background:linear-gradient(135deg,#102c23,#1d5a3d 58%,#cf9f2f)}
.organizer-profile-banner .player-profile-heading h1,
.organizer-profile-banner .player-real-name,
.organizer-profile-banner .eyebrow{color:#fff}
.organizer-info-grid .organizer-address-card{grid-column:span 2}
.organizer-address-card strong{line-height:1.55}
.organizer-tournament-list a.is-cancelled{opacity:.7;text-decoration:none}
.organizer-tournament-list a.is-cancelled strong{color:#9a2e2e}

.friend-category-card{scroll-margin-top:90px}
.friend-category-card + .friend-category-card{margin-top:18px}
.social-person-main .player-search-nickname{display:block;margin:2px 0 3px;color:#66746d;font-size:.84rem}

@media(max-width:720px){
    .organizer-info-grid .organizer-address-card{grid-column:span 1}
    .auth-help-link{text-align:left}
}

/* Update V31: Logo, klappbare Kontobereiche und Filter */
.brand{display:inline-flex;align-items:center;min-width:0;line-height:1}
.brand-logo{display:block;width:clamp(210px,22vw,330px);height:auto;max-height:48px;object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 2px rgba(0,0,0,.28))}

.account-page-heading{margin:4px 0 18px;padding:2px 2px 0}
.account-page-heading h1{margin:3px 0 7px}
.account-page-heading .eyebrow{margin:0}

.collapsible-section,.filter-panel{padding:0;overflow:hidden}
.collapsible-section>summary,.filter-panel>summary{list-style:none}
.collapsible-section>summary::-webkit-details-marker,.filter-panel>summary::-webkit-details-marker{display:none}
.collapsible-section>summary::marker,.filter-panel>summary::marker{content:""}
.collapsible-summary,.filter-panel-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 20px;cursor:pointer;user-select:none;transition:background .18s ease,color .18s ease}
.collapsible-summary:hover,.filter-panel-summary:hover{background:#f6f9f7}
.collapsible-summary:focus-visible,.filter-panel-summary:focus-visible{outline:3px solid rgba(0,133,74,.22);outline-offset:-3px}
.collapsible-summary>span:first-child,.filter-summary-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.collapsible-summary .eyebrow,.filter-panel-summary .eyebrow{margin:0}
.collapsible-title,.filter-summary-title{display:block;color:#15202b;font-size:1.18rem;line-height:1.25}
.collapsible-summary .muted,.filter-panel-summary .muted{display:block;line-height:1.4}
.collapsible-summary-main{display:flex!important;align-items:center;flex-direction:row!important;gap:14px}
.collapsible-summary-main>span:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.account-summary-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,#e8f4ed,#d4e9dd);color:#087640;font-size:1.35rem;font-weight:900;overflow:hidden;text-transform:uppercase}
.account-summary-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.collapsible-summary-side,.filter-summary-side{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex:0 0 auto}
.collapsible-chevron{display:inline-block;width:11px;height:11px;border-right:2px solid #4f5f57;border-bottom:2px solid #4f5f57;transform:rotate(45deg);transition:transform .2s ease;flex:0 0 auto;margin:0 3px 5px 5px}
details[open]>.collapsible-summary .collapsible-chevron,details[open]>.filter-panel-summary .collapsible-chevron{transform:rotate(225deg);margin-top:7px;margin-bottom:0}
.collapsible-content,.filter-panel-content{padding:20px;border-top:1px solid #e5ebe7;background:#fff}
.collapsible-content>.alert:first-child{margin-top:0}
.collapsible-content form:first-child,.collapsible-content .app-feature-grid:first-child{margin-top:0}
.collapsible-section[open]>.collapsible-summary,.filter-panel[open]>.filter-panel-summary{background:#f8fbf9}
.password-change-card{border-top:0}

.filter-panel-summary{min-height:104px}
.filter-summary-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:52px;height:52px;border-radius:16px;background:linear-gradient(145deg,#e5f5eb,#cfe9d9);color:#087640;font-size:2rem;font-weight:900}
.filter-summary-title{font-size:1.28rem}
.filter-open-label{font-weight:800;color:#087640;white-space:nowrap}
.filter-panel-content{padding-top:22px}
.filter-panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.filter-panel-heading h1{margin:0 0 7px}
.filter-panel-heading p{margin:0}
.filter-panel .location-filters{margin-top:0}

@media(max-width:900px){
    .brand-logo{width:clamp(185px,28vw,270px);max-height:42px}
    .collapsible-summary-side,.filter-summary-side{gap:8px}
}

@media(max-width:720px){
    .brand-logo{width:205px;max-height:36px}
    .collapsible-summary,.filter-panel-summary{align-items:flex-start;padding:17px 16px;gap:12px}
    .collapsible-summary-side,.filter-summary-side{align-items:center;gap:7px}
    .collapsible-summary-side .status-pill,.filter-summary-side .status-pill,.filter-open-label{display:none}
    .collapsible-content,.filter-panel-content{padding:16px}
    .filter-panel-summary{min-height:90px}
    .filter-summary-icon{width:44px;height:44px;border-radius:14px;font-size:1.65rem}
    .filter-summary-title{font-size:1.1rem}
    .filter-summary-copy .muted{font-size:.85rem}
    .filter-panel-heading{align-items:stretch;flex-direction:column}
    .filter-panel-heading .view-switch{align-self:stretch}
    .filter-panel-heading .view-switch a{flex:1;text-align:center}
    .account-page-heading{padding-inline:2px}
}

@media(max-width:420px){
    .brand-logo{width:178px;max-height:32px}
    .filter-summary-icon{display:none}
    .collapsible-summary-main .account-summary-avatar{width:46px;height:46px;border-radius:14px}
    .collapsible-title,.filter-summary-title{font-size:1.04rem}
}

/* Update V34: Anmeldeschluss, AnwesenheitsprÃ¼fung und No-Show-Markierung */
.status-badge.registration-closed{background:#fff0bd;color:#6f5200}
.status-badge.completed{background:#e6eaf0;color:#24384a}
.legend-dot.registration-closed{background:#d49a00}
.calendar-event.registration-closed:not(.cancelled){box-shadow:inset 0 0 0 2px rgba(212,154,0,.38)}
.calendar-event.registration-closed:not(.cancelled) .event-state.workflow{color:#775600}
.management-item.workflow-finished{border-left:6px solid #465a69;background:#fafbfd}
.workflow-note{margin:12px 0 0;padding:11px 13px;border-left:4px solid #d49a00;border-radius:8px;background:#fff8e3;color:#604a12;line-height:1.45}
.workflow-note.finished{border-color:#465a69;background:#eef2f5;color:#344651}
.attendance-close-button{background:#8c5f00;font-weight:800;line-height:1.35}
.attendance-close-button:hover{background:#6d4900}
.attendance-action{background:#1769aa}
.attendance-action:hover{background:#125687}
.completed-action{background:#465a69}
.completed-action:hover{background:#354651}
.closed-registration-action{max-width:760px;margin:0}
.tournament-workflow-public-note{margin-top:16px}

.attendance-hero{border-top:5px solid #1769aa}
.attendance-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.attendance-status-grid>div{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:92px;padding:15px;border:1px solid #e1e7eb;border-radius:12px;background:#f7f9fa;text-align:center}
.attendance-status-grid strong{font-size:1.8rem;color:#24384a}
.attendance-status-grid span{margin-top:4px;color:#64717a;font-size:.84rem}
.attendance-status-grid .present{background:#ebf8f0;border-color:#c7e6d2}
.attendance-status-grid .present strong{color:#0a7c42}
.attendance-status-grid .missing{background:#fff0ef;border-color:#f0c8c3}
.attendance-status-grid .missing strong{color:#a1261c}
.attendance-finished-note{margin-top:18px}
.attendance-form{padding:0;overflow:hidden}
.attendance-form>.section-heading{padding:20px 20px 4px;margin-bottom:12px}
.attendance-player-list{display:flex;flex-direction:column;border-top:1px solid #e8edf0}
.attendance-player-row{display:grid;grid-template-columns:28px 48px minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:14px 18px;border-bottom:1px solid #e8edf0;background:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.attendance-player-row:hover{background:#f8fbf9}
.attendance-player-row>input{width:22px;height:22px;margin:0;accent-color:#0a7c42}
.attendance-player-row.is-present{background:#eff9f3}
.attendance-player-row.is-no-show{background:#fff4f3}
.attendance-player-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.attendance-player-main strong{font-size:1rem}
.attendance-player-main small{color:#69757e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attendance-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:800;white-space:nowrap}
.attendance-badge.present{background:#dff4e7;color:#17643b}
.attendance-badge.no-show{background:#ffe0e0;color:#8a1f17}
.attendance-badge.pending{background:#eef1f4;color:#59656f}
.attendance-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:#f8fafb}
.attendance-form-footer p{margin:0;max-width:620px}
.attendance-waiting-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.attendance-waiting-list>div{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #e2e7ea;border-radius:10px;background:#f8fafb}
.attendance-waiting-list span{display:flex;flex-direction:column;min-width:0}
.attendance-waiting-list small{color:#69757e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tournament-start-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;border:2px solid #0a7c42;background:linear-gradient(145deg,#f7fcf9,#edf8f1)}
.tournament-start-card h2{margin:4px 0 8px}
.tournament-start-card p{margin:0;line-height:1.55}
.tournament-start-button{min-height:50px;background:#075f34;font-weight:900}
.tournament-start-button:hover{background:#034a28}
.player-profile-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.player-profile-stats .no-show-stat{background:#fff3f2}
.player-profile-stats .no-show-stat strong{color:#a1261c}
.player-no-show-note{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid #efd6d3;background:#fff8f7}
.player-no-show-note p{margin:0;color:#6d504d;font-size:.85rem;line-height:1.4}

@media(max-width:900px){
    .attendance-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .attendance-waiting-list{grid-template-columns:1fr}
    .tournament-start-card{grid-template-columns:1fr}
    .tournament-start-card form,.tournament-start-button{width:100%}
    .player-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
    .attendance-status-grid{grid-template-columns:1fr 1fr}
    .attendance-player-row{grid-template-columns:26px 42px minmax(0,1fr);padding:13px 12px}
    .attendance-player-row .attendance-badge{grid-column:2/-1;justify-self:start}
    .attendance-form-footer{align-items:stretch;flex-direction:column}
    .attendance-form-footer button{width:100%}
    .player-profile-stats{grid-template-columns:1fr}
    .player-no-show-note{align-items:flex-start;flex-direction:column}
}

/* Update V35: Kompaktes Hamburger-MenÃ¼ auch in schmalen PC-App-Fenstern */
@media(max-width:1100px){
    .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;padding-bottom:12px}
    .brand{min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .brand-logo{width:clamp(190px,30vw,280px);max-height:42px}
    .menu-toggle{display:inline-flex;justify-self:end}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(2){opacity:0}
    .menu-toggle.is-open .menu-toggle-bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
    .main-nav{display:none;grid-column:1/-1;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;width:100%;margin-top:12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#1d2b37;box-shadow:0 14px 30px rgba(0,0,0,.25);overflow:hidden}
    .main-nav.is-open{display:flex;animation:mobile-menu-in .18s ease-out}
    .main-nav>a{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:49px;margin:0;padding:13px 15px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700}
    .main-nav>a:last-child{border-bottom:0}
    .main-nav>a:hover,.main-nav>a:focus-visible{background:rgba(255,255,255,.1)}
    .main-nav>.button,.main-nav>.nav-register{background:transparent;color:#fff}
    .main-nav .nav-count{margin-left:auto}
}


/* Update V36: Veranstalteradresse und Unterzeile beim Logo */
.brand{flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}
.brand-tagline{display:block;color:rgba(255,255,255,.82);font-size:.76rem;font-weight:700;line-height:1.2;letter-spacing:.015em;white-space:nowrap}
@media(max-width:1100px){
    .brand-tagline{font-size:.69rem}
}
@media(max-width:560px){
    .brand-logo{width:min(178px,52vw)}
    .brand-tagline{font-size:.61rem;white-space:normal;max-width:210px}
}


/* Update V37: Prominente Turnieranmeldung und separater ZurÃ¼ck-Button */
.prominent-registration-card{position:relative;margin:18px 0 30px;padding:clamp(20px,3vw,30px);overflow:hidden;border:2px solid #0b8b4b;border-radius:20px;background:linear-gradient(135deg,#f4fff8 0%,#e8f8ef 58%,#f8fffb 100%);box-shadow:0 16px 36px rgba(11,139,75,.16)}
.prominent-registration-card::after{content:"";position:absolute;right:-55px;top:-70px;width:190px;height:190px;border-radius:50%;background:rgba(11,139,75,.08);pointer-events:none}
.prominent-registration-heading{position:relative;z-index:1;margin-bottom:18px}
.prominent-registration-kicker{display:block;margin-bottom:5px;color:#087442;font-size:.76rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.prominent-registration-heading h2{margin:0 0 7px;color:#10212e;font-size:clamp(1.35rem,2.6vw,1.85rem)}
.prominent-registration-heading p{max-width:760px;margin:0;color:#40545f;line-height:1.55}
.prominent-registration-status{margin:0 0 14px;border:1px solid rgba(11,139,75,.24);background:#fff}
.prominent-registration-privacy{margin:0 0 16px;background:rgba(255,255,255,.84);border-color:rgba(11,139,75,.2)}
.prominent-registration-actions{position:relative;z-index:1}
.prominent-registration-actions>form{margin:0}
.prominent-registration-form{display:grid;gap:16px}
.prominent-registration-form .registration-name-choice{margin:0;padding:14px 16px;border:1px solid rgba(11,139,75,.18);border-radius:13px;background:#fff}
.prominent-register-button,.prominent-login-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:14px 24px;border-radius:12px;font-size:1.05rem;font-weight:900;box-shadow:0 10px 22px rgba(11,139,75,.22)}
.prominent-register-button{width:100%;border:0;background:#078747;color:#fff;cursor:pointer}
.prominent-register-button:hover,.prominent-register-button:focus-visible{background:#066f3c;transform:translateY(-1px)}
.prominent-login-button{background:#078747;color:#fff}
.prominent-registration-actions .organizer-registration-notice,.prominent-registration-actions .closed-registration-action,.prominent-registration-actions .alert.neutral{margin:0}
.tournament-back-row{display:flex;justify-content:center;margin:38px 0 4px;padding-top:30px;border-top:1px solid #dfe7ea}
.tournament-back-row .button{min-width:190px;text-align:center}
@media(max-width:640px){
    .prominent-registration-card{padding:18px 15px;border-radius:16px}
    .prominent-registration-heading h2{font-size:1.35rem}
    .prominent-register-button,.prominent-login-button{width:100%;font-size:1rem}
    .prominent-registration-actions form,.prominent-registration-actions .button{width:100%}
    .tournament-back-row{margin-top:30px;padding-top:24px}
    .tournament-back-row .button{width:100%}
}

/* Update V38: PersÃ¶nlicher Bereich â€žMeine Turniereâ€œ */
.my-tournaments-hero{position:relative;overflow:hidden;border-top:5px solid #0a7c42;background:linear-gradient(135deg,#ffffff 0%,#f3fbf6 100%)}
.my-tournaments-hero::after{content:'ðŸŽ¯';position:absolute;right:24px;top:10px;font-size:6rem;opacity:.06;transform:rotate(-12deg);pointer-events:none}
.my-tournaments-hero h1{position:relative;z-index:1;margin:4px 0 8px;font-size:clamp(1.8rem,4vw,2.5rem)}
.my-tournaments-hero p{position:relative;z-index:1;max-width:780px;margin-bottom:0;line-height:1.55}
.my-tournaments-section{padding:0;overflow:hidden}
.my-tournaments-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 22px 18px;border-bottom:1px solid #e6ece8;background:#fbfdfc}
.my-tournaments-section-head h2{margin:4px 0 7px;font-size:1.35rem}
.my-tournaments-section-head p{margin-bottom:0}
.my-tournaments-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:42px;height:42px;padding:0 12px;border-radius:999px;background:#e1f3e8;color:#08713d;font-weight:900}
.my-tournaments-list{display:flex;flex-direction:column}
.my-tournament-card{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 22px;border-bottom:1px solid #e8edeb;background:#fff;transition:background .16s ease,transform .16s ease}
.my-tournament-card:last-child{border-bottom:0}
.my-tournament-card:hover{background:#fbfdfc}
.my-tournament-card.is-cancelled{background:#fff9f8}
.my-tournament-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;padding:10px;border-radius:13px;background:#edf6f1;text-align:center}
.my-tournament-date span{color:#4f6a5a;font-size:.8rem;font-weight:800;text-transform:uppercase}
.my-tournament-date strong{font-size:1.75rem;line-height:1.05;color:#0a7c42}
.my-tournament-date small{margin-top:3px;color:#6c7972}
.my-tournament-content{min-width:0}
.my-tournament-content h3{margin:8px 0 6px;font-size:1.15rem}
.my-tournament-content h3 a{color:#18242c;text-decoration:none}
.my-tournament-content h3 a:hover{color:#0a7c42}
.my-tournament-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.my-tournament-location{margin:0 0 7px;color:#34434b;line-height:1.45}
.my-tournament-meta{margin:0;line-height:1.45}
.my-tournament-details{min-width:96px;text-align:center}
.my-registration-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:900;background:#dff4e7;color:#17643b}
.my-registration-pill.waiting{background:#fff0bd;color:#705200}
.my-registration-pill.confirmed{background:#dcecff;color:#185487}
.my-tournaments-empty{padding:30px 22px;text-align:center;color:#5e6b64}
.my-tournaments-empty strong{display:block;margin-bottom:7px;color:#202b25;font-size:1.1rem}
.my-tournaments-empty p{max-width:680px;margin:0 auto 16px;line-height:1.55}
.my-tournaments-empty.location-missing{background:#fffaf0}
.radius-hint a{font-weight:800;color:#0a7c42}
.completed-section .my-tournaments-count{background:#e8edf1;color:#344958}
.completed-section .my-tournament-date{background:#eef1f4}
.completed-section .my-tournament-date strong{color:#40515d}
.nearby-section .my-tournaments-section-head{background:#f8fcfa}

@media(max-width:760px){
    .my-tournaments-section-head{align-items:flex-start;padding:18px 16px}
    .my-tournaments-section-head h2{font-size:1.18rem}
    .my-tournament-card{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:16px}
    .my-tournament-date{min-height:78px;padding:8px 5px}
    .my-tournament-date strong{font-size:1.45rem}
    .my-tournament-details{grid-column:1/-1;width:100%}
    .my-tournaments-empty{padding:25px 16px}
}

@media(max-width:480px){
    .my-tournaments-section-head{gap:10px}
    .my-tournaments-count{min-width:36px;height:36px;padding:0 10px}
    .my-tournament-card{grid-template-columns:64px minmax(0,1fr)}
    .my-tournament-date{min-height:70px;border-radius:10px}
    .my-tournament-badges{gap:6px}
}

/* Update V41: kostenlose Anmeldung und Nutzung */
.free-usage-banner{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;margin:0 0 18px;padding:18px 20px;border:2px solid rgba(255,255,255,.35);border-radius:16px;background:linear-gradient(135deg,#08713d 0%,#0a8f4d 56%,#12a85b 100%);color:#fff;box-shadow:0 14px 32px rgba(8,113,61,.24)}
.free-usage-badge{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;border-radius:999px;background:#fff;color:#08713d;font-size:1rem;font-weight:950;letter-spacing:.035em;text-align:center;text-transform:uppercase;box-shadow:0 6px 16px rgba(0,0,0,.14)}
.free-usage-copy strong,.free-usage-copy span{display:block}
.free-usage-copy strong{font-size:clamp(1.1rem,2.6vw,1.35rem);line-height:1.3}
.free-usage-copy span{margin-top:5px;color:rgba(255,255,255,.9);font-size:.96rem;line-height:1.5}
.intro-free-usage{margin-bottom:20px}
@media(max-width:620px){
    .free-usage-banner{grid-template-columns:1fr;gap:12px;padding:16px;text-align:center}
    .free-usage-badge{justify-self:center}
}

/* Update V40: EinfÃ¼hrung in dartturniere.com */
.registration-intro-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;margin:0 0 18px;padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,#15202b 0%,#173b32 58%,#0a7c42 100%);color:#fff;text-decoration:none;box-shadow:0 12px 28px rgba(21,32,43,.2);transition:transform .18s ease,box-shadow .18s ease}
.registration-intro-banner:hover,.registration-intro-banner:focus-visible{transform:translateY(-2px);box-shadow:0 16px 34px rgba(21,32,43,.27)}
.registration-intro-banner strong,.registration-intro-banner small{display:block}
.registration-intro-banner strong{font-size:1.03rem;line-height:1.35}
.registration-intro-banner small{margin-top:5px;color:rgba(255,255,255,.84);font-size:.9rem;line-height:1.4}
.registration-intro-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.15);font-size:1.25rem;font-weight:900}
.registration-intro-arrow{font-size:1.7rem;font-weight:900}

.intro-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;overflow:hidden;padding:clamp(24px,4vw,42px);background:linear-gradient(135deg,#fff 0%,#f1faf5 62%,#e4f4eb 100%);border-top:5px solid var(--green)}
.intro-hero::before{content:"";position:absolute;right:-80px;bottom:-105px;width:280px;height:280px;border-radius:50%;background:rgba(10,124,66,.07)}
.intro-hero-copy{position:relative;z-index:1}
.intro-hero h1{max-width:780px;margin:5px 0 12px;font-size:clamp(2rem,5vw,3.35rem);line-height:1.05;color:#15202b}
.intro-lead{max-width:800px;margin:0;color:#40515c;font-size:1.08rem;line-height:1.65}
.intro-hero-actions,.intro-final-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.intro-hero-mark{position:relative;z-index:1;font-size:clamp(5rem,12vw,9rem);opacity:.16;transform:rotate(-9deg)}
.intro-section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.intro-section-heading.compact{margin-bottom:14px}
.intro-section-heading h2{margin:4px 0 6px;font-size:clamp(1.45rem,3vw,2rem)}
.intro-updated-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:8px 12px;background:#e2f3e9;color:#08713d;font-size:.8rem;font-weight:900}
.intro-role-warning{padding:clamp(20px,3vw,30px)}
.intro-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.intro-role-card{display:flex;flex-direction:column;align-items:flex-start;min-height:100%;padding:22px;border:1px solid #dfe6e2;border-radius:16px;background:#fbfdfc}
.intro-role-card.player{border-top:5px solid var(--green)}
.intro-role-card.organizer{border-top:5px solid #1769aa;background:#f8fbff}
.intro-role-label{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#e3f3e9;color:#08713d;font-size:.76rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.organizer .intro-role-label,.intro-role-section.organizer .intro-role-label{background:#e4effb;color:#185d94}
.intro-role-card h3{margin:14px 0 8px;font-size:1.28rem}
.intro-role-card p{margin:0 0 14px;color:#52616a;line-height:1.55}
.intro-role-card .button{margin-top:auto}
.intro-role-important{margin:4px 0 18px;padding:13px 14px;border-radius:11px;background:#fff4cf;color:#664d00;line-height:1.5}
.intro-toc{scroll-margin-top:20px}
.intro-toc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.intro-toc-grid>div{display:flex;flex-direction:column;gap:7px;padding:16px;border:1px solid #e4e9e6;border-radius:12px;background:#fafcfb}
.intro-toc-grid strong{margin-bottom:3px;color:#1b2922}
.intro-toc-grid a{color:#17643b;text-decoration:none;line-height:1.4}
.intro-toc-grid a:hover{text-decoration:underline}
.intro-content-section{margin:32px 0}
.intro-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
.intro-feature-card{margin:0;padding:20px}
.intro-feature-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:#edf7f1;font-size:1.25rem}
.intro-feature-card h3{margin:14px 0 7px;font-size:1.08rem}
.intro-feature-card p{margin:0;color:#5a6871;line-height:1.55;font-size:.93rem}
.intro-role-section{margin:44px 0;scroll-margin-top:20px}
.intro-role-section-header{padding:clamp(22px,3vw,32px);border-left:6px solid var(--green);background:linear-gradient(135deg,#fff,#f3fbf6)}
.intro-role-section.organizer .intro-role-section-header{border-left-color:#1769aa;background:linear-gradient(135deg,#fff,#f2f7fd)}
.intro-role-section-header h2{margin:13px 0 9px;font-size:clamp(1.6rem,3.5vw,2.25rem)}
.intro-role-section-header>p{max-width:820px;color:#52616a;line-height:1.6}
.intro-detail-list{display:grid;gap:14px}
.intro-detail-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;align-items:flex-start;margin:0;scroll-margin-top:20px}
.intro-detail-number{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;background:#e4f3ea;color:#08713d;font-size:1.15rem;font-weight:900}
.organizer .intro-detail-number{background:#e5eff9;color:#185d94}
.intro-detail-card h3{margin:2px 0 11px;font-size:1.22rem}
.intro-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 22px;margin:0;padding:0;list-style:none}
.intro-check-list li{position:relative;padding-left:24px;color:#495861;line-height:1.52}
.intro-check-list li::before{content:"âœ“";position:absolute;left:0;top:0;color:var(--green);font-weight:900}
.organizer .intro-check-list li::before{color:#1769aa}
.intro-steps-card{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:24px;align-items:start;margin-top:18px;scroll-margin-top:20px}
.intro-steps-card h3{margin:5px 0 12px;font-size:1.35rem}
.intro-steps-card>.button{grid-column:1/-1;justify-self:start}
.intro-step-list{counter-reset:intro-step;display:grid;gap:10px;margin:0;padding:0;list-style:none}
.intro-step-list li{counter-increment:intro-step;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;color:#46545d;line-height:1.48}
.intro-step-list li::before{content:counter(intro-step);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#15202b;color:#fff;font-weight:900}
.intro-final-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(22px,3vw,32px);background:#15202b;color:#fff}
.intro-final-cta h2{margin:5px 0 8px;font-size:clamp(1.5rem,3vw,2rem)}
.intro-final-cta p{max-width:720px;margin:0;color:rgba(255,255,255,.78);line-height:1.55}
.intro-final-actions{flex:0 0 auto;margin-top:0}
.intro-final-actions .button.secondary{background:#fff;color:#15202b}
.intro-maintenance-note{text-align:center;color:#6a767d;font-size:.85rem;line-height:1.5}

@media(max-width:900px){
    .intro-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .intro-check-list{grid-template-columns:1fr}
    .intro-final-cta{align-items:flex-start;flex-direction:column}
}
@media(max-width:720px){
    .registration-intro-banner{grid-template-columns:auto minmax(0,1fr);padding:16px}
    .registration-intro-arrow{display:none}
    .intro-hero{grid-template-columns:1fr}
    .intro-hero-mark{display:none}
    .intro-role-grid,.intro-toc-grid,.intro-steps-card{grid-template-columns:1fr}
    .intro-section-heading{flex-direction:column}
    .intro-updated-pill{white-space:normal}
    .intro-steps-card>.button{grid-column:auto;width:100%;text-align:center}
    .intro-final-actions{width:100%}
    .intro-final-actions .button{width:100%;text-align:center}
}
@media(max-width:520px){
    .intro-feature-grid{grid-template-columns:1fr}
    .intro-detail-card{grid-template-columns:1fr;gap:10px}
    .intro-detail-number{width:40px;height:40px}
}

/* Update V43: einklappbarer Empfehlungsbereich und Admin-Nachrichten */
.share-collapsible{overflow:hidden;padding:0;margin-bottom:18px}
.share-collapsible>summary{list-style:none}
.share-collapsible>summary::-webkit-details-marker{display:none}
.share-collapsible>summary::marker{content:""}
.share-collapsible-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:82px;padding:16px 18px;cursor:pointer;user-select:none;background:linear-gradient(135deg,#f8fbf9,#f3f8f5);transition:background .18s ease}
.share-collapsible-summary:hover{background:#eef7f2}
.share-collapsible-summary:focus-visible{outline:3px solid rgba(0,133,74,.22);outline-offset:-3px}
.share-summary-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:14px;background:#dff1e7;color:#087640;font-size:1.35rem;font-weight:900}
.share-summary-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}
.share-summary-copy strong{color:#15202b;font-size:1.05rem;line-height:1.3}
.share-summary-copy span{color:#65717b;font-size:.9rem;line-height:1.4}
.share-summary-side{display:flex;align-items:center;gap:10px;color:#087640;font-weight:850;white-space:nowrap}
.share-collapsible[open]>.share-collapsible-summary{border-bottom:1px solid #dde8e1;background:#f6faf8}
.share-collapsible[open]>.share-collapsible-summary .collapsible-chevron{transform:rotate(225deg);margin-top:7px;margin-bottom:0}
.share-collapsible-content{padding:14px}
.share-collapsible .share-panel{margin:0;border:0;box-shadow:none;background:transparent;padding:4px}
.share-collapsible .share-panel-copy h2{font-size:1rem}
.share-collapsible .share-panel-copy p{font-size:.9rem}

.admin-broadcast-card{
    overflow:hidden;
    border-top:5px solid #1769aa;
    background:linear-gradient(145deg,#ffffff 0%,#f7fbff 100%);
}
.admin-broadcast-heading{padding-bottom:18px;border-bottom:1px solid #dfe8ef}
.admin-only-pill{background:#edf3f7;color:#4f5c67}
.admin-broadcast-form{display:grid;gap:22px;margin-top:20px}
.admin-audience-fieldset{min-width:0;margin:0;padding:0;border:0}
.admin-audience-fieldset legend,.admin-broadcast-message label{margin:0 0 10px;font-size:1rem;font-weight:900;color:#17232d}
.admin-audience-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.admin-audience-option{
    position:relative;
    display:flex;
    align-items:center;
    gap:12px;
    min-height:88px;
    padding:15px 16px;
    border:2px solid #dbe5ec;
    border-radius:15px;
    background:#fff;
    cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}
.admin-audience-option:hover{border-color:#91b8d4;box-shadow:0 8px 22px rgba(23,105,170,.09);transform:translateY(-1px)}
.admin-audience-option:has(input:checked){border-color:#1769aa;background:#eef7ff;box-shadow:0 0 0 4px rgba(23,105,170,.11)}
.admin-audience-option:has(input:focus-visible){outline:3px solid rgba(23,105,170,.22);outline-offset:3px}
.admin-audience-option input{position:absolute;opacity:0;pointer-events:none}
.admin-audience-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:#e8f2f9;font-size:1.35rem}
.admin-audience-copy{display:flex;flex:1;flex-direction:column;gap:4px;min-width:0}
.admin-audience-copy strong{font-size:1rem;color:#15202b}
.admin-audience-copy small{color:#687681;line-height:1.35}
.admin-audience-check{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;border-radius:50%;background:#d9e3e9;color:transparent;font-weight:900}
.admin-audience-option input:checked~.admin-audience-check{background:#1769aa;color:#fff}
.admin-broadcast-message{min-width:0}
.admin-broadcast-label-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}
.admin-broadcast-label-row label{margin:0}
.admin-character-counter{font-size:.82rem;font-weight:750;color:#66737e}
.admin-broadcast-message textarea{width:100%;min-height:170px;padding:16px;border:2px solid #dbe5ec;border-radius:14px;background:#fff;resize:vertical;line-height:1.55}
.admin-broadcast-message textarea:focus{border-color:#1769aa;box-shadow:0 0 0 4px rgba(23,105,170,.1)}
.admin-broadcast-note{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:11px 13px;border-radius:11px;background:#eef5fa;color:#52616d;font-size:.9rem;line-height:1.45}
.admin-broadcast-note>span:first-child{display:grid;place-items:center;flex:0 0 auto;width:21px;height:21px;border-radius:50%;background:#1769aa;color:#fff;font-weight:900;font-size:.78rem}
.admin-broadcast-submit{display:flex;justify-content:flex-end;padding-top:2px}
.admin-broadcast-button{min-width:280px;min-height:48px;font-size:1rem}

.admin-message-composer-row>td{padding:0!important;border-top:0!important;background:transparent!important}
.admin-message-composer-row[hidden]{display:none}
.admin-user-message-form-wide{
    display:grid;
    grid-template-columns:minmax(210px,.38fr) minmax(300px,1fr) auto;
    align-items:center;
    gap:16px;
    width:100%;
    margin:0 0 12px;
    padding:18px;
    border:2px solid #b9d4e7;
    border-radius:0 0 14px 14px;
    background:linear-gradient(135deg,#f2f8fc,#ffffff);
    box-shadow:0 10px 24px rgba(25,58,82,.08);
}
.admin-message-recipient{display:flex;align-items:center;gap:11px;min-width:0}
.admin-message-recipient span{display:flex;flex-direction:column;min-width:0}
.admin-message-recipient small{color:#6e7a84;font-weight:700}
.admin-message-recipient strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#14222d}
.admin-user-message-form-wide textarea{width:100%;min-height:110px;padding:13px;border:1px solid #cfdce5;border-radius:11px;background:#fff;resize:vertical;line-height:1.5}
.admin-message-form-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.admin-message-form-actions .button{justify-content:center;white-space:nowrap}
[data-admin-message-toggle].is-active{background:#1769aa;color:#fff;border-color:#1769aa}

@media(max-width:980px){
    .admin-audience-options{grid-template-columns:1fr}
    .admin-user-message-form-wide{grid-template-columns:1fr}
    .admin-message-form-actions{flex-direction:row;justify-content:flex-end}
}
@media(max-width:720px){
    .share-collapsible-summary{align-items:flex-start;min-height:74px;padding:14px}
    .share-summary-side>span:first-child{display:none}
    .share-summary-icon{width:40px;height:40px;border-radius:12px}
    .share-summary-copy strong{font-size:.98rem}
    .share-summary-copy span{font-size:.84rem}
    .share-collapsible-content{padding:10px}
    .admin-broadcast-heading{align-items:flex-start}
    .admin-broadcast-label-row{align-items:flex-start;flex-direction:column;gap:2px}
    .admin-broadcast-message textarea{min-height:150px}
    .admin-broadcast-submit{justify-content:stretch}
    .admin-broadcast-button{width:100%;min-width:0}
    .admin-user-message-form-wide{padding:14px;border-radius:0 0 12px 12px}
    .admin-message-form-actions{flex-direction:column}
    .admin-message-form-actions .button{width:100%}
}


/* V44: Ansichtsschalter auÃŸerhalb des eingeklappten Filters */
.calendar-view-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:14px 18px;
    margin-bottom:14px;
}
.calendar-view-copy{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:6px 12px;
    min-width:0;
}
.calendar-view-copy .eyebrow{width:100%;margin:0}
.calendar-view-copy strong{font-size:1.05rem}
.calendar-view-copy .muted{font-size:.92rem}
.admin-message-quick-card{border-left:5px solid #1769aa}
.admin-message-help{margin-bottom:18px}

@media (max-width:700px){
    .calendar-view-bar{align-items:stretch;flex-direction:column;gap:10px}
    .calendar-view-copy{display:block}
    .calendar-view-copy .eyebrow,.calendar-view-copy strong,.calendar-view-copy .muted{display:block}
    .calendar-view-copy .muted{margin-top:3px}
    .calendar-view-bar .view-switch{width:100%}
    .calendar-view-bar .view-switch a{flex:1;text-align:center}
}

/* V45: externe Turnierlinks */
.external-link-field small{display:block;margin-top:7px;color:#66737e;line-height:1.45}
.tournament-external-link-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    padding:18px;
    border:1px solid #cfe1ee;
    border-radius:14px;
    background:linear-gradient(135deg,#f5faff,#eef7ff);
}
.tournament-external-link-card h2{margin:.15rem 0 .35rem}
.tournament-external-link-card p:last-child{margin-bottom:0}
.external-tournament-link{flex:0 0 auto;white-space:nowrap}
@media(max-width:720px){
    .tournament-external-link-card{align-items:stretch;flex-direction:column}
    .external-tournament-link{width:100%;justify-content:center;text-align:center;white-space:normal}
}

/* V46: persÃ¶nliches Spieler- und Veranstalter-Dashboard */
.dashboard-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 26px 28px;
    margin-bottom: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #f3fbf7 100%);
    border: 1px solid #d8ebe1;
}
.organizer-dashboard-hero {
    background: linear-gradient(135deg, #ffffff 0%, #f4f8fc 100%);
    border-color: #d7e4ef;
}
.dashboard-hero-person {
    display: flex;
    align-items: center;
    gap: 18px;
    min-width: 0;
}
.dashboard-hero-person h1 {
    margin: 2px 0 8px;
}
.dashboard-hero-person p:last-child {
    margin-bottom: 0;
    color: #52616d;
}
.dashboard-avatar {
    width: 78px;
    height: 78px;
    min-width: 78px;
    border-radius: 24px;
    display: inline-grid;
    place-items: center;
    overflow: hidden;
    background: #e8f5ee;
    border: 3px solid #fff;
    box-shadow: 0 8px 22px rgba(20, 45, 35, .14);
    font-size: 30px;
    font-weight: 800;
    color: #087c43;
}
.dashboard-avatar img,
.dashboard-contact-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.dashboard-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}
.dashboard-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.dashboard-stat {
    min-height: 104px;
    padding: 17px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #e1e7eb;
    box-shadow: 0 6px 18px rgba(22, 35, 45, .06);
    color: #1c2b35;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.dashboard-stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(22, 35, 45, .1);
    border-color: #9ccfb3;
}
.dashboard-stat span {
    color: #65727c;
    font-size: .86rem;
    line-height: 1.25;
}
.dashboard-stat strong {
    font-size: 1.8rem;
    color: #0b7e45;
}
.dashboard-stat.has-alert {
    border-color: #efb759;
    background: #fffaf1;
}
.dashboard-stat.has-alert strong {
    color: #b66a00;
}
.dashboard-sections {
    display: grid;
    gap: 14px;
}
.dashboard-section {
    background: #fff;
    border: 1px solid #dfe6ea;
    border-radius: 17px;
    box-shadow: 0 6px 20px rgba(23, 39, 50, .055);
    overflow: hidden;
}
.dashboard-section[open] {
    border-color: #bfddcc;
}
.dashboard-section > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    font-size: 1.08rem;
    font-weight: 800;
    color: #172731;
    background: #fff;
}
.dashboard-section > summary::-webkit-details-marker { display: none; }
.dashboard-section > summary::after {
    content: 'âŒ„';
    font-size: 1.3rem;
    color: #6f7b84;
    transition: transform .18s ease;
}
.dashboard-section[open] > summary::after { transform: rotate(180deg); }
.dashboard-section > summary span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
}
.dashboard-section > summary small {
    color: #0a8548;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 800;
}
.dashboard-section > summary b {
    min-width: 42px;
    height: 34px;
    padding: 0 10px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: #edf6f1;
    color: #087b43;
    font-size: .86rem;
}
.dashboard-section-body {
    border-top: 1px solid #edf0f2;
    padding: 18px 20px 22px;
}
.dashboard-tournament-list,
.dashboard-message-list,
.dashboard-contact-list,
.dashboard-activity-list {
    display: grid;
    gap: 10px;
}
.dashboard-tournament {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr) auto;
    align-items: center;
    gap: 15px;
    padding: 14px;
    border: 1px solid #e3e9ec;
    border-radius: 14px;
    background: #fbfcfd;
}
.dashboard-tournament.is-cancelled { background: #fff5f4; border-color: #efc8c4; }
.dashboard-tournament-date {
    width: 62px;
    height: 62px;
    border-radius: 14px;
    background: #eaf5ef;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.dashboard-tournament-date strong { font-size: 1.45rem; color: #087e45; }
.dashboard-tournament-date span { font-size: .72rem; color: #66736d; margin-top: 5px; }
.dashboard-tournament-main { min-width: 0; }
.dashboard-tournament-main h3 { margin: 4px 0; font-size: 1rem; }
.dashboard-tournament-main h3 a { color: #162934; text-decoration: none; }
.dashboard-tournament-main p { margin: 3px 0 0; font-size: .88rem; }
.dashboard-inline-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dashboard-empty {
    padding: 24px;
    text-align: center;
    background: #f7faf8;
    border: 1px dashed #cdded4;
    border-radius: 14px;
}
.dashboard-empty.compact { padding: 18px; }
.dashboard-empty p { color: #65727b; margin: 6px auto 14px; max-width: 650px; }
.dashboard-more { text-align: right; margin: 14px 0 0; }
.dashboard-more a { font-weight: 800; color: #087c43; }
.dashboard-contact,
.dashboard-message,
.dashboard-activity {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 13px;
    border: 1px solid #e3e8eb;
    background: #fbfcfd;
    color: #1c2c36;
    text-decoration: none;
}
.dashboard-contact:hover,
.dashboard-message:hover,
.dashboard-activity:hover { border-color: #9dccb3; background: #f5fbf7; }
.dashboard-contact-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    overflow: hidden;
    background: #eaf4ef;
    color: #087d44;
    font-weight: 800;
}
.dashboard-contact span,
.dashboard-message span,
.dashboard-activity span { min-width: 0; }
.dashboard-contact small,
.dashboard-message small { display: block; color: #71808a; margin-top: 2px; }
.dashboard-contact em { font-style: normal; color: #087c43; font-weight: 800; font-size: .84rem; }
.dashboard-message p,
.dashboard-activity p { margin: 3px 0 0; color: #596872; font-size: .88rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-message time,
.dashboard-activity time { color: #7a8790; font-size: .76rem; white-space: nowrap; }
.dashboard-profile-progress {
    height: 12px;
    border-radius: 999px;
    background: #e8edef;
    overflow: hidden;
    margin-bottom: 16px;
}
.dashboard-profile-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #07904d, #31b66e); }
.dashboard-check-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 16px;
}
.dashboard-check {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f3f5f6;
    color: #64717a;
}
.dashboard-check span { font-size: 1.1rem; }
.dashboard-check.is-complete { background: #edf8f2; color: #087c43; font-weight: 700; }
.dashboard-verification-alert { margin-bottom: 18px; }
.compact-alert { margin: 14px 0; }

@media (max-width: 1180px) {
    .dashboard-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .dashboard-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
    .dashboard-hero-person { align-items: flex-start; }
    .dashboard-avatar { width: 62px; height: 62px; min-width: 62px; border-radius: 18px; }
    .dashboard-hero-actions { width: 100%; justify-content: stretch; }
    .dashboard-hero-actions .button { flex: 1; text-align: center; }
    .dashboard-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    .dashboard-stat { min-height: 92px; padding: 14px; }
    .dashboard-stat strong { font-size: 1.5rem; }
    .dashboard-section > summary { padding: 16px; }
    .dashboard-section-body { padding: 14px; }
    .dashboard-tournament { grid-template-columns: 54px minmax(0, 1fr); }
    .dashboard-tournament > .button { grid-column: 1 / -1; width: 100%; text-align: center; }
    .dashboard-tournament-date { width: 54px; height: 54px; }
    .dashboard-message,
    .dashboard-activity { grid-template-columns: 42px minmax(0, 1fr); }
    .dashboard-message time,
    .dashboard-activity time { grid-column: 2; }
    .dashboard-contact { grid-template-columns: 42px minmax(0, 1fr); }
    .dashboard-contact em { grid-column: 2; }
    .dashboard-contact-avatar { width: 42px; height: 42px; }
    .dashboard-check-grid { grid-template-columns: 1fr; }
}


/* Update V51: Sponsor-Link zuerst, kleiner und bewusst zurÃ¼ckhaltend */
.main-nav>a.nav-support{
    margin:0 9px 0 0;
    padding:5px 7px;
    border:0;
    background:transparent;
    color:#f4c542;
    font-size:.84rem;
    font-weight:700;
    line-height:1.2;
    box-shadow:none;
}
.main-nav>a.nav-support:hover,
.main-nav>a.nav-support:focus-visible{
    background:rgba(244,197,66,.10);
    color:#ffe58a;
}
.support-cta-banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;margin:0 0 18px;padding:17px 19px;border:1px solid #ebc56a;border-radius:16px;background:linear-gradient(135deg,#fff9e8 0%,#fff 50%,#f4faf6 100%);color:#27322c;text-decoration:none;box-shadow:0 9px 24px rgba(105,76,5,.1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.support-cta-banner:hover,.support-cta-banner:focus-visible{transform:translateY(-2px);border-color:#cc940c;box-shadow:0 13px 30px rgba(105,76,5,.17)}
.auth-support-banner{max-width:550px;margin-left:auto;margin-right:auto}
.support-cta-icon{display:inline-flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:50%;background:#fff0bd;color:#a86a00;font-size:1.25rem;font-weight:900}
.support-cta-copy strong,.support-cta-copy small{display:block}
.support-cta-copy strong{color:#6e4800;font-size:1.05rem}
.support-cta-copy small{margin-top:4px;color:#69716c;line-height:1.42}
.support-cta-arrow{color:#a86a00;font-size:1.65rem;font-weight:900}
.support-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:25px;overflow:hidden;padding:clamp(25px,4vw,44px);border-top:5px solid #d4930a;background:linear-gradient(135deg,#fff 0%,#fff9e8 58%,#edf8f2 100%)}
.support-hero::after{content:"";position:absolute;right:-90px;bottom:-125px;width:310px;height:310px;border-radius:50%;background:rgba(212,147,10,.08)}
.support-hero-copy{position:relative;z-index:1}
.support-hero h1{max-width:800px;margin:6px 0 14px;font-size:clamp(2rem,5vw,3.15rem);line-height:1.06;color:#15202b}
.support-lead{max-width:850px;margin:0;color:#46545d;font-size:1.06rem;line-height:1.65}
.support-hero-mark{position:relative;z-index:1;color:#d4930a;font-size:clamp(5rem,11vw,8rem);opacity:.18;transform:rotate(-8deg)}
.support-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.support-badges span,.support-coming-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 11px;background:#fff1c5;color:#775000;font-size:.8rem;font-weight:900}
.support-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:20px 0}
.support-option-card{display:flex;flex-direction:column;align-items:flex-start;margin:0;padding:22px;border-top:4px solid #d4930a}
.support-option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:#fff3cf;color:#a96d00;font-size:1.35rem;font-weight:900}
.support-option-card h2{margin:14px 0 9px;font-size:1.28rem}
.support-option-card p{margin:0 0 17px;color:#58656d;line-height:1.58}
.support-option-card .support-coming-badge{margin-top:auto}
.support-info-card{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:clamp(22px,3vw,32px);background:#15202b;color:#fff}
.support-info-card h2{margin:5px 0 10px;font-size:clamp(1.45rem,3vw,2rem)}
.support-info-card p:not(.eyebrow){max-width:760px;margin:0;color:rgba(255,255,255,.78);line-height:1.6}
.support-info-actions{display:flex;flex:0 0 auto;flex-direction:column;gap:9px;min-width:210px}
.support-contact-button{background:#d4930a}
.support-contact-button:hover,.support-contact-button:focus-visible{background:#b67800}
.support-note{text-align:center;color:#707980;font-size:.86rem;line-height:1.5}
@media(max-width:1100px){
    .main-nav>a.nav-support{
        min-height:40px;
        margin:0;
        padding:10px 15px;
        border:0;
        border-bottom:1px solid rgba(255,255,255,.08);
        border-radius:0;
        background:rgba(255,255,255,.025);
        color:#f4c542;
        font-size:.84rem;
        font-weight:700;
        box-shadow:none;
    }
    .main-nav>a.nav-support:hover,
    .main-nav>a.nav-support:focus-visible{
        background:rgba(244,197,66,.10);
        color:#ffe58a;
    }
}
@media(max-width:850px){
    .support-option-grid{grid-template-columns:1fr}
    .support-info-card{align-items:flex-start;flex-direction:column}
    .support-info-actions{width:100%;min-width:0}
    .support-info-actions .button{width:100%;text-align:center}
}
@media(max-width:620px){
    .support-cta-banner{grid-template-columns:auto minmax(0,1fr);padding:15px}
    .support-cta-arrow{display:none}
    .support-hero{grid-template-columns:1fr}
    .support-hero-mark{display:none}
}


/* Update V53: neue informative Startseite */
.landing-hero{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);
    align-items:center;
    gap:34px;
    overflow:hidden;
    padding:clamp(28px,5vw,54px);
    border-top:5px solid #0a8d4b;
    background:
        radial-gradient(circle at 82% 48%,rgba(36,123,190,.22),transparent 33%),
        linear-gradient(135deg,#fff 0%,#f6fbf8 56%,#edf4fa 100%);
}
.landing-hero::before{
    content:"";
    position:absolute;
    inset:auto -110px -160px auto;
    width:360px;
    height:360px;
    border-radius:50%;
    background:rgba(10,124,66,.07);
}
.landing-hero-copy{position:relative;z-index:2}
.landing-kicker-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:14px}
.landing-kicker,
.landing-free-pill{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:7px 11px;
    font-size:.78rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.landing-kicker{background:#e8f1fb;color:#1769aa}
.landing-free-pill{background:#dff4e7;color:#08663a}
.landing-hero h1{
    max-width:760px;
    margin:0 0 16px;
    color:#15202b;
    font-size:clamp(2.35rem,6vw,4.4rem);
    line-height:.98;
    letter-spacing:-.04em;
}
.landing-lead{
    max-width:780px;
    margin:0;
    color:#4d5c65;
    font-size:clamp(1.02rem,2vw,1.2rem);
    line-height:1.65;
}
.landing-live-note{
    display:flex;
    align-items:center;
    gap:13px;
    max-width:760px;
    margin-top:22px;
    padding:14px 16px;
    border:1px solid #d6e5dc;
    border-left:5px solid #0a8d4b;
    border-radius:12px;
    background:rgba(255,255,255,.8);
}
.landing-live-note>span{font-size:1.7rem}
.landing-live-note strong,
.landing-live-note span{display:block}
.landing-live-note div span{margin-top:3px;color:#59666e}
.landing-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:25px}
.landing-primary-action{box-shadow:0 8px 20px rgba(10,124,66,.2)}
.landing-intro-link{color:#087c43;font-weight:800;text-decoration:none;padding:9px 2px}
.landing-intro-link:hover{text-decoration:underline}
.landing-hero-visual{
    position:relative;
    min-height:330px;
    display:grid;
    place-items:center;
    z-index:1;
}
.landing-target{
    position:relative;
    width:min(320px,28vw);
    aspect-ratio:1;
    border-radius:50%;
    background:
        conic-gradient(
            #15202b 0 9deg,#e8ecee 9deg 18deg,
            #15202b 18deg 27deg,#e8ecee 27deg 36deg,
            #15202b 36deg 45deg,#e8ecee 45deg 54deg,
            #15202b 54deg 63deg,#e8ecee 63deg 72deg,
            #15202b 72deg 81deg,#e8ecee 81deg 90deg,
            #15202b 90deg 99deg,#e8ecee 99deg 108deg,
            #15202b 108deg 117deg,#e8ecee 117deg 126deg,
            #15202b 126deg 135deg,#e8ecee 135deg 144deg,
            #15202b 144deg 153deg,#e8ecee 153deg 162deg,
            #15202b 162deg 171deg,#e8ecee 171deg 180deg,
            #15202b 180deg 189deg,#e8ecee 189deg 198deg,
            #15202b 198deg 207deg,#e8ecee 207deg 216deg,
            #15202b 216deg 225deg,#e8ecee 225deg 234deg,
            #15202b 234deg 243deg,#e8ecee 243deg 252deg,
            #15202b 252deg 261deg,#e8ecee 261deg 270deg,
            #15202b 270deg 279deg,#e8ecee 279deg 288deg,
            #15202b 288deg 297deg,#e8ecee 297deg 306deg,
            #15202b 306deg 315deg,#e8ecee 315deg 324deg,
            #15202b 324deg 333deg,#e8ecee 333deg 342deg,
            #15202b 342deg 351deg,#e8ecee 351deg 360deg
        );
    box-shadow:0 24px 55px rgba(21,32,43,.28),inset 0 0 0 9px #263844;
}
.landing-target::before,
.landing-target::after{
    content:"";
    position:absolute;
    border-radius:50%;
    inset:14%;
    border:18px solid #0a8d4b;
    background:rgba(21,32,43,.88);
}
.landing-target::after{
    inset:34%;
    border-color:#b42318;
    border-width:13px;
    background:#0a8d4b;
}
.landing-target-ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.25)}
.landing-target-ring.ring-one{inset:23%}
.landing-target-ring.ring-two{inset:43%}
.landing-target-ring.ring-three{inset:47%;background:#b42318;border:4px solid #fff}
.landing-target-bull{
    position:absolute;
    z-index:4;
    inset:0;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:clamp(1.2rem,3vw,2rem);
    font-weight:900;
}
.landing-dart{
    position:absolute;
    right:0;
    top:45%;
    z-index:5;
    color:#f4c542;
    font-size:clamp(4rem,9vw,7rem);
    text-shadow:0 8px 18px rgba(0,0,0,.35);
    transform:translate(18%,-50%) rotate(-18deg);
}
.landing-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin:20px 0 28px;
}
.landing-stat-card{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-rows:auto auto;
    align-items:center;
    gap:0 12px;
    padding:19px;
    border:1px solid #e0e7e3;
    border-radius:15px;
    background:#fff;
    box-shadow:0 5px 16px rgba(0,0,0,.055);
}
.landing-stat-card.primary{border-color:#9dccb3;background:#f4fbf7}
.landing-stat-icon{
    grid-row:1/3;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    border-radius:13px;
    background:#eef5f1;
    font-size:1.35rem;
}
.landing-stat-card strong{color:#15202b;font-size:1.7rem;line-height:1}
.landing-stat-card span:last-child{margin-top:5px;color:#64717a;font-size:.86rem}
.landing-section{
    margin:30px 0;
}
.landing-section-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:18px;
    margin-bottom:17px;
}
.landing-section-heading h2{margin:5px 0 0;font-size:clamp(1.65rem,3vw,2.35rem)}
.landing-role-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.landing-role-card{
    position:relative;
    overflow:hidden;
    padding:26px;
    border-radius:18px;
    background:#fff;
    border:1px solid #dfe6e2;
    box-shadow:0 7px 24px rgba(0,0,0,.065);
}
.landing-role-card.player{border-top:5px solid #1769aa}
.landing-role-card.organizer{border-top:5px solid #d4930a}
.landing-role-icon{
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    border-radius:15px;
    background:#eef5f9;
    font-size:1.45rem;
    margin-bottom:15px;
}
.landing-role-card.organizer .landing-role-icon{background:#fff5d8}
.landing-role-card h3{margin:6px 0 13px;font-size:1.35rem}
.landing-role-card ul{margin:0 0 22px;padding:0;list-style:none}
.landing-role-card li{
    position:relative;
    margin:9px 0;
    padding-left:25px;
    color:#4d5b64;
    line-height:1.45;
}
.landing-role-card li::before{
    content:"âœ“";
    position:absolute;
    left:0;
    top:0;
    color:#0a8d4b;
    font-weight:900;
}
.organizer-button{background:#b47b00}
.organizer-button:hover{background:#8f6200}
.landing-role-note{
    margin:14px 0 0;
    padding:13px 15px;
    border-radius:11px;
    background:#fff8dc;
    color:#6f5200;
    line-height:1.5;
}
.landing-upcoming-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.landing-tournament-card{
    display:grid;
    grid-template-columns:62px minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:16px;
    border:1px solid #e0e6e3;
    border-radius:15px;
    background:#fff;
    box-shadow:0 5px 16px rgba(0,0,0,.05);
}
.landing-tournament-date{
    width:62px;
    height:62px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#eaf5ef;
    line-height:1;
}
.landing-tournament-date strong{font-size:1.42rem;color:#087d44}
.landing-tournament-date span{margin-top:5px;color:#66736d;font-size:.72rem}
.landing-tournament-content{min-width:0}
.landing-tournament-content h3{margin:6px 0 5px;font-size:1.03rem}
.landing-tournament-content h3 a{color:#162934;text-decoration:none}
.landing-tournament-content p{margin:0 0 5px;color:#55636c;font-size:.88rem}
.landing-tournament-content small{color:#758089;line-height:1.35}
.landing-tournament-badges{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.landing-empty{text-align:center;padding:34px;border:1px dashed #cdded4;border-radius:16px;background:#f7faf8}
.landing-empty>span{display:block;font-size:2.3rem}
.landing-empty strong{display:block;margin:7px 0;font-size:1.15rem}
.landing-empty p{max-width:650px;margin:0 auto 16px;color:#617079}
.landing-how-section{padding:28px}
.landing-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.landing-step-grid article{
    position:relative;
    padding:21px;
    border-radius:14px;
    background:#f7faf8;
    border:1px solid #e2ebe6;
}
.landing-step-grid article>span{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border-radius:50%;
    background:#0a7c42;
    color:#fff;
    font-weight:900;
}
.landing-step-grid h3{margin:13px 0 7px}
.landing-step-grid p{margin:0;color:#5e6b73;line-height:1.5}
.landing-final-cta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
    margin:30px 0 10px;
    padding:clamp(24px,4vw,38px);
    border-radius:18px;
    background:linear-gradient(135deg,#15202b,#20394a);
    color:#fff;
    box-shadow:0 12px 32px rgba(21,32,43,.22);
}
.landing-final-cta h2{margin:4px 0 9px;font-size:clamp(1.7rem,3vw,2.4rem)}
.landing-final-cta p:not(.eyebrow){max-width:720px;margin:0;color:rgba(255,255,255,.75);line-height:1.55}
.landing-final-actions{display:flex;flex:0 0 auto;flex-direction:column;gap:9px;min-width:230px}
.landing-final-actions .text-link{color:#f4c542;text-align:center;font-size:.84rem}
@media(max-width:980px){
    .landing-hero{grid-template-columns:1fr}
    .landing-hero-visual{display:none}
    .landing-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .landing-upcoming-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .landing-hero{padding:25px 20px}
    .landing-hero h1{font-size:2.35rem}
    .landing-actions>*{width:100%;text-align:center}
    .landing-section-heading{align-items:flex-start;flex-direction:column}
    .landing-role-grid{grid-template-columns:1fr}
    .landing-step-grid{grid-template-columns:1fr}
    .landing-final-cta{align-items:flex-start;flex-direction:column}
    .landing-final-actions{width:100%;min-width:0}
    .landing-final-actions .button{width:100%;text-align:center}
}
@media(max-width:520px){
    .landing-stats{grid-template-columns:1fr}
    .landing-stat-card{padding:15px}
    .landing-tournament-card{grid-template-columns:54px minmax(0,1fr)}
    .landing-tournament-card>.button{grid-column:1/-1;text-align:center}
    .landing-tournament-date{width:54px;height:54px}
}


/* Update V54: Anmeldearten */
.registration-mode-fieldset{
    padding:18px;
    border:1px solid #dce5e0;
    border-radius:14px;
    background:#f8faf9;
}
.registration-mode-fieldset legend{font-weight:900;color:#18262f;padding:0 7px}
.registration-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:13px}
.registration-mode-option{position:relative;display:block;cursor:pointer}
.registration-mode-option input{position:absolute;opacity:0;pointer-events:none}
.registration-mode-option span{
    display:block;height:100%;padding:16px;border:2px solid #dce5e0;border-radius:13px;background:#fff;
}
.registration-mode-option strong,.registration-mode-option small{display:block}
.registration-mode-option small{margin-top:6px;color:#65717a;line-height:1.45}
.registration-mode-option input:checked+span{border-color:#0a8d4b;background:#eff9f3;box-shadow:0 0 0 3px rgba(10,141,75,.09)}
.participant-detail-card small{display:block;margin-top:5px;color:#64717a}
.registration-mode-public-note{width:100%;margin-top:13px}

/* Update V54: Informations-Popup */
.admin-info-popup{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:2500;
    width:min(390px,calc(100vw - 28px));
    padding:20px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:15px;
    background:#090d11;
    color:#fff;
    box-shadow:0 18px 55px rgba(0,0,0,.42);
    animation:adminPopupIn .24s ease-out;
}
.admin-info-popup.is-closing{opacity:0;transform:translateY(12px);transition:.18s ease}
.admin-info-popup-topline{display:flex;justify-content:space-between;gap:12px;color:#b9c1c7;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.admin-info-popup-label{color:#7ee2a9;font-weight:900}
.admin-info-popup h2{margin:11px 0 10px;color:#fff;font-size:1.3rem}
.admin-info-popup-body{color:#f2f4f5;line-height:1.55}
.admin-info-popup-body a{color:#7ee2a9}
.admin-info-popup-close{
    width:100%;margin-top:16px;padding:11px 14px;border:1px solid rgba(255,255,255,.24);
    background:#fff;color:#111820;font-weight:900;
}
@keyframes adminPopupIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Update V54: Popup-Verwaltung */
.admin-popup-manager{border-top:4px solid #161d22}
.admin-popup-form{padding:18px;border:1px solid #dce5e0;border-radius:14px;background:#f7faf8}
.admin-popup-list{margin-top:25px}
.admin-popup-list-item{
    display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:18px 0;border-top:1px solid #e4e9e6;
}
.admin-popup-list-item.is-active{border-left:4px solid #0a8d4b;padding-left:14px}
.admin-popup-list-topline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:#67737b;font-size:.78rem}
.admin-popup-list-item h4{margin:8px 0;font-size:1.12rem}
.admin-popup-preview{max-height:110px;overflow:hidden;color:#4d5b63}
.admin-popup-actions{display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:flex-end;gap:7px}

/* Update V54: Admin-E-Mails */
.admin-email-broadcast-card{border-top-color:#8055a6}
.admin-user-email-form{grid-template-columns:minmax(180px,.45fr) minmax(0,1fr)}
.admin-user-email-form input[name="subject"]{grid-column:2}
.admin-user-email-form textarea{grid-column:2}
.admin-email-composer-row td{background:#f8f4fb!important}

/* Update V54: Kartenansicht */
.radius-input-wrap{display:flex;align-items:center}
.radius-input-wrap input{border-radius:9px 0 0 9px}
.radius-input-wrap span{align-self:stretch;display:grid;place-items:center;padding:0 13px;border:1px solid #cbd6d0;border-left:0;border-radius:0 9px 9px 0;background:#eef3f0;font-weight:800}
.map-toolbar{justify-content:space-between}
.tournament-map-card{padding:14px}
.tournament-map-note{margin-bottom:12px;padding:11px 13px;border-radius:10px;background:#eef7f2;color:#365247}
.tournament-map{width:100%;height:min(68vh,650px);min-height:430px;border-radius:13px;overflow:hidden;border:1px solid #cfd9d4}
.tournament-map-div-icon{background:transparent!important;border:0!important}
.tournament-map-flag{
    position:relative;display:flex;align-items:center;gap:6px;width:154px;min-height:42px;padding:7px 9px 7px 32px;
    border:2px solid #fff;border-radius:8px;background:#0a7c42;color:#fff;
    box-shadow:0 5px 14px rgba(0,0,0,.28);font-size:.69rem;font-weight:700;line-height:1.15;
}
.tournament-map-flag::after{
    content:"";position:absolute;left:12px;bottom:-17px;width:4px;height:19px;background:#29343b;border-radius:0 0 2px 2px;
}
.tournament-map-flag .flag-pin{position:absolute;left:8px;top:6px;font-size:1.18rem;color:#f4c542}
.tournament-map-flag strong{font-size:.92rem}
.map-popup-content h3{margin:9px 0 7px;font-size:1.05rem}
.map-popup-content p{margin:5px 0;color:#40505a}
.map-popup-content .button{display:inline-block;margin-top:8px;color:#fff!important}

@media(max-width:900px){
    .registration-mode-options{grid-template-columns:1fr}
    .admin-popup-list-item{grid-template-columns:1fr}
    .admin-popup-actions{justify-content:flex-start}
    .admin-user-email-form{grid-template-columns:1fr}
    .admin-user-email-form input[name="subject"],.admin-user-email-form textarea{grid-column:auto}
}
@media(max-width:600px){
    .admin-info-popup{right:14px;bottom:14px}
    .tournament-map{min-height:480px}
    .tournament-map-flag{width:138px;font-size:.64rem}
}


/* Update V56: Community-Karte auf Startseite und Benutzerverzeichnis */
.community-map-section{
    position:relative;
    margin:30px 0;
}
.community-map-heading{
    align-items:flex-end;
}
.community-map-legend{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px 16px;
    color:#52616a;
    font-size:.88rem;
    font-weight:800;
}
.community-map-legend>span{
    display:inline-flex;
    align-items:center;
    gap:8px;
}
.community-map-legend-flag{
    position:relative;
    display:inline-block;
    width:25px;
    height:18px;
    border-radius:3px 3px 3px 1px;
    box-shadow:0 3px 8px rgba(0,0,0,.18);
}
.community-map-legend-flag::after{
    content:"";
    position:absolute;
    left:1px;
    top:15px;
    width:3px;
    height:10px;
    border-radius:0 0 2px 2px;
    background:#33424c;
}
.community-map-legend-flag.player{
    background:#f1c232;
}
.community-map-legend-flag.organizer{
    background:#2478b8;
}
.community-directory-header{
    border-top:4px solid #2478b8;
}
.community-map-filter{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:18px;
}
.community-map-card{
    overflow:hidden;
    padding:14px;
    border:1px solid #d9e4de;
    border-radius:17px;
    background:#fff;
    box-shadow:0 8px 25px rgba(14,35,26,.08);
}
.community-map-summary{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    padding:3px 3px 13px;
    color:#66737b;
    font-size:.88rem;
}
.community-map-summary strong{
    color:#17252e;
    font-size:1rem;
}
.community-map{
    position:relative;
    z-index:1;
    width:100%;
    height:min(64vh,610px);
    min-height:430px;
    border:1px solid #cdd9d3;
    border-radius:13px;
    overflow:hidden;
    background:#dfe9e4;
}
.community-map-directory{
    height:min(72vh,720px);
    min-height:520px;
}
.community-map .leaflet-control-attribution{
    font-size:.68rem;
}
.community-map-div-icon,
.community-map-cluster-wrapper{
    border:0!important;
    background:transparent!important;
}
.community-map-pin{
    position:relative;
    display:block;
    width:31px;
    height:24px;
    border:2px solid #fff;
    border-radius:5px 5px 5px 2px;
    box-shadow:0 5px 13px rgba(0,0,0,.36);
}
.community-map-pin::after{
    content:"";
    position:absolute;
    left:4px;
    top:21px;
    width:4px;
    height:21px;
    border-radius:0 0 3px 3px;
    background:#26333b;
    box-shadow:0 2px 3px rgba(0,0,0,.2);
}
.community-map-pin.player{
    background:linear-gradient(135deg,#ffe06c,#e7aa00);
}
.community-map-pin.organizer{
    background:linear-gradient(135deg,#53a8e2,#1265a0);
}
.community-map-pin i{
    position:absolute;
    inset:4px 5px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:2px;
}
.community-map-pin b{
    position:absolute;
    right:-5px;
    top:7px;
    width:8px;
    height:8px;
    border:2px solid #fff;
    border-radius:50%;
    background:#c92a2a;
}
.community-map-popup{
    min-width:220px;
    color:#26343d;
}
.community-map-popup h3{
    margin:8px 0 7px;
    color:#15252f;
    font-size:1.08rem;
    line-height:1.25;
}
.community-map-popup p{
    margin:5px 0;
    line-height:1.4;
}
.community-map-popup .button{
    display:inline-block;
    margin-top:9px;
    color:#fff!important;
}
.community-map-role{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:5px 8px;
    color:#fff;
    font-size:.7rem;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.community-map-role.player{
    background:#b98500;
}
.community-map-role.organizer{
    background:#176ca8;
}
.community-map-cluster{
    position:relative;
    display:grid;
    place-items:center;
    width:52px;
    height:52px;
    border:3px solid #fff;
    border-radius:50%;
    color:#fff;
    box-shadow:0 7px 18px rgba(0,0,0,.33);
}
.community-map-cluster.player{
    background:linear-gradient(135deg,#edc33e,#a87500);
}
.community-map-cluster.organizer{
    background:linear-gradient(135deg,#429bd4,#145c91);
}
.community-map-cluster.mixed{
    background:linear-gradient(135deg,#d7ad24 0 48%,#2478b8 52% 100%);
}
.community-map-cluster strong{
    position:relative;
    z-index:3;
    display:grid;
    place-items:center;
    min-width:26px;
    height:26px;
    padding:0 5px;
    border-radius:999px;
    background:rgba(8,17,24,.78);
    font-size:.87rem;
}
.community-map-cluster i{
    position:absolute;
    width:15px;
    height:11px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:3px;
    opacity:.72;
}
.community-map-cluster i.player{
    left:7px;
    top:8px;
    background:#f1c232;
}
.community-map-cluster i.organizer{
    right:7px;
    bottom:8px;
    background:#2478b8;
}
.community-map-empty{
    border:1px dashed #cad8d1;
    background:#f7faf8;
}

/* Ã–ffentliche Startseite: Community-Karte auf hellem Seitenhintergrund */
.guest-home .community-map-heading h2{
    color:#17252e;
}
.guest-home .community-map-heading .muted{
    color:#64717a;
}
.guest-home .community-map-legend{
    color:#52616a;
}
.guest-home .community-map-card{
    border-color:#d9e4de;
    background:#fff;
    box-shadow:0 8px 25px rgba(14,35,26,.08);
}
.guest-home .community-map-summary{
    color:#66737b;
}
.guest-home .community-map-summary strong{
    color:#17252e;
}
.guest-home .community-map{
    border-color:#cdd9d3;
}

.map-load-error{
    position:absolute;
    inset:20px;
    z-index:500;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    text-align:center;
}

@media(max-width:760px){
    .community-map-heading{
        align-items:flex-start;
    }
    .community-map-summary{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
    .community-map{
        height:520px;
        min-height:520px;
    }
    .community-map-directory{
        height:600px;
        min-height:600px;
    }
}
@media(max-width:480px){
    .community-map-card{
        padding:9px;
    }
    .community-map{
        height:480px;
        min-height:480px;
    }
    .community-map-directory{
        height:540px;
        min-height:540px;
    }
}


/* Update V57: Werbebanner in einer kontrollierten GrÃ¶ÃŸe darstellen */
.advertising-slot{
    width:100%;
    max-width:920px;
    margin:22px auto 30px;
}
.advertising-label{
    display:block;
    margin:0 0 5px;
    color:#58656d;
    font-size:.76rem;
    line-height:1.2;
}
.advertising-slot>a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    overflow:hidden;
    border-radius:12px;
    background:#eef1ef;
    box-shadow:0 6px 18px rgba(0,0,0,.08);
}
.advertising-slot img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    max-height:260px;
    margin:0 auto;
    object-fit:contain;
}
.advertising-slot-home_top{
    max-width:900px;
    margin-top:20px;
}
.advertising-slot-home_middle,
.advertising-slot-home_bottom{
    max-width:960px;
}
.admin-popup-advertisement img{
    display:block;
    max-width:100%;
    max-height:240px;
    width:auto;
    height:auto;
    margin:0 auto;
    object-fit:contain;
}
@media(max-width:760px){
    .advertising-slot{
        max-width:100%;
        margin:17px auto 23px;
    }
    .advertising-slot img{
        max-height:210px;
    }
}


/* Update V58: Turnier Scout */
.optional-field-label{
    display:inline-flex;
    margin-left:6px;
    padding:3px 7px;
    border-radius:999px;
    background:#eef2f0;
    color:#64716a;
    font-size:.68rem;
    font-weight:800;
    line-height:1;
    text-transform:uppercase;
    vertical-align:middle;
}
.status-pill.scout{
    background:#e7ddff;
    color:#5d3395;
}
.scout-action-button{
    background:#7048a8;
}
.scout-action-button:hover{
    background:#583482;
}
.scout-registration-fixed,
.scout-listing-public-card{
    padding:20px;
    border:2px solid #8a68ba;
    border-radius:15px;
    background:linear-gradient(135deg,#faf7ff,#f0e9fa);
    box-shadow:0 7px 20px rgba(86,48,133,.08);
}
.scout-registration-fixed h2,
.scout-listing-public-card h2{
    margin:10px 0 8px;
    color:#3e255f;
}
.scout-registration-fixed p,
.scout-listing-public-card p{
    margin:5px 0;
    line-height:1.55;
}
.scout-mode-option input:checked+span{
    border-color:#7048a8!important;
    background:#f3edfb!important;
}

/* Alle Bereiche in admin/benutzer.php sind im Ausgangszustand geschlossen. */
.admin-collapsible-section:not(.is-open)>:not(.section-heading){
    display:none!important;
}
.admin-collapsible-section>.section-heading{
    cursor:pointer;
    margin-bottom:0;
}
.admin-collapsible-section.is-open>.section-heading{
    margin-bottom:16px;
}
.admin-section-toggle{
    flex:0 0 auto;
}
.admin-verified-users-table[hidden]{
    display:none!important;
}