
:root{--bg:#101418;--panel:#18212a;--panel2:#202c37;--text:#f5f7fb;--muted:#aab5c2;--accent:#e5362e;--line:#33465a}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#090d12;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
h1{margin:0;font-size:22px}#status{margin:4px 0 0;color:var(--muted);font-size:13px}.tabs{display:flex;overflow-x:auto;background:#111820;border-bottom:1px solid var(--line)}
.tab{background:transparent;color:var(--muted);border:0;border-right:1px solid var(--line);border-radius:0;padding:12px 14px;font-weight:800}.tab.active{background:var(--panel);color:#fff}
main{padding:14px}.panel{display:none;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px}.panel.active{display:block}
button,.filebtn{display:inline-block;background:var(--accent);color:white;border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;margin:4px}.secondary{background:#34495e}.hidden{display:none!important}
input,select{width:100%;background:#0e141a;color:white;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:10px 0}.row,.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.inline{display:flex;gap:10px}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.metrics div,.card{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0}.metrics b{display:block;font-size:34px}.small,.metrics span{color:var(--muted)}
.cards{display:grid;gap:6px}.card.active{outline:3px solid var(--accent)}.pill-list{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-block;background:#202c37;border:1px solid var(--line);border-radius:999px;padding:6px 10px;margin:4px}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.category-grid{grid-template-columns:1fr}}
.field-frame{background:#050708;border-radius:16px;padding:8px;overflow:auto}canvas{display:block;width:100%;height:auto;aspect-ratio:2/1;max-height:72vh;background:#111;border-radius:12px}
table{width:100%;border-collapse:collapse;background:#202c37;border-radius:12px;overflow:hidden;margin:10px 0}td,th{padding:10px;border-bottom:1px solid #33465a;text-align:left}th{background:#111820}.event-log{color:var(--muted);display:grid;gap:4px}.role-banner{background:#202c37;border:1px solid var(--accent);border-radius:12px;padding:10px;margin-bottom:10px}.role-pill{display:inline-block;background:var(--accent);border-radius:999px;padding:5px 10px;font-weight:900}
.logo-preview{max-height:40px;max-width:140px;object-fit:contain;background:white;border-radius:6px;padding:3px}
body.role-player .admin-only,body.role-player .coach-only{display:none!important}body.role-coach .admin-only{display:none!important}

body.role-guest .tab:not([data-tab="login"]) { display:none!important; }
body.role-guest .panel:not(#login):not(#locked) { display:none!important; }
body.role-guest #login, body.role-guest #locked { display:block; }
.locked-panel { text-align:center; padding:32px; }
.login-note { background:#202c37; border:1px solid #33465a; border-radius:12px; padding:12px; margin:12px 0; color:#aab5c2; }

/* Version 8.2: echte Login-Sperre */
body.role-guest .admin-only,
body.role-guest .coach-only,
body.role-guest .player-only { display:none!important; }

body.role-guest .tab:not([data-tab="login"]) { display:none!important; }
body.role-guest .panel:not(#login):not(#locked) { display:none!important; }

body.role-guest #login { display:block!important; }
body.role-guest #locked { display:none!important; }

body.role-guest #login .admin-only { display:none!important; }
body.role-guest #login h3:not(:first-of-type),
body.role-guest #login .admin-only,
body.role-guest #login #coachList,
body.role-guest #login #playerLoginList { display:none!important; }

body.role-guest #resetView { display:none!important; }
body.role-admin #resetView,
body.role-coach #resetView,
body.role-player #resetView { display:inline-block!important; }

/* Version 8.4 login/render fixes */
body.role-guest .tab:not([data-tab="login"]) { display:none!important; }
body.role-guest .panel:not(#login):not(#locked) { display:none!important; }
body.role-guest #login { display:block!important; }
body.role-guest #login .admin-only { display:none!important; }
body.role-coach .admin-only, body.role-player .admin-only { display:none!important; }

/* Version 8.5 login fix */
body.role-admin .tab, body.role-coach .tab, body.role-player .tab { display:inline-block; }
body.role-admin .panel, body.role-coach .panel, body.role-player .panel { }
body.role-guest .tab:not([data-tab="login"]) { display:none!important; }
body.role-guest .panel:not(#login):not(#locked) { display:none!important; }
body.role-guest #login { display:block!important; }
body.role-guest #login .admin-only { display:none!important; }
body.role-coach .admin-only, body.role-player .admin-only { display:none!important; }

/* Version 8.6: logged-in navigation repair */
body.role-admin .tab,
body.role-coach .tab,
body.role-player .tab { display:inline-block; }

body.role-coach .tab[data-tab="team"],
body.role-coach .tab[data-tab="categories"],
body.role-coach .tab[data-tab="capture"],
body.role-coach .tab[data-tab="data"],
body.role-player .tab[data-tab="team"],
body.role-player .tab[data-tab="categories"],
body.role-player .tab[data-tab="capture"],
body.role-player .tab[data-tab="data"],
body.role-player .tab[data-tab="match"] { display:none!important; }

body.role-guest .tab:not([data-tab="login"]) { display:none!important; }

/* Version 8.7: final role-class repair */
body.role-player .tab[data-tab="dashboard"],
body.role-player .tab[data-tab="overview"],
body.role-player .tab[data-tab="players"],
body.role-player .tab[data-tab="season"],
body.role-player .tab[data-tab="pdf"],
body.role-player .tab[data-tab="login"],
body.role-coach .tab[data-tab="dashboard"],
body.role-coach .tab[data-tab="match"],
body.role-coach .tab[data-tab="overview"],
body.role-coach .tab[data-tab="players"],
body.role-coach .tab[data-tab="season"],
body.role-coach .tab[data-tab="pdf"],
body.role-coach .tab[data-tab="login"],
body.role-admin .tab { display:inline-block!important; }

body.role-player .tab[data-tab="team"],
body.role-player .tab[data-tab="categories"],
body.role-player .tab[data-tab="capture"],
body.role-player .tab[data-tab="data"],
body.role-player .tab[data-tab="match"],
body.role-coach .tab[data-tab="team"],
body.role-coach .tab[data-tab="categories"],
body.role-coach .tab[data-tab="capture"],
body.role-coach .tab[data-tab="data"] { display:none!important; }

/* Version 8.8 stable changes */
body.role-player .tab[data-tab="pdf"] { display:none!important; }

/* 8.8.1 Rescue */
#cloudStatus div { padding:10px; margin:6px 0; border-radius:10px; background:#202c37; border:1px solid #33465a; }

.sortable-card { cursor: grab; }
.sortable-card:active { cursor: grabbing; }
.sort-actions { display: flex; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
.sort-actions button { min-width: 2.2rem; }

/* 8.8.12: gruppierte Spielerinnenstatistik */
.statsGrouped{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:start}
.statGroup h5{margin:8px 0 6px;font-size:14px;color:#f4d35e}
.statGroup table{margin:0}
.statsGrouped .statGroup table{table-layout:fixed;width:100%}
.statsGrouped .statGroup table th:last-child,.statsGrouped .statGroup table td:last-child{width:92px;min-width:92px;max-width:92px;text-align:center}

/* Spielerinnen und Coaches verwalten keine Logins. */
body.role-player .tab[data-tab="login"],body.role-coach .tab[data-tab="login"]{display:none!important}
body.role-player .tab[data-tab="dashboard"],body.role-player #dashboard{display:none!important}
.login-share-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.login-share-actions button{margin:0!important;min-width:0!important}

.stats-filter { margin: 8px 0 12px; padding: 10px; border: 1px solid #333; border-radius: 10px; background: rgba(255,255,255,0.04); }
.filter-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.filter-pill { display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border: 1px solid #555; border-radius: 999px; background: rgba(255,255,255,0.06); }
.filter-pill input { width: auto; }

/* 9.4.3: Positionszuordnung für die Linienübersicht */
.pdf-position-step{margin:16px 0;padding:16px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.045)}
.pdf-position-step h3{margin:0 0 5px}.pdf-position-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:12px}
.pdf-position-grid label{display:grid;gap:6px;font-weight:800}.pdf-position-grid select{width:100%}

/* 9.4.6: Teamfilter und kompakte Saisonübersicht */
.team-stats-filter{display:block;margin-bottom:14px}.team-stats-filter .filter-pills{margin:14px 0 10px}.team-stats-filter small{display:block;margin-top:8px}
.season-match-row{cursor:pointer;transition:background .15s ease}.season-match-row:hover{background:rgba(54,200,120,.14)}
.season-match-row td:last-child{font-weight:900}.season-match-detail{margin-top:18px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.045)}
.season-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.season-detail-head h3{margin:0}.season-detail-head p{margin:5px 0 0}
.season-video-block{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.match-video-links{display:flex;flex-wrap:wrap;gap:9px}
.video-link-button{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border-radius:12px;background:var(--team-secondary,#36c878);color:#07110d!important;font-weight:900;text-decoration:none}
@media(max-width:640px){.season-match-detail{padding:12px}.season-detail-head{flex-direction:column}.season-match-row td,.season-match-row th{padding:8px 6px;font-size:12px}}

/* 9.4.7: kompakter Spiele-Tab mit Lineup-Editor */
.match-create-action{margin-bottom:16px}.match-editor{margin:0 0 22px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.04)}
.match-lineup-grid{display:grid;gap:8px}.match-lineup-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(95px,.5fr) minmax(130px,.8fr) minmax(180px,1fr);gap:10px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(0,0,0,.16)}
.played-lines-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}.match-played-detail{margin-top:20px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.04)}
.played-line-card{padding:15px;border-radius:14px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.1)}.played-line-card h4{margin:0 0 10px}.played-line-card ul{list-style:none;padding:0;margin:0 0 12px}.played-line-card li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}.played-line-card li span{color:var(--muted);font-size:12px}
.line-stat-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.line-stat-metrics span{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:10px;background:rgba(255,255,255,.06);font-size:11px}.line-stat-metrics b{font-size:18px;color:#fff}
@media(max-width:700px){.match-lineup-row{grid-template-columns:1fr}.played-lines-grid{grid-template-columns:1fr}}

/* 9.4.8: tabletfreundliche Felderfassung und geordnetes Ereignisfenster */
.clock-time-button{padding:2px 7px!important;background:transparent!important;box-shadow:none!important;border:1px dashed rgba(255,255,255,.28)!important;color:#fff!important;font-size:34px!important;line-height:1!important;font-weight:900;font-variant-numeric:tabular-nums}
.clock-time-button:active,.clock-time-button:focus{border-color:var(--team-secondary,#36c878)!important}
.capture-popup-time{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:12px;color:var(--muted)}.capture-popup-time input{width:92px;min-height:38px;text-align:center;font-size:18px;font-weight:900;font-variant-numeric:tabular-nums}
.capture-popup-body{grid-template-columns:minmax(130px,170px) minmax(430px,1fr) minmax(165px,210px);gap:12px;align-items:center}
.capture-popup-attributes-col,.capture-popup-players-col{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.capture-popup-attributes-col h4,.capture-popup-events-col h4,.capture-popup-players-col h4{margin:4px 0 8px}
.attribute-placeholder{display:grid;gap:9px;padding:12px;border:1px dashed rgba(255,255,255,.22);border-radius:16px;background:rgba(255,255,255,.035)}.attribute-placeholder button:disabled{opacity:.58;min-height:48px;background:#174c51!important;color:#d8f5f2!important}.attribute-placeholder small{color:var(--muted);line-height:1.35}
.event-wheel{width:430px;height:430px;max-width:100%;margin:4px auto 8px;background:radial-gradient(circle at center,rgba(255,255,255,.12) 0 20%,rgba(255,255,255,.045) 21% 100%)}
.wheel-center{width:112px;height:112px;font-size:14px}.wheel-item{width:106px;height:58px;margin-left:-53px;margin-top:-29px;border-radius:13px;padding:5px;transform:rotate(var(--angle)) translate(0,-158px) rotate(calc(-1 * var(--angle)))}.wheel-item b{font-size:15px}.wheel-item small{font-size:10px}
.capture-popup-players-col .popup-player-scroll.side{max-height:62vh;overflow-y:auto;padding-right:3px}
@media(min-width:700px) and (max-width:1100px){.capture-popup-card{width:98vw;padding:11px;max-height:96vh}.capture-popup-body{grid-template-columns:125px minmax(360px,1fr) 145px;gap:8px}.event-wheel{width:370px;height:370px}.wheel-item{width:92px;height:52px;margin-left:-46px;margin-top:-26px;transform:rotate(var(--angle)) translate(0,-137px) rotate(calc(-1 * var(--angle)))}.wheel-center{width:96px;height:96px}.capture-popup-head{margin-bottom:3px}.capture-popup-card>p{margin:4px 0}}
@media(min-width:700px) and (max-width:1180px) and (orientation:landscape){body.capture-active .topbar{display:none}body.capture-active .tabs{padding:2px;white-space:nowrap;overflow-x:auto}body.capture-active .tab{padding:8px 10px;font-size:12px}body.capture-active main{padding:4px}body.capture-active #capture.panel{margin:0;padding:7px}body.capture-active #capture>h2,body.capture-active #capture>#captureHint,body.capture-active #capture>.row{display:none!important}body.capture-active .match-clock-panel{margin:3px 0 5px;padding:6px}body.capture-active .match-clock-panel p{display:none}body.capture-active .match-clock-main{gap:5px}body.capture-active .match-clock-main button{padding:6px 8px;font-size:11px}body.capture-active .clock-time-button{font-size:26px!important}body.capture-active .active-lineup-bar{margin:4px 0 6px;padding:5px}body.capture-active .lineup-lines{padding:2px 0 3px}body.capture-active .lineup-label{margin-bottom:3px;font-size:10px}body.capture-active .lineup-chip{min-height:42px;min-width:58px;padding:4px}body.capture-active .lineup-chip b{font-size:18px}body.capture-active .field-frame{padding:4px;display:flex;justify-content:center}body.capture-active .field-frame canvas{width:min(100%,90vh);height:auto;max-height:45vh;margin:auto}body.capture-active #capture>h3,body.capture-active #capture>.event-log{display:none}}

/* 9.4.9: stabiles dreispaltiges Ereignisfenster nach Tablet-/Desktop-Vorbild */
.capture-popup{padding:8px!important;overflow:hidden!important}
.capture-popup-card{width:min(1500px,98vw)!important;height:min(900px,96vh)!important;max-height:96vh!important;box-sizing:border-box!important;overflow:hidden!important;padding:12px 16px!important;border-radius:18px!important}
.capture-popup-head{height:48px;min-height:48px;margin:0 0 3px!important;padding:0 4px;border-bottom:1px solid rgba(255,255,255,.1)}
.capture-popup-head h3{white-space:nowrap;font-size:20px}.capture-popup-card>p{margin:4px 4px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.capture-popup-body{display:grid!important;grid-template-columns:minmax(150px,22%) minmax(420px,56%) minmax(150px,22%)!important;gap:10px!important;align-items:center!important;height:calc(100% - 105px)!important;min-height:0!important;overflow:hidden!important}
.capture-popup-attributes-col,.capture-popup-events-col,.capture-popup-players-col{min-width:0!important;max-width:none!important;height:100%!important;box-sizing:border-box!important;overflow:hidden!important}
.capture-popup-attributes-col,.capture-popup-players-col{padding:12px;background:rgba(0,0,0,.34);border-radius:16px;justify-content:flex-start!important}
.capture-popup-attributes-col h4,.capture-popup-events-col h4,.capture-popup-players-col h4{text-align:center;font-size:19px;margin:5px 0 12px!important}
.capture-popup-events-col{display:flex;flex-direction:column;align-items:center;justify-content:center}
.attribute-placeholder{width:100%;box-sizing:border-box;background:transparent;border:0;padding:0;grid-template-columns:1fr 1fr}.attribute-placeholder button:disabled{min-width:0;width:100%;min-height:62px}.attribute-placeholder small{grid-column:1/-1;text-align:center;margin-top:5px}
.attribute-placeholder .attribute-option{min-width:0;width:100%;min-height:54px;padding:7px;background:#0c5962!important;color:#e9ffff!important;border:2px solid transparent!important;box-shadow:none!important;font-size:12px;line-height:1.15}.attribute-placeholder .attribute-option.selected{border-color:#fff!important;background:linear-gradient(135deg,var(--team-primary,#e5362e),color-mix(in srgb,var(--team-secondary,#36c878) 60%,#123))!important;transform:translateY(-1px)}
.event-wheel{--wheel-size:min(62vh,48vw,620px);width:var(--wheel-size)!important;height:var(--wheel-size)!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;margin:0 auto!important;overflow:visible!important;border:2px solid rgba(255,255,255,.16)!important}
.wheel-center{width:24%!important;height:24%!important;min-width:104px;min-height:104px;box-sizing:border-box;font-size:15px!important;padding:8px}
.wheel-item{width:110px!important;height:60px!important;margin-left:-55px!important;margin-top:-30px!important;box-sizing:border-box!important;transform:rotate(var(--angle)) translate(0,calc(var(--wheel-size) * -.375)) rotate(calc(-1 * var(--angle)))!important;border-radius:13px!important;padding:5px!important}
.wheel-item b{font-size:clamp(14px,1.25vw,20px)!important}.wheel-item small{font-size:clamp(9px,.8vw,12px)!important;line-height:1.05!important}
.capture-popup-players-col .popup-player-scroll.side{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;overflow-y:auto!important;overflow-x:hidden!important;max-height:calc(100% - 42px)!important;padding:0 3px 4px!important}.capture-popup-players-col .popup-player-chip{min-width:0!important;width:100%!important;min-height:58px!important}
@media(max-width:900px) and (orientation:landscape){.capture-popup-card{width:99vw!important;height:98vh!important;max-height:98vh!important;padding:8px!important}.capture-popup-body{grid-template-columns:minmax(115px,20%) minmax(350px,60%) minmax(115px,20%)!important;gap:6px!important;height:calc(100% - 94px)!important}.capture-popup-attributes-col,.capture-popup-players-col{padding:7px}.attribute-placeholder{grid-template-columns:1fr}.attribute-placeholder small{grid-column:auto}.event-wheel{--wheel-size:min(61vh,55vw,500px)}.capture-popup-time{font-size:0}.capture-popup-time input{width:78px}.capture-popup-players-col .popup-player-scroll.side{grid-template-columns:1fr!important}.capture-popup-players-col .popup-player-chip{min-height:46px!important}}
@media(max-width:620px) and (orientation:portrait){.capture-popup-card{overflow-y:auto!important;height:98vh!important}.capture-popup-body{grid-template-columns:1fr!important;height:auto!important;overflow:visible!important}.capture-popup-attributes-col{display:none!important}.capture-popup-events-col{min-height:58vh}.event-wheel{--wheel-size:min(82vw,52vh,430px)}.capture-popup-players-col{height:auto!important}.capture-popup-players-col .popup-player-scroll.side{grid-template-columns:repeat(4,minmax(0,1fr))!important;max-height:none!important}}

/* 9.4.10: Spielerinnenbereich nutzt die komplette verfügbare Höhe */
.capture-popup-players-col{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;align-content:stretch!important;justify-content:stretch!important}
#capturePopupPlayers{display:block!important;height:100%!important;min-height:0!important;overflow:hidden!important}
.capture-popup-players-col .popup-player-scroll.side{height:100%!important;min-height:0!important;max-height:none!important;align-content:start!important;box-sizing:border-box!important;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:8px!important}
@media(max-width:620px) and (orientation:portrait){#capturePopupPlayers{height:auto!important;overflow:visible!important}.capture-popup-players-col .popup-player-scroll.side{height:auto!important;overflow:visible!important}}

/* 9.6.0: Erweiterte Teamstatistik */
.advanced-team-stats{margin-top:26px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.04)}.advanced-team-stats>h3{margin:0 0 6px}
.advanced-filter-block{margin-top:14px;padding:13px;border-radius:14px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.09)}.advanced-filter-block>select{margin:0 0 0 10px;max-width:260px}.advanced-filter-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.advanced-filter-head b{margin-right:auto}.advanced-filter-head button{padding:6px 10px!important;margin:0!important;font-size:12px}
.advanced-table-scroll{margin-top:16px;overflow:auto;max-width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.1)}.advanced-table-scroll table{margin:0;min-width:max-content}.advanced-table-scroll th,.advanced-table-scroll td{white-space:nowrap;text-align:center}.advanced-table-scroll th:first-child{text-align:left;position:sticky;left:0;z-index:2;background:#17231e}.advanced-total-row th,.advanced-total-row td{font-weight:900;background:rgba(54,200,120,.11)}
@media(max-width:760px){.advanced-team-stats{padding:12px}.advanced-filter-block>select{display:block;margin:8px 0 0;max-width:100%}}


/* 8.9.3 Spielerinnenstatistik: Shotmap unter aktuellem Spiel und klare Bereichstrennung */
.player-stats-title{margin:18px 0 12px;font-size:24px;font-weight:900;color:#fff}
.stats-section{margin:18px 0 26px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.035);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.stats-section+.stats-section{border-top:3px solid var(--team-primary,#e5362e);padding-top:18px}
.stats-section-head{display:flex;align-items:center;gap:10px;margin:-2px 0 14px;padding:10px 12px;border-radius:14px;background:linear-gradient(90deg,rgba(229,54,46,.28),rgba(54,200,120,.12));border-bottom:2px solid var(--team-primary,#e5362e)}
.stats-section-head h4{margin:0;font-size:20px;line-height:1.15;text-transform:uppercase;letter-spacing:.04em;color:#fff}
.stats-section-head span{font-size:22px}
.shotmap-block{margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.shotmap-block h5{margin:0 0 10px;font-size:16px;color:#f4d35e}
#playerMap{width:100%;height:auto;display:block;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#111}
@media(max-width:640px){.player-stats-title{font-size:22px}.stats-section{padding:11px;margin:16px 0 24px}.stats-section-head h4{font-size:18px}.stats-section-head{position:sticky;top:0;z-index:2}}

/* 8.8.15 Feld-Erfassung Popup */
.capture-popup.hidden{display:none}
.capture-popup{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px}
.capture-popup-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(2px)}
.capture-popup-card{position:relative;width:min(1120px,96vw);max-height:92vh;overflow:auto;background:#111923;border:1px solid #2b3f58;border-radius:22px;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.55)}
.capture-popup-card.opponent-mode{border-color:#ff625b;box-shadow:0 0 0 2px rgba(255,98,91,.35),0 18px 60px rgba(0,0,0,.55)}
.capture-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.capture-popup-head h3{margin:0}
.popup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 16px}
.popup-grid button{min-height:54px;white-space:normal}
.popup-grid button.selected{outline:3px solid #fff;transform:translateY(-1px)}
.player-grid button{font-weight:800}
.field-frame canvas{cursor:crosshair}

/* 8.9 Vereinsdesign nach dem Login */
.brand-block{display:flex;align-items:center;gap:12px}
.topbar-logo{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#ffffff,#eef7ef);display:flex;align-items:center;justify-content:center;border:2px solid rgba(61,202,122,.9);box-shadow:0 0 0 3px rgba(229,54,46,.22),0 8px 24px rgba(0,0,0,.35);overflow:hidden;flex:0 0 auto}
.topbar-logo img{width:100%;height:100%;object-fit:contain;padding:4px}
.topbar-logo span{font-size:27px}
body:not(.role-guest){--bg:#07100d;--panel:#121c18;--panel2:#172820;--line:#294238;--accent:#e5362e;--green:#36c878;--gold:#f4d35e;background:radial-gradient(circle at top left,rgba(229,54,46,.16),transparent 34%),radial-gradient(circle at top right,rgba(54,200,120,.14),transparent 32%),var(--team-background,var(--bg))}
body:not(.role-guest) .topbar{background:linear-gradient(90deg,#080b0a 0%,#111915 42%,#17100f 100%);border-bottom:2px solid rgba(229,54,46,.65);box-shadow:0 8px 26px rgba(0,0,0,.35)}
body:not(.role-guest) h1{letter-spacing:.2px}
body:not(.role-guest) .tabs{background:linear-gradient(90deg,#0d1512,#111a16);border-bottom:1px solid rgba(54,200,120,.45)}
body:not(.role-guest) .tab{border-right:1px solid rgba(54,200,120,.18)}
body:not(.role-guest) .tab.active{background:linear-gradient(135deg,rgba(229,54,46,.92),rgba(167,32,28,.92));color:#fff;box-shadow:inset 0 -3px 0 var(--green)}
body:not(.role-guest) .panel{border-color:rgba(54,200,120,.26);box-shadow:0 10px 30px rgba(0,0,0,.22)}
body:not(.role-guest) .panel h2{color:#fff;border-left:5px solid var(--accent);padding-left:10px}
body:not(.role-guest) .panel h3{color:#eafff1}
body:not(.role-guest) button,body:not(.role-guest) .filebtn{background:linear-gradient(135deg,#e5362e,#b92725);box-shadow:0 4px 12px rgba(229,54,46,.18)}
body:not(.role-guest) button.secondary{background:linear-gradient(135deg,#1e3f31,#26543e)}
body:not(.role-guest) input:focus,body:not(.role-guest) select:focus{outline:2px solid rgba(54,200,120,.75);border-color:var(--green)}
body:not(.role-guest) .metrics div,body:not(.role-guest) .card{border-color:rgba(54,200,120,.22);background:linear-gradient(180deg,rgba(28,47,38,.95),rgba(19,31,27,.95))}
body:not(.role-guest) .metrics b{color:#fff;text-shadow:0 0 12px rgba(54,200,120,.18)}
body:not(.role-guest) .role-banner{background:linear-gradient(90deg,rgba(229,54,46,.12),rgba(54,200,120,.10));border-color:rgba(229,54,46,.65)}
body:not(.role-guest) table{background:#14231d;border:1px solid rgba(54,200,120,.22)}
body:not(.role-guest) th{background:linear-gradient(90deg,#261313,#122318);color:#fff}
body:not(.role-guest) td{border-bottom-color:rgba(54,200,120,.16)}
body:not(.role-guest) .field-frame{border:1px solid rgba(54,200,120,.25);box-shadow:0 0 0 2px rgba(229,54,46,.08)}
body.role-guest .topbar-logo{display:none!important}

/* 8.9.1 Dynamisches Teamdesign */
:root{--team-primary:#e5362e;--team-secondary:#36c878;--team-background:#050707;--team-primary-soft:color-mix(in srgb,var(--team-primary) 18%,transparent);--team-secondary-soft:color-mix(in srgb,var(--team-secondary) 16%,transparent)}
.color-dot{display:inline-block;width:12px;height:12px;border-radius:999px;border:1px solid rgba(255,255,255,.5);vertical-align:-2px;margin:0 3px}
.team-card{border-left:5px solid var(--team-primary)!important}.team-open-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;cursor:pointer}.team-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.team-card-arrow{font-size:30px;color:var(--team-secondary,#36c878);line-height:1}.team-open-card:hover{transform:translateY(-1px);border-color:var(--team-secondary,#36c878)!important;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035))!important}@media(max-width:760px){.team-open-card{grid-template-columns:1fr auto}.team-card-actions{grid-column:1/-1;justify-content:flex-start}.team-card-arrow{display:none}}
body:not(.role-guest){--accent:var(--team-primary);--green:var(--team-secondary);background:radial-gradient(circle at top left,color-mix(in srgb,var(--team-primary) 18%,transparent),transparent 34%),radial-gradient(circle at top right,color-mix(in srgb,var(--team-secondary) 16%,transparent),transparent 32%),var(--team-background,var(--bg))}
body:not(.role-guest) .topbar{background:linear-gradient(90deg,#080b0a 0%,color-mix(in srgb,var(--team-secondary) 14%,#111915) 44%,color-mix(in srgb,var(--team-primary) 16%,#17100f) 100%);border-bottom:2px solid color-mix(in srgb,var(--team-primary) 70%,transparent)}
body:not(.role-guest) .topbar-logo{border-color:color-mix(in srgb,var(--team-secondary) 85%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--team-primary) 24%,transparent),0 8px 24px rgba(0,0,0,.35)}
body:not(.role-guest) .tabs{background:linear-gradient(90deg,color-mix(in srgb,var(--team-secondary) 9%,#0d1512),#111a16);border-bottom:1px solid color-mix(in srgb,var(--team-secondary) 48%,transparent)}
body:not(.role-guest) .tab{border-right:1px solid color-mix(in srgb,var(--team-secondary) 18%,transparent)}
body:not(.role-guest) .tab.active{background:linear-gradient(135deg,color-mix(in srgb,var(--team-primary) 94%,#111),color-mix(in srgb,var(--team-primary) 65%,#111));box-shadow:inset 0 -3px 0 var(--team-secondary)}
body:not(.role-guest) .panel h2{border-left-color:var(--team-primary)}
body:not(.role-guest) button,body:not(.role-guest) .filebtn{background:linear-gradient(135deg,color-mix(in srgb,var(--team-primary) 96%,#222),color-mix(in srgb,var(--team-primary) 65%,#111));box-shadow:0 4px 12px color-mix(in srgb,var(--team-primary) 22%,transparent)}
body:not(.role-guest) button.secondary{background:linear-gradient(135deg,color-mix(in srgb,var(--team-secondary) 35%,#111),color-mix(in srgb,var(--team-secondary) 48%,#111))}
body:not(.role-guest) input:focus,body:not(.role-guest) select:focus{outline:2px solid color-mix(in srgb,var(--team-secondary) 80%,transparent);border-color:var(--team-secondary)}
body:not(.role-guest) .metrics div,body:not(.role-guest) .card{border-color:color-mix(in srgb,var(--team-secondary) 24%,transparent)}
body:not(.role-guest) .role-banner{background:linear-gradient(90deg,color-mix(in srgb,var(--team-primary) 14%,transparent),color-mix(in srgb,var(--team-secondary) 12%,transparent));border-color:color-mix(in srgb,var(--team-primary) 65%,transparent)}
body:not(.role-guest) th{background:linear-gradient(90deg,color-mix(in srgb,var(--team-primary) 24%,#111),color-mix(in srgb,var(--team-secondary) 18%,#111))}

/* 8.9.4 Spielerinnenkarten und Spielerinnenprofil */
.player-card{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:12px;align-items:center;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.player-card:hover{transform:translateY(-1px);border-color:var(--team-secondary,#36c878)!important;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.035))!important}
.player-avatar{width:54px;height:54px;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--team-primary,#e5362e),var(--team-secondary,#36c878));border:2px solid rgba(255,255,255,.22);font-weight:900;color:#fff;flex:0 0 auto;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.player-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.player-avatar.large{width:92px;height:92px;border-radius:24px;font-size:30px}
.player-card-main b{font-size:16px}
.player-card-number{font-weight:900;font-size:18px;color:#fff;min-width:44px;text-align:right}
.player-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.player-card-actions button{padding:7px 9px;font-size:12px}
.player-card-arrow{font-size:30px;color:var(--team-secondary,#36c878);line-height:1}
.player-profile-head{display:flex;align-items:center;gap:16px;margin:18px 0 12px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:linear-gradient(90deg,color-mix(in srgb,var(--team-primary) 16%,transparent),color-mix(in srgb,var(--team-secondary) 10%,transparent))}
.player-profile-head .player-stats-title{margin:0 0 4px}
@media(max-width:760px){.player-card{grid-template-columns:auto 1fr auto;gap:10px}.player-card-actions{grid-column:1/-1;justify-content:flex-start}.player-card-arrow{display:none}.player-profile-head{align-items:flex-start}.player-avatar.large{width:76px;height:76px;border-radius:20px}}


/* 8.9.13 Match-Kader, aktive Feldspielerinnen und Event-Rad */
.match-roster{margin:8px 0 18px}
.roster-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.roster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.roster-chip{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;background:#1a2430!important;border:1px solid rgba(255,255,255,.12);color:#dbe7f3}
.roster-chip b{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.08);color:#fff}
.roster-chip.selected{border-color:var(--team-secondary,#36c878);box-shadow:0 0 0 2px color-mix(in srgb,var(--team-secondary,#36c878) 28%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--team-secondary,#36c878) 18%,#1a2430),#1a2430)!important}
.active-lineup-bar{margin:8px 0 12px;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(0,0,0,.22)}
.lineup-label{font-size:12px;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.08em}
.lineup-scroll{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px}
.lineup-chip{min-width:72px;min-height:58px;padding:7px 9px;border-radius:12px;background:#064f5a!important;border:2px solid transparent;color:#cdeef6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;box-shadow:none!important;flex:0 0 auto}
.lineup-chip b{font-size:21px;line-height:1}.lineup-chip small{font-size:10px;max-width:68px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lineup-chip.active{filter:brightness(1.1);border-color:rgba(255,255,255,.35)}.lineup-chip.selected{border-color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--team-secondary,#36c878) 45%,transparent)!important;transform:translateY(-1px)}.lineup-chip.goalie{background:#8a5cf6!important;color:#f3eaff}.lineup-chip.opponent{background:#ffd84d!important;color:#171717}.lineup-chip.fieldplayer.active{background:#087684!important}.lineup-chip:not(.active){opacity:.72}
.event-wheel{position:relative;width:min(560px,88vw);height:min(560px,88vw);margin:10px auto 16px;border-radius:50%;background:radial-gradient(circle at center,rgba(255,255,255,.10) 0 22%,rgba(255,255,255,.05) 23% 100%);border:1px solid rgba(255,255,255,.12)}
.wheel-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:140px;height:140px;border-radius:999px;background:rgba(0,0,0,.72);border:2px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900;color:#fff;z-index:2}.wheel-center small{font-weight:600;color:var(--muted)}
.wheel-item{position:absolute;left:50%;top:50%;width:132px;height:74px;margin-left:-66px;margin-top:-37px;border-radius:16px;background:var(--cat-color)!important;color:#061014!important;border:2px solid rgba(255,255,255,.24);box-shadow:0 8px 22px rgba(0,0,0,.28)!important;transform:rotate(var(--angle)) translate(0,-205px) rotate(calc(-1 * var(--angle)));display:flex;align-items:center;justify-content:center;text-align:center;padding:7px;white-space:normal}.wheel-item span{display:flex;flex-direction:column;gap:2px;align-items:center}.wheel-item b{font-size:18px}.wheel-item small{font-size:11px;line-height:1.05}.wheel-item.selected{outline:4px solid #fff}
@media(max-width:760px){.event-wheel{width:92vw;height:92vw}.wheel-item{width:104px;height:64px;margin-left:-52px;margin-top:-32px;transform:rotate(var(--angle)) translate(0,-39vw) rotate(calc(-1 * var(--angle)))}.wheel-center{width:112px;height:112px}.lineup-chip{min-width:64px}.lineup-chip small{display:none}}

/* 8.9.14: Popup-Spielerleiste nach Ereigniswahl */
.popup-player-scroll{display:flex;gap:8px;overflow-x:auto;padding:8px 2px 12px;align-items:stretch}
.popup-player-chip{min-width:92px;min-height:64px;padding:8px 10px;border-radius:14px;background:#064f5a!important;border:2px solid rgba(255,255,255,.16);color:#cdeef6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:0 0 auto;font-weight:900}
.popup-player-chip b{font-size:24px;line-height:1}.popup-player-chip small{font-size:11px;max-width:82px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.popup-player-chip.goalie{background:#8a5cf6!important;color:#f3eaff}.popup-player-chip.opponent{background:#ffd84d!important;color:#171717}.popup-player-chip:active{transform:translateY(1px);filter:brightness(1.15)}
@media(max-width:760px){.popup-player-chip{min-width:72px}.popup-player-chip small{display:none}}

/* 8.9.15: Assist nach Tor + kompakteres Popup ohne Scrollen */
.capture-popup-body{display:grid;grid-template-columns:minmax(520px,1fr) minmax(170px,230px);gap:16px;align-items:center}
.capture-popup-events-col h4,.capture-popup-players-col h4{margin:4px 0 8px}
.capture-popup-players-col{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.popup-player-scroll.side{display:grid;grid-template-columns:1fr;gap:8px;overflow:visible;padding:0;max-height:none}
.popup-player-scroll.side .popup-player-chip{min-width:0;width:100%;min-height:52px;padding:7px 8px}
.popup-player-scroll.side .popup-player-chip b{font-size:22px}
.popup-player-chip.no-assist{background:#2b3442!important;color:#f0f4f8}
.assist-box{width:100%;height:100%;min-height:220px;border-radius:24px;border:1px solid rgba(255,255,255,.14);background:radial-gradient(circle at center,color-mix(in srgb,var(--team-secondary,#36c878) 16%,transparent),rgba(0,0,0,.22));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px}.assist-box b{font-size:28px}.assist-box small{color:var(--muted)}
@media(max-width:900px){.capture-popup-body{grid-template-columns:1fr}.popup-player-scroll.side{grid-template-columns:repeat(3,minmax(68px,1fr));overflow:visible}.popup-player-scroll.side .popup-player-chip small{display:none}.event-wheel{width:min(480px,86vw);height:min(480px,86vw)}.wheel-item{transform:rotate(var(--angle)) translate(0,-176px) rotate(calc(-1 * var(--angle)))}}
@media(max-width:560px){.popup-player-scroll.side{grid-template-columns:repeat(4,minmax(58px,1fr))}.popup-player-scroll.side .popup-player-chip{min-height:46px}.popup-player-scroll.side .popup-player-chip b{font-size:18px}.event-wheel{width:88vw;height:88vw}.wheel-item{width:96px;height:58px;margin-left:-48px;margin-top:-29px;transform:rotate(var(--angle)) translate(0,-37vw) rotate(calc(-1 * var(--angle)))}.wheel-item small{display:none}.wheel-center{width:104px;height:104px}}

/* Version 9.0: Match-Uhr und Zeitstempel */
.match-clock-panel{margin:10px 0 12px;padding:12px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:linear-gradient(135deg,rgba(0,0,0,.32),rgba(255,255,255,.04))}
.match-clock-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.match-clock-main>div{display:flex;align-items:baseline;gap:8px;margin-right:auto}
.match-clock-main small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.match-clock-main b{font-size:34px;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.match-clock-main span{color:var(--muted);font-variant-numeric:tabular-nums}
.inline-check{display:flex;align-items:center;gap:8px;min-height:40px}

.timeline-controls{margin:8px 0 10px;padding:10px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04)}
.timeline-sort{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.timeline-sort select{max-width:260px}
.timeline-filter small{display:block;margin-top:6px;opacity:.75}
.timeline-summary{margin:8px 0;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.06);font-size:13px}

.event-timeline{display:grid;gap:6px;margin-top:8px}
.event-timeline>div{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(0,0,0,.18)}
.event-timeline b{font-variant-numeric:tabular-nums;color:var(--team-secondary,#36c878)}
.event-timeline span{text-align:right}
.event-log small{color:var(--team-secondary,#36c878);font-variant-numeric:tabular-nums}
@media(max-width:760px){.match-clock-main b{font-size:28px}.match-clock-main button{padding:8px 10px}.event-timeline>div{flex-direction:column;gap:2px}.event-timeline span{text-align:left}}
.match-number-field{display:flex;align-items:center;gap:6px;font-size:.85rem}.match-number-field input{width:70px;min-width:70px;padding:8px 10px}
.match-save-bottom{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
