:root{--bg:#0a1020;--bg2:#111827;--panel:#151f34;--panel2:#1b2942;--text:#e5edf8;--muted:#8fa3bf;--line:#2b3d5c;--brand:#21d09b;--brand2:#59a7ff;--danger:#ff5d6c;--warn:#fbbf24;--shadow:0 22px 60px rgba(0,0,0,.28);--radius:22px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}[v-cloak]{display:none!important}.app-shell.light{--bg:#f5f7fb;--bg2:#eef2f7;--panel:#fff;--panel2:#f8fafc;--text:#122033;--muted:#64748b;--line:#dbe3ef;--shadow:0 18px 50px rgba(15,23,42,.10)}.boot-screen,.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,rgba(33,208,155,.22),transparent 34%),radial-gradient(circle at 80% 20%,rgba(89,167,255,.20),transparent 30%),var(--bg)}.loader-card,.login-card{width:min(430px,calc(100vw - 32px));background:rgba(21,31,52,.82);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow);border-radius:28px;padding:34px;backdrop-filter:blur(22px)}.light .loader-card,.light .login-card{background:rgba(255,255,255,.88);border-color:var(--line)}.loader-card{display:flex;flex-direction:column;align-items:center;gap:10px}.loader-ball{width:38px;height:38px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--brand);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.brand-mark{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;font-weight:900;color:#051321;font-size:24px;box-shadow:0 14px 34px rgba(33,208,155,.22)}.brand-mark.small{width:42px;height:42px;border-radius:14px;font-size:16px}.login-card h1{font-size:28px;line-height:1.1;margin:22px 0 8px}.login-card p{color:var(--muted);margin:0 0 26px}.login-card small{display:block;margin-top:20px;color:var(--muted)}.login-form{display:grid;gap:14px}.login-form label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.login-form input,.search-wrap input{width:100%;margin-top:6px;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:14px;padding:13px 14px;outline:none}.login-form input:focus,.search-wrap input:focus{border-color:var(--brand)}button{font:inherit;color:inherit}.primary-btn,.ghost-btn,.icon-btn{border:0;border-radius:14px;padding:11px 16px;font-weight:800;cursor:pointer;transition:.18s transform,.18s opacity,.18s background}.primary-btn{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#06111f}.ghost-btn,.icon-btn{background:var(--panel);border:1px solid var(--line);color:var(--text)}button:hover{transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}.danger-link{background:transparent;border:0;color:var(--danger);font-weight:800;cursor:pointer}.error-box{background:rgba(255,93,108,.12);border:1px solid rgba(255,93,108,.35);color:#ffb4bd;border-radius:14px;padding:12px}.app-shell{min-height:100vh;background:radial-gradient(circle at 10% 0,rgba(33,208,155,.12),transparent 28%),var(--bg)}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;background:rgba(10,16,32,.86);border-right:1px solid var(--line);backdrop-filter:blur(18px);z-index:20;padding:20px;display:flex;flex-direction:column}.light .sidebar{background:rgba(255,255,255,.88)}.side-brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.side-brand strong{display:block}.side-brand span,.side-footer span{display:block;color:var(--muted);font-size:12px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 13px;border:0;background:transparent;color:var(--muted);border-radius:15px;cursor:pointer;text-align:left;font-weight:800}.sidebar nav button.active,.sidebar nav button:hover{background:linear-gradient(135deg,rgba(33,208,155,.16),rgba(89,167,255,.12));color:var(--text)}kbd{margin-left:auto;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:7px;padding:2px 6px}.side-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.main{margin-left:280px;min-height:100vh}.topbar{position:sticky;top:0;z-index:10;height:74px;display:flex;align-items:center;gap:12px;padding:14px 24px;background:rgba(10,16,32,.68);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.light .topbar{background:rgba(245,247,251,.78)}.search-wrap{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:0 12px;flex:1;max-width:520px}.search-wrap span{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:3px 6px}.search-wrap input{border:0;background:transparent;margin:0}.content{padding:28px}.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.page-title p{margin:0 0 4px;color:var(--brand);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.page-title h1{margin:0;font-size:34px}.version-pill{border:1px solid var(--line);background:var(--panel);padding:9px 14px;border-radius:999px;color:var(--muted);font-size:12px;font-weight:800}.page-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.hero-card,.kpi-grid,.chart-card,.panel-card,.profile-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-card{grid-column:span 12;padding:28px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative}.hero-card:before{content:"";position:absolute;inset:-80px -80px auto auto;width:280px;height:280px;background:radial-gradient(circle,rgba(33,208,155,.22),transparent 65%);border-radius:50%}.hero-card p{margin:0;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:12px}.hero-card h2{font-size:32px;margin:8px 0}.hero-card span{color:var(--muted)}.hero-score{font-size:56px;font-weight:1000;color:var(--brand);z-index:1}.kpi-grid{grid-column:span 12;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden}.kpi{padding:22px;background:linear-gradient(180deg,var(--panel2),var(--panel));display:grid;gap:6px}.kpi span,.kpi em{color:var(--muted);font-size:12px;font-style:normal}.kpi strong{font-size:34px}.chart-card{grid-column:span 6;padding:18px;min-height:330px}.chart-card.wide,.panel-card.wide{grid-column:span 12}.chart-card canvas{width:100%!important;height:260px!important}.chart-card.flat{box-shadow:none;min-height:250px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.card-head h3{margin:0}.card-head span{color:var(--muted);font-size:12px;font-weight:800}.panel-card{grid-column:span 6;padding:18px}.rank-list{display:grid;gap:8px}.rank-list button,.table-like .row{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:11px 12px}.rank-list button{cursor:pointer}.rank-list b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(33,208,155,.14);color:var(--brand)}.rank-list strong,.table-like b{color:var(--brand)}.table-like{display:grid;gap:8px}.table-like .row{grid-template-columns:100px 1fr 1fr 70px}.table-like span,.table-like em{color:var(--muted);font-style:normal}.players-layout{display:grid;grid-template-columns:minmax(0,1.2fr) 420px;gap:18px}.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px}.player-card{background:var(--panel2);border:1px solid var(--line);border-radius:20px;padding:16px;text-align:left;display:grid;gap:8px;cursor:pointer}.player-card img,.profile-hero img{width:58px;height:58px;border-radius:18px;object-fit:cover}.avatar{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;font-weight:1000;color:#06111f}.avatar.big{width:76px;height:76px;border-radius:24px;font-size:24px}.player-card span,.player-card small,.profile-hero p,.profile-hero span,.muted{color:var(--muted)}.player-card b{color:var(--brand);font-size:24px}.profile-panel{padding:18px;position:sticky;top:94px;height:max-content}.profile-hero{display:flex;gap:16px;align-items:center}.profile-hero h2{margin:0}.profile-hero p{margin:4px 0}.mini-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.mini-kpis div{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:12px}.mini-kpis span{display:block;color:var(--muted);font-size:12px}.mini-kpis strong{font-size:20px}.area-list{display:grid;gap:8px}.area-list div{display:flex;justify-content:space-between;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:9px}.stats-table{display:grid;gap:6px;overflow:auto}.stats-table .head,.stats-table .row{display:grid;grid-template-columns:180px repeat(7,90px) 70px;gap:8px;align-items:center;min-width:900px}.stats-table .head{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.stats-table .row{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px}.settings-grid{display:flex;gap:12px;flex-wrap:wrap}.quick-search{position:fixed;top:80px;left:310px;width:min(520px,calc(100vw - 340px));background:var(--panel);border:1px solid var(--line);border-radius:20px;z-index:30;box-shadow:var(--shadow);padding:10px}.quick-search button{width:100%;display:flex;justify-content:space-between;background:transparent;border:0;border-radius:12px;padding:10px;cursor:pointer}.quick-search button:hover{background:var(--panel2)}.quick-search span,.empty-mini{color:var(--muted)}.fade-in{animation:fade .25s ease both}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.mobile-only{display:none}@media(max-width:980px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.mobile-only{display:block}.topbar{gap:8px;overflow:auto}.content{padding:18px}.page-grid{grid-template-columns:1fr}.hero-card,.kpi-grid,.chart-card,.panel-card,.chart-card.wide,.panel-card.wide{grid-column:span 1}.kpi-grid{grid-template-columns:1fr 1fr}.players-layout{grid-template-columns:1fr}.profile-panel{position:static}.quick-search{left:16px;right:16px;width:auto}.table-like .row{grid-template-columns:80px 1fr}.table-like .row em{display:none}}@media(max-width:560px){.kpi-grid{grid-template-columns:1fr}.hero-card{display:block}.hero-score{font-size:40px;margin-top:18px}.page-title{display:block}.topbar .ghost-btn,.danger-link{display:none}}@media print{body{background:#fff;color:#111}.sidebar,.topbar,.version-pill,.quick-search{display:none!important}.main{margin:0}.content{padding:0}.chart-card,.panel-card,.hero-card,.kpi{box-shadow:none;border:1px solid #ddd;background:#fff;color:#111}.page-grid,.players-layout{display:block}.chart-card,.panel-card{page-break-inside:avoid;margin-bottom:14px}.print-report{display:block!important}}

/* v3.1 Bewertungen */
.ratings-page{display:grid;gap:18px}.ratings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.ratings-toolbar h3{margin:0;font-size:18px}.ratings-toolbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.segmented{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:4px;gap:4px}.segmented button{border:0;background:transparent;color:var(--muted);padding:9px 13px;border-radius:10px;font-weight:800;cursor:pointer}.segmented button.active{background:var(--accent);color:white}.rating-form-grid{display:grid;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.form-grid label,.full-label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.form-grid input,.form-grid select,.full-label textarea,.criteria-head select,.criterion-note,.area-comment{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text);font:inherit;outline:none}.full-label{margin-top:14px}.full-label textarea{min-height:76px;resize:vertical;text-transform:none;font-weight:600;letter-spacing:0}.rating-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.rating-summary span{color:var(--muted);font-weight:800}.rating-summary strong{font-size:24px}.criteria-stack{display:grid;gap:16px}.criteria-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.criteria-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.criteria-head h3{margin:0;font-size:16px}.criteria-head span{color:var(--muted);font-size:12px;font-weight:800}.criteria-head label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.criterion-row{display:grid;grid-template-columns:minmax(190px,1fr) auto minmax(190px,.85fr);gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.criterion-row>span{font-weight:700}.score-buttons{display:flex;gap:5px}.score-buttons button{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);font-weight:900;cursor:pointer}.score-buttons button.active{background:var(--accent);color:white;border-color:var(--accent)}.criterion-note{font-size:13px}.area-comment{width:100%;min-height:58px;margin-top:12px;resize:vertical}.row-button{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.row-button:hover{background:rgba(34,197,94,.08)}.rating-list .row{grid-template-columns:130px 1.2fr 2fr 80px}.rating-detail{display:grid;gap:16px}.detail-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(135deg,rgba(34,197,94,.18),rgba(59,130,246,.10));border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:12px}.detail-hero p{margin:0;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.detail-hero h2{margin:4px 0;font-size:28px}.detail-hero span{color:var(--muted)}.detail-hero strong{font-size:42px}.danger-btn{border:1px solid rgba(239,68,68,.4);background:rgba(239,68,68,.12);color:#ef4444;border-radius:12px;padding:10px 14px;font-weight:900;cursor:pointer}.criterion-row.read{grid-template-columns:minmax(220px,1fr) 60px minmax(220px,1fr)}.criterion-row.read b{font-size:18px;text-align:center;color:var(--accent)}.criterion-row.read em{color:var(--muted);font-style:normal;font-size:13px}.area-comment-read{margin:0 0 10px;padding:12px 14px;background:var(--panel2);border-radius:14px;color:var(--muted)}.wide-action{width:100%;justify-content:center;margin:0 0 14px}.primary-btn.wide-action{display:flex}
@media(max-width:900px){.form-grid{grid-template-columns:1fr 1fr}.criterion-row,.criterion-row.read{grid-template-columns:1fr}.ratings-toolbar{align-items:flex-start;flex-direction:column}.segmented{width:100%;overflow:auto}.segmented button{white-space:nowrap}.detail-hero{align-items:flex-start;flex-direction:column}.detail-hero strong{font-size:34px}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}.score-buttons{flex-wrap:wrap}.criteria-card{padding:14px}.rating-summary>*{width:100%;justify-content:center}.rating-summary strong{width:auto}}

/* v3.1.1 Spielerverwaltung */
.player-list-panel .card-head{align-items:center}.player-card.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(33,208,155,.18)}.profile-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.file-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.profile-facts div{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:11px}.profile-facts span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.profile-facts b{display:block;margin-top:4px;font-size:13px}.profile-notes{margin-top:14px;background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:12px}.profile-notes p{margin:6px 0;color:var(--muted)}.edit-panel{position:static}.player-form{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.form-grid label input,.form-grid label select{margin-top:0}.profile-panel .danger-btn{padding:10px 14px}@media(max-width:760px){.player-form{grid-template-columns:1fr}.profile-facts{grid-template-columns:1fr}.profile-actions{display:grid;grid-template-columns:1fr}.profile-actions .ghost-btn,.profile-actions .danger-btn{width:100%;justify-content:center;text-align:center}.form-actions{flex-direction:column}.form-actions button{width:100%}}
.role-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:1000;border:1px solid var(--line);background:var(--panel);white-space:nowrap}.role-admin{color:#fbbf24;background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.35)}.role-trainer{color:var(--brand);background:rgba(33,208,155,.12);border-color:rgba(33,208,155,.35)}.role-co{color:var(--brand2);background:rgba(89,167,255,.12);border-color:rgba(89,167,255,.35)}.admin-grid{display:grid;gap:18px}.permission-box{background:rgba(255,93,108,.10);border:1px solid rgba(255,93,108,.28);border-radius:18px;padding:18px;color:var(--muted);font-weight:800}.user-table{display:grid;gap:8px}.user-row{display:grid;grid-template-columns:1fr 1.2fr 140px 90px 170px auto;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:11px 12px}.user-head{background:transparent;border:0;color:var(--muted);font-size:12px;text-transform:uppercase;font-weight:1000}.row-actions{display:flex;gap:8px;justify-content:flex-end}.admin-form{grid-template-columns:repeat(5,minmax(0,1fr))}.role-help{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.role-help div{background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:13px}.role-help b{display:block;margin-bottom:5px}.role-help span{color:var(--muted);font-size:13px}.topbar .role-badge{margin-left:auto}.search-wrap+.role-badge{margin-left:auto}@media(max-width:980px){.user-row{grid-template-columns:1fr}.user-head{display:none}.row-actions{justify-content:flex-start}.admin-form{grid-template-columns:1fr}.role-help{grid-template-columns:1fr}.topbar .role-badge{display:none}}

/* v3.1.4 Security Hardening */
.session-warning {
  position: sticky;
  top: 76px;
  z-index: 25;
  margin: 0 24px 16px;
  padding: 14px 18px;
  border: 1px solid rgba(245, 158, 11, .45);
  background: linear-gradient(135deg, rgba(245, 158, 11, .18), rgba(245, 158, 11, .08));
  border-radius: 16px;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
}
.session-warning strong { color: var(--text); }
.session-warning span { color: var(--muted); flex: 1; }
.settings-layout { display: grid; gap: 18px; }

/* v3.1.8 player profile modules */
.player-modules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.module-card{min-height:160px}.compact-form{display:flex;flex-direction:column;gap:10px}.compact-form textarea{min-height:70px}.small-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.potential-list{display:flex;flex-direction:column;gap:8px}.potential-row{display:grid;grid-template-columns:1.3fr .65fr .65fr auto;gap:8px;align-items:end;padding:8px 0;border-bottom:1px solid var(--line)}.potential-row label{font-size:11px;color:var(--muted)}.potential-row select{margin-top:4px}.compact-table .row{grid-template-columns:1fr 1fr 1fr 1.4fr auto}.inline-entry{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr auto;gap:8px;margin-top:12px;align-items:center}.stacked-entry{grid-template-columns:1.2fr 1fr 1fr 1fr 1.4fr auto}.mini-danger{border:0;background:rgba(239,68,68,.13);color:#f87171;border-radius:10px;padding:6px 10px;cursor:pointer}.ghost-btn.small{padding:7px 10px;font-size:12px}.empty-mini{padding:12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:13px}@media(max-width:1100px){.player-modules-grid{grid-template-columns:1fr}.inline-entry,.stacked-entry,.potential-row{grid-template-columns:1fr}.compact-table .row{grid-template-columns:1fr}}

/* v3.2 Bewertungsphilosophie */
.scale-principle {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px 14px;
  margin: 0 0 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(37,99,235,.08), rgba(16,185,129,.08));
  color: var(--text);
  font-size: 13px;
}
.scale-principle strong { white-space: nowrap; }
.scale-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 12px;
}
.scale-card {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  min-height: 88px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.scale-card b {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--panel2);
  color: var(--text);
}
.scale-card strong { font-size: 12px; line-height: 1.2; }
.scale-card span { font-size: 11px; color: var(--muted); }
.scale-1 b { background: rgba(239,68,68,.16); color: #dc2626; }
.scale-2 b { background: rgba(245,158,11,.16); color: #d97706; }
.scale-3 b { background: rgba(59,130,246,.16); color: #2563eb; }
.scale-4 b { background: rgba(16,185,129,.16); color: #059669; }
.scale-5 b { background: rgba(124,58,237,.16); color: #7c3aed; }
.scale-details {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  margin-bottom: 16px;
  background: var(--panel);
}
.scale-details summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--text);
  font-size: 13px;
}
.scale-detail-row {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  margin-top: 8px;
}
.scale-detail-row b {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--panel2);
}
.scale-detail-row div { display: flex; flex-direction: column; gap: 3px; }
.scale-detail-row span { color: var(--muted); font-size: 12px; line-height: 1.35; }
.area-guidance {
  margin-top: 5px;
  max-width: 760px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.criterion-row .score-buttons button { position: relative; }
.criterion-row .score-buttons button:hover::after {
  content: attr(title);
  position: absolute;
  z-index: 50;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  width: 260px;
  padding: 9px 10px;
  border-radius: 10px;
  background: var(--text);
  color: var(--bg);
  font-size: 11px;
  line-height: 1.3;
  box-shadow: var(--shadow);
  pointer-events: none;
}
@media (max-width: 900px) {
  .scale-grid { grid-template-columns: 1fr; }
  .scale-principle { flex-direction: column; }
  .criterion-row .score-buttons button:hover::after { display: none; }
}

/* v3.2.1 · Potenzialmatrix */
.potential-card { margin-top: 18px; }
.potential-help {
  margin: 12px 0 16px;
  padding: 12px 14px;
  border: 1px solid var(--border, rgba(148,163,184,.25));
  border-radius: 14px;
  background: rgba(14,165,233,.08);
  color: var(--muted, #94a3b8);
  font-size: 13px;
  line-height: 1.45;
}
.potential-help b { color: var(--text, #e5e7eb); }
.potential-table { display: grid; gap: 8px; }
.potential-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) 110px 160px 160px 80px 100px;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(148,163,184,.08);
  border: 1px solid rgba(148,163,184,.12);
}
.potential-row.potential-head {
  background: transparent;
  border: 0;
  color: var(--muted, #94a3b8);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
}
.potential-row strong { font-size: 13px; }
.potential-row select {
  width: 100%;
  min-width: 0;
  border-radius: 10px;
  padding: 8px 10px;
  border: 1px solid rgba(148,163,184,.25);
  background: var(--panel, #0f172a);
  color: var(--text, #e5e7eb);
}
.potential-row b.gap-high { color: #22c55e; }
.potential-row b.gap-mid { color: #f59e0b; }
.potential-row b.gap-low { color: #38bdf8; }
.potential-row b.gap-risk { color: #ef4444; }
.potential-row b.gap-empty { color: var(--muted, #94a3b8); }
.potential-legend {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 14px;
}
.potential-legend div {
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(148,163,184,.07);
  border: 1px solid rgba(148,163,184,.12);
}
.potential-legend b { display:block; font-size:12px; margin-bottom:3px; }
.potential-legend span { display:block; color: var(--muted, #94a3b8); font-size:12px; }
.ghost-btn.small { padding: 7px 10px; font-size: 12px; }
@media (max-width: 920px) {
  .potential-row { grid-template-columns: 1fr 1fr; }
  .potential-row.potential-head { display:none; }
  .potential-legend { grid-template-columns: 1fr; }
}

/* v3.3 Grundfunktionen finalisieren */
.search-wrap{position:relative}.search-clear{border:0;background:var(--panel2);color:var(--muted);border-radius:999px;width:28px;height:28px;display:grid;place-items:center;cursor:pointer}.full-label small,label small{display:block;color:var(--muted);font-size:11px;margin-top:4px;text-transform:none;letter-spacing:0}.form-grid select[multiple]{min-height:96px;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:14px;padding:10px}.profile-module-grid{display:grid;gap:14px;margin-top:18px}.sub-card{grid-column:auto;padding:16px}.sub-card label{display:grid;gap:6px;margin-bottom:10px;color:var(--muted);font-size:12px;font-weight:800}.sub-card input,.sub-card select,.sub-card textarea,.report-controls select{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:10px}.sub-card textarea{min-height:70px}.mini-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;margin-bottom:10px}.mini-form.stacked{grid-template-columns:1fr 1fr 1fr auto}.compact-list{display:grid;gap:8px}.compact-list div{display:grid;grid-template-columns:90px 1fr 28px;gap:8px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:8px}.compact-list button{border:0;background:rgba(255,93,108,.14);color:var(--danger);border-radius:8px;cursor:pointer}.training-tags{display:flex;gap:8px;flex-wrap:wrap}.training-tags span{background:rgba(33,208,155,.12);border:1px solid rgba(33,208,155,.25);color:var(--brand);padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.size-hint-table{grid-column:1/-1;background:var(--panel2);border:1px solid var(--line);border-radius:16px;padding:12px;margin:8px 0 16px}.size-hint-table b{display:block;margin-bottom:8px}.size-hint-table div{display:grid;grid-template-columns:80px 1fr 1fr;gap:10px;padding:6px;border-top:1px solid var(--line);color:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.check-grid label{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:9px}.report-controls{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.report-controls label{display:flex;gap:8px;align-items:center}.report-player-block{border:1px solid var(--line);border-radius:16px;padding:14px;margin:12px 0;background:var(--panel2)}.report-line{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted)}.report-ratings{display:grid;gap:6px;margin-top:10px}.report-ratings div{display:grid;grid-template-columns:120px 1fr 80px;gap:10px;border-top:1px solid var(--line);padding-top:6px}.back-btn{margin:0 0 14px}.version-admin p{margin:0;color:var(--muted);font-weight:800}.admin-grid .user-table{overflow:auto}.admin-grid .user-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(130px,1fr) 120px 90px minmax(150px,1fr) minmax(180px,auto);gap:10px;align-items:center;min-width:860px;padding:10px;border-bottom:1px solid var(--line)}.admin-grid .user-head{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.row-actions{display:flex;gap:8px;justify-content:flex-end}.player-ratings-card{overflow:hidden}.potential-card,.player-ratings-card{margin-top:16px}.clothing-grid{margin-top:8px}
@media print{.chart-card canvas{height:240px!important;max-height:240px!important;width:100%!important;aspect-ratio:1.8/1}.chart-card.wide canvas#teamRadar{height:300px!important;max-width:520px!important;margin:auto;display:block}.profile-actions,.settings-grid,.primary-btn,.ghost-btn,.danger-btn,.danger-link,.search-clear{display:none!important}.report-player-block{page-break-inside:avoid}}
@media(max-width:760px){.mini-form,.mini-form.stacked{grid-template-columns:1fr}.size-hint-table div{grid-template-columns:1fr}.report-ratings div{grid-template-columns:1fr}.admin-grid .user-row{min-width:720px}}

/* v3.3.1 Dashboard-Fix */
.chart-print-img{display:none;width:100%;height:auto;max-height:320px;object-fit:contain;border-radius:14px;background:#fff}
.search-wrap{position:relative}.search-clear{border:0;background:var(--panel2);color:var(--muted);border-radius:999px;width:28px;height:28px;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.search-clear:hover{color:var(--text);background:rgba(33,208,155,.14)}
.version-admin p{margin:6px 0;color:var(--muted);font-weight:800}.version-admin strong{color:var(--text)}
@media print{
  .chart-card{display:block!important;height:auto!important;min-height:0!important;margin-bottom:16px!important;page-break-inside:avoid!important;background:#fff!important;color:#111!important}
  .chart-card canvas{display:none!important}
  .chart-print-img{display:block!important}
  .card-head h3,.card-head span{color:#111!important}
  .page-title{display:block!important}.page-title p,.page-title h1{color:#111!important}
  .hero-card,.kpi-grid,.panel-card,.kpi{background:#fff!important;color:#111!important;border-color:#ddd!important}
  .hero-score,.rank-list strong,.rank-list b{color:#111!important}
}

/* =========================================================
   v3.3.2 · Theme Pro
   Vollständige Überarbeitung von Light/Dark Mode
   ========================================================= */
:root {
  color-scheme: dark;
  --bg: #08111f;
  --bg2: #0d1829;
  --bg3: #111f34;
  --panel: rgba(17, 31, 52, .96);
  --panel2: rgba(24, 42, 68, .92);
  --panel3: rgba(31, 52, 82, .88);
  --text: #f3f7fc;
  --text-strong: #ffffff;
  --muted: #a8b8cf;
  --muted2: #7e91ad;
  --line: rgba(148, 163, 184, .22);
  --line-strong: rgba(203, 213, 225, .34);
  --brand: #22c990;
  --brand2: #4ea1ff;
  --brand-soft: rgba(34, 201, 144, .14);
  --blue-soft: rgba(78, 161, 255, .14);
  --danger: #ff6375;
  --warn: #f5b942;
  --ok: #31d399;
  --shadow: 0 24px 70px rgba(0, 0, 0, .32);
  --shadow-soft: 0 10px 30px rgba(0, 0, 0, .20);
  --radius: 22px;
  --focus: 0 0 0 4px rgba(34, 201, 144, .18);
}

body.dark,
.app-shell.dark {
  color-scheme: dark;
  --bg: #08111f;
  --bg2: #0d1829;
  --bg3: #111f34;
  --panel: rgba(17, 31, 52, .96);
  --panel2: rgba(24, 42, 68, .92);
  --panel3: rgba(31, 52, 82, .88);
  --text: #f3f7fc;
  --text-strong: #ffffff;
  --muted: #a8b8cf;
  --muted2: #7e91ad;
  --line: rgba(148, 163, 184, .22);
  --line-strong: rgba(203, 213, 225, .34);
  --brand: #22c990;
  --brand2: #4ea1ff;
  --brand-soft: rgba(34, 201, 144, .14);
  --blue-soft: rgba(78, 161, 255, .14);
  --shadow: 0 24px 70px rgba(0, 0, 0, .32);
  --shadow-soft: 0 10px 30px rgba(0, 0, 0, .20);
}

body.light,
.app-shell.light {
  color-scheme: light;
  --bg: #f4f7fb;
  --bg2: #eef3f8;
  --bg3: #e8eef6;
  --panel: rgba(255, 255, 255, .96);
  --panel2: #f8fafc;
  --panel3: #eef4fb;
  --text: #162033;
  --text-strong: #07111f;
  --muted: #40516a;
  --muted2: #617089;
  --line: rgba(100, 116, 139, .24);
  --line-strong: rgba(71, 85, 105, .34);
  --brand: #087f5b;
  --brand2: #1d5fbf;
  --brand-soft: rgba(8, 127, 91, .10);
  --blue-soft: rgba(29, 95, 191, .10);
  --danger: #c53045;
  --warn: #a16207;
  --ok: #047857;
  --shadow: 0 22px 60px rgba(15, 23, 42, .10);
  --shadow-soft: 0 8px 24px rgba(15, 23, 42, .08);
  --focus: 0 0 0 4px rgba(8, 127, 91, .16);
}

html, body {
  min-height: 100%;
  background: var(--bg) !important;
  color: var(--text) !important;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.app-shell {
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(circle at 6% -8%, rgba(34,201,144,.18), transparent 28%),
    radial-gradient(circle at 96% 2%, rgba(78,161,255,.15), transparent 30%),
    linear-gradient(180deg, var(--bg), var(--bg2) 58%, var(--bg));
}
.app-shell.light {
  background:
    radial-gradient(circle at 8% -8%, rgba(8,127,91,.13), transparent 30%),
    radial-gradient(circle at 96% 0%, rgba(29,95,191,.11), transparent 32%),
    linear-gradient(180deg, #f8fafc 0%, #eef3f8 48%, #f5f7fb 100%);
}

.sidebar {
  background: linear-gradient(180deg, rgba(8,17,31,.94), rgba(13,24,41,.92)) !important;
  border-right: 1px solid var(--line) !important;
  box-shadow: 16px 0 44px rgba(0,0,0,.18);
}
.app-shell.light .sidebar,
body.light .sidebar {
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(246,249,253,.92)) !important;
  box-shadow: 14px 0 42px rgba(15,23,42,.08);
}
.sidebar nav button {
  color: var(--muted) !important;
}
.sidebar nav button.active,
.sidebar nav button:hover {
  color: var(--text-strong) !important;
  background: linear-gradient(135deg, var(--brand-soft), var(--blue-soft)) !important;
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.10);
}
.app-shell.light .sidebar nav button.active,
.app-shell.light .sidebar nav button:hover {
  color: #07111f !important;
}
.side-brand strong,
.side-footer strong,
.page-title h1,
.card-head h3,
.profile-hero h2,
.login-card h1 {
  color: var(--text-strong) !important;
}
.side-brand span,
.side-footer span,
.page-title p,
.hero-card p,
.hero-card span,
.player-card span,
.player-card small,
.profile-hero p,
.profile-hero span,
.muted,
.empty-mini,
.card-head span,
.kpi span,
.kpi em,
.table-like span,
.table-like em,
.stats-table .head,
.scale-card span,
.scale-detail-row span,
.area-guidance,
.full-label small,
label small {
  color: var(--muted) !important;
}

.main,
.content {
  background: transparent !important;
  color: var(--text) !important;
}
.topbar {
  background: rgba(8,17,31,.74) !important;
  border-bottom: 1px solid var(--line) !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
}
.app-shell.light .topbar,
body.light .topbar {
  background: rgba(248,250,252,.84) !important;
  box-shadow: 0 8px 28px rgba(15,23,42,.06);
}

.hero-card,
.kpi-grid,
.chart-card,
.panel-card,
.profile-panel,
.scale-card,
.scale-details,
.report-player-block,
.size-hint-table,
.sub-card,
.login-card,
.loader-card,
.modal,
.admin-grid,
.player-ratings-card,
.potential-card {
  background: var(--panel) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow) !important;
}
.kpi,
.player-card,
.rank-list button,
.table-like .row,
.stats-table .row,
.mini-kpis div,
.area-list div,
.compact-list div,
.criteria-row,
.area-block,
.module-panel,
.training-card,
.potential-row:not(.potential-head),
.search-wrap,
.login-form input,
.search-wrap input,
input,
select,
textarea,
.form-grid select[multiple],
.sub-card input,
.sub-card select,
.sub-card textarea,
.report-controls select {
  background: var(--panel2) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}
.app-shell.light .hero-card,
.app-shell.light .kpi-grid,
.app-shell.light .chart-card,
.app-shell.light .panel-card,
.app-shell.light .profile-panel,
.app-shell.light .scale-card,
.app-shell.light .scale-details,
.app-shell.light .sub-card,
.app-shell.light .report-player-block,
.app-shell.light .login-card,
.app-shell.light .loader-card {
  background: rgba(255,255,255,.96) !important;
  border-color: rgba(100,116,139,.20) !important;
}
.app-shell.light .kpi,
.app-shell.light .player-card,
.app-shell.light .rank-list button,
.app-shell.light .table-like .row,
.app-shell.light .stats-table .row,
.app-shell.light .mini-kpis div,
.app-shell.light .area-list div,
.app-shell.light .compact-list div,
.app-shell.light .criteria-row,
.app-shell.light .search-wrap,
.app-shell.light input,
.app-shell.light select,
.app-shell.light textarea {
  background: #f8fafc !important;
  color: #162033 !important;
  border-color: rgba(100,116,139,.24) !important;
}

input::placeholder,
textarea::placeholder { color: var(--muted2) !important; opacity: 1; }
input:focus,
select:focus,
textarea:focus,
.search-wrap:focus-within {
  outline: none !important;
  border-color: var(--brand) !important;
  box-shadow: var(--focus) !important;
}

.primary-btn {
  color: #ffffff !important;
  background: linear-gradient(135deg, var(--brand), var(--brand2)) !important;
  border: 0 !important;
  box-shadow: 0 10px 24px rgba(8,127,91,.18);
}
body.dark .primary-btn,
.app-shell.dark .primary-btn { color: #04111d !important; }
.ghost-btn,
.icon-btn,
.search-clear {
  color: var(--text) !important;
  background: var(--panel2) !important;
  border: 1px solid var(--line) !important;
}
.ghost-btn:hover,
.icon-btn:hover,
.search-clear:hover,
.player-card:hover,
.rank-list button:hover {
  border-color: var(--line-strong) !important;
  background: var(--panel3) !important;
}

.hero-card {
  background:
    linear-gradient(135deg, rgba(34,201,144,.12), rgba(78,161,255,.10)),
    var(--panel) !important;
}
.app-shell.light .hero-card {
  background:
    linear-gradient(135deg, rgba(8,127,91,.09), rgba(29,95,191,.08)),
    rgba(255,255,255,.96) !important;
}
.hero-score,
.player-card b,
.rank-list strong,
.table-like b,
.kpi strong,
.mini-kpis strong {
  color: var(--text-strong) !important;
}
.hero-score { color: var(--brand) !important; }
.brand-mark,
.avatar,
.rank-list b {
  background: linear-gradient(135deg, var(--brand), var(--brand2)) !important;
  color: #fff !important;
}
body.dark .brand-mark,
body.dark .avatar,
body.dark .rank-list b { color: #04111d !important; }

.stats-table .head,
.admin-grid .user-head,
.potential-row.potential-head {
  color: var(--muted) !important;
}
.stats-table .row,
.admin-grid .user-row,
.potential-row,
.compact-table .row {
  border-color: var(--line) !important;
}

.badge,
.version-pill,
kbd,
.tag,
.training-tags span {
  color: var(--text) !important;
  background: var(--panel2) !important;
  border: 1px solid var(--line) !important;
}
.version-pill { display: none !important; }
.scale-principle,
.potential-help {
  background: linear-gradient(135deg, var(--brand-soft), var(--blue-soft)) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}
.error-box {
  background: rgba(255,99,117,.12) !important;
  border-color: rgba(255,99,117,.32) !important;
  color: var(--danger) !important;
}

.chart-card canvas,
.profile-panel canvas,
.report-player-block canvas {
  filter: none;
}
.app-shell.light canvas { filter: saturate(.95) contrast(1.02); }

.quick-search {
  background: var(--panel) !important;
  border: 1px solid var(--line) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow) !important;
}
.quick-search button { color: var(--text) !important; }
.quick-search button:hover { background: var(--panel2) !important; }

::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(148,163,184,.35); border-radius: 999px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(148,163,184,.55); border: 3px solid transparent; background-clip: content-box; }

@media print {
  :root, body, .app-shell, .app-shell.light, .app-shell.dark {
    --bg:#ffffff !important;
    --bg2:#ffffff !important;
    --panel:#ffffff !important;
    --panel2:#ffffff !important;
    --text:#111827 !important;
    --text-strong:#000000 !important;
    --muted:#334155 !important;
    --line:#cbd5e1 !important;
    --shadow:none !important;
    background:#ffffff !important;
    color:#111827 !important;
  }
  .sidebar,.topbar,.quick-search,.mobile-only,.settings-grid,.primary-btn,.ghost-btn,.icon-btn,.search-clear { display:none !important; }
  .main{margin-left:0!important}.content{padding:0!important}
  .hero-card,.kpi-grid,.chart-card,.panel-card,.profile-panel,.report-player-block{box-shadow:none!important;border:1px solid #cbd5e1!important;background:#fff!important;color:#111827!important}
  .chart-card canvas{height:240px!important;max-height:240px!important}
}

/* v3.3.3 · globale Detailnavigation */
.page-title-pro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.page-title-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 180px;
}
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.breadcrumbs button {
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .02em;
  padding: 0;
  cursor: pointer;
}
.breadcrumbs button:not(:last-child)::after {
  content: '›';
  display: inline-block;
  margin-left: 6px;
  color: var(--muted-soft, var(--muted));
  opacity: .65;
}
.breadcrumbs button:hover:not(:disabled) { color: var(--accent); }
.breadcrumbs button:disabled { cursor: default; color: var(--text); opacity: .92; }
.back-btn {
  border: 1px solid var(--border);
  background: var(--panel-strong, var(--panel));
  color: var(--text);
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 800;
  box-shadow: var(--shadow-sm, none);
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.back-btn:hover {
  transform: translateY(-1px);
  border-color: var(--accent);
}
.detail-nav-inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  background: var(--panel-soft, var(--panel));
  border-radius: 16px;
  color: var(--muted);
}
.detail-nav-inline span {
  font-size: 13px;
  font-weight: 750;
  color: var(--text);
}
.search-wrap { position: relative; }
.search-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: var(--panel-strong, rgba(148,163,184,.16));
  color: var(--muted);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.search-clear:hover { color: var(--text); background: var(--accent-soft, rgba(16,185,129,.16)); }
.search-wrap input { padding-right: 38px; }
@media (max-width: 760px) {
  .page-title-pro { flex-direction: column; }
  .page-title-actions { width: 100%; justify-content: flex-start; }
  .back-btn, .page-title-actions .ghost-btn { width: 100%; justify-content: center; }
  .detail-nav-inline { align-items: stretch; flex-direction: column; }
}
@media print {
  .breadcrumbs, .page-title-actions, .detail-nav-inline { display: none !important; }
}

/* v3.3.4 – Spieler-Vergleich in Statistiken */
.stats-compare-controls { align-self: stretch; }
.compare-select-wrap { display: grid; grid-template-columns: minmax(260px, 420px) 1fr; gap: 14px; align-items: start; margin-top: 12px; }
.compare-select { min-height: 132px; padding: 10px; border-radius: var(--radius-md, 14px); border: 1px solid var(--line); background: var(--surface-2); color: var(--text); font: inherit; outline: none; }
.compare-select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.inline-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ghost-btn.small { padding: 7px 10px; font-size: 12px; }
.small-note { margin: 0; max-width: 520px; }
.compare-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.compare-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text); font-size: 12px; }
.compare-chip b { color: var(--accent); }
@media (max-width: 760px) { .compare-select-wrap { grid-template-columns: 1fr; } }

/* v3.3.6 Stabilitätsfix Ergänzungen */
.form-section-title{grid-column:1/-1;margin:18px 0 8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.sensitive-title{color:var(--danger)}.sensitive-title span{font-weight:600;text-transform:none;letter-spacing:0;color:var(--muted);margin-left:8px}
.player-form select[multiple]{min-height:132px;padding:10px;border-radius:12px;background:var(--surface-2);color:var(--text);border:1px solid var(--border)}
.player-form textarea,.profile-module textarea{min-height:74px}
.size-help-table{grid-column:1/-1;border:1px solid var(--border);border-radius:16px;overflow:hidden;margin:8px 0 18px;background:var(--panel)}
.size-help-table>div{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.size-help-table>div:first-child{background:var(--surface-2);font-weight:800}.size-help-table>div:last-child{border-bottom:0}
.profile-modules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.profile-module{padding:18px}.profile-module label{display:flex;flex-direction:column;gap:6px;margin:8px 0;color:var(--muted);font-size:12px;font-weight:700}.profile-module input,.profile-module select,.profile-module textarea,.inline-form input,.inline-form select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:9px 10px}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:10px 0}.mini-table{display:flex;flex-direction:column;gap:6px}.mini-table>div{display:grid;grid-template-columns:1.4fr 1fr 1fr auto;gap:8px;align-items:center;border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:8px}.mini-table button{border:0;background:var(--danger-bg);color:var(--danger);border-radius:8px;padding:4px 8px}.training-suggestion{border:1px solid var(--border);border-radius:16px;padding:14px;background:linear-gradient(135deg,var(--surface-2),var(--panel))}.training-suggestion b{display:block;margin-bottom:6px}.training-suggestion em{color:var(--muted);font-size:12px}
.compare-picker{display:flex;gap:10px;flex-wrap:wrap}.compare-picker label{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:8px 12px;font-size:13px;display:flex;align-items:center;gap:6px}.scale-help-box{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.scale-help-box>div{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:10px}.scale-help-box b{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:white;margin-right:6px}.scale-help-box strong{display:block;margin:6px 0 4px}.scale-help-box span{font-size:11px;color:var(--muted)}
.reports-layout{display:grid;gap:16px}.report-player{border-top:1px solid var(--border);padding-top:18px;margin-top:18px}.report-ratings h4{margin:14px 0 8px}.print-only{display:none!important}.settings-page{display:grid;gap:16px}.system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.system-grid>div{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:14px}.system-grid b,.system-grid span{display:block}.backup-list,.security-log{display:flex;flex-direction:column;gap:8px;margin-top:12px}.backup-list>div,.security-log>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px}.user-table-fixed .user-row{display:grid;grid-template-columns:1.1fr 1.1fr .9fr .7fr 1.2fr 1.4fr;gap:12px;align-items:center}.session-warning{margin:16px 24px 0;padding:12px 16px;border-radius:14px;background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border);display:flex;align-items:center;justify-content:space-between}
@media (max-width:900px){.profile-modules-grid,.scale-help-box,.system-grid{grid-template-columns:1fr}.user-table-fixed .user-row{grid-template-columns:1fr}.mini-table>div{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:1fr}}
@media print{.no-print,.sidebar,.topbar,.page-title-actions,.quick-search,.session-warning{display:none!important}.print-only{display:grid!important}.app-shell,.main,.content{background:#fff!important;color:#111!important}.chart-card canvas{display:none!important}.chart-print-img{display:block!important;max-width:100%!important;height:auto!important;margin:8px auto 0}.chart-card,.panel-card{break-inside:avoid;border:1px solid #ddd!important;box-shadow:none!important;background:#fff!important;color:#111!important}.page-grid{display:block!important}.page-grid>*{margin-bottom:16px!important}}
.chart-print-img{display:none}

/* v3.3.6 Stabilitätsfix: Bewertungsdetails dürfen nicht aus dem Fenster laufen */
.rating-detail,
.rating-detail .panel-card,
.rating-detail .criteria-card{
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
.rating-detail-rows{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;
}
.rating-detail-rows .criterion-row.read{
  min-width:680px;
}
.criterion-row.read span,
.criterion-row.read em{
  overflow-wrap:anywhere;
  word-break:normal;
}
@media (max-width: 760px){
  .rating-detail-rows .criterion-row.read{min-width:560px;}
}

/* v3.3.9 Layout Polish: Bewertungsdetails als Accordion + farbige Einzelwerte */
.rating-detail{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.rating-detail .criteria-card.rating-accordion{
  width:100%;
  max-width:100%;
  overflow:hidden;
  padding:0;
}
.rating-accordion-summary{
  list-style:none;
  cursor:pointer;
  padding:18px;
  margin:0;
  user-select:none;
}
.rating-accordion-summary::-webkit-details-marker{display:none}
.rating-accordion-summary .rating-area-meta{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
  white-space:nowrap;
}
.rating-accordion-summary .rating-area-meta strong{
  color:var(--accent);
  font-size:15px;
}
.accordion-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:10px;
  border:1px solid var(--line);
  color:var(--muted);
  transition:transform .18s ease, background .18s ease;
}
.rating-accordion:not([open]) .accordion-chevron{transform:rotate(-90deg)}
.rating-accordion[open] .accordion-chevron{background:var(--panel2)}
.rating-accordion-body{
  padding:0 18px 18px;
}
.rating-detail-rows.rating-detail-list{
  width:100%;
  max-width:100%;
  overflow:visible;
  display:grid;
  gap:6px;
  padding-bottom:0;
}
.rating-detail-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-width:0!important;
  width:100%;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel2);
}
.rating-detail-row .rating-criterion{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:normal;
  font-weight:800;
  line-height:1.35;
}
.rating-detail-row em{
  grid-column:1/-1;
  color:var(--muted);
  font-style:normal;
  font-size:13px;
  line-height:1.35;
}
.score-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:30px;
  padding:0 10px;
  border-radius:999px;
  font-size:14px;
  font-weight:1000;
  border:1px solid transparent;
}
.score-pill.score-1{background:rgba(239,68,68,.14);color:#ef4444;border-color:rgba(239,68,68,.34)}
.score-pill.score-2{background:rgba(249,115,22,.14);color:#f97316;border-color:rgba(249,115,22,.34)}
.score-pill.score-3{background:rgba(59,130,246,.14);color:#3b82f6;border-color:rgba(59,130,246,.34)}
.score-pill.score-4{background:rgba(34,197,94,.14);color:#22c55e;border-color:rgba(34,197,94,.34)}
.score-pill.score-5{background:rgba(22,163,74,.20);color:#16a34a;border-color:rgba(22,163,74,.42)}
.rating-detail .criterion-row.read{min-width:0!important}
@media(max-width:760px){
  .rating-accordion-summary{align-items:flex-start;flex-direction:column}
  .rating-accordion-summary .rating-area-meta{margin-left:0;margin-top:10px;width:100%;justify-content:space-between}
  .rating-detail-row{grid-template-columns:1fr auto}
}

/* v3.3.9 corrected: Bewertungsdetails zwingend einspaltig, Accordion bleibt erhalten */
.rating-detail{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:16px !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
}
.rating-detail > .panel-card,
.rating-detail > .detail-nav-inline,
.rating-detail > .criteria-card.rating-accordion{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  flex:0 0 auto !important;
  display:block !important;
  grid-column:1 / -1 !important;
}
.rating-detail > .criteria-card.rating-accordion + .criteria-card.rating-accordion{
  margin-top:0 !important;
}
.rating-detail .rating-accordion-summary{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
}
.rating-detail .rating-accordion-body{
  width:100% !important;
  max-width:100% !important;
}
.rating-detail .rating-detail-rows.rating-detail-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  width:100% !important;
  overflow:visible !important;
}
.rating-detail .rating-detail-row{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
}
@media(max-width:760px){
  .rating-detail .rating-accordion-summary{
    align-items:flex-start !important;
    flex-direction:column !important;
  }
  .rating-detail .rating-accordion-summary .rating-area-meta{
    width:100% !important;
    justify-content:space-between !important;
    margin-left:0 !important;
  }
}

/* v1.1.0 Spielberichte */
.matches-layout, .match-form-stack, .match-detail-stack { display: grid; gap: 18px; }
.match-list .row { grid-template-columns: 120px 1.3fr 2fr 130px; }
.match-result-table, .match-roster-table, .match-events-table { display: grid; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.match-result-head, .match-result-row { display: grid; grid-template-columns: minmax(120px,.8fr) minmax(170px,1.2fr) minmax(170px,1.1fr) 100px 100px 120px 52px; gap: 8px; align-items: center; min-width: 860px; }
.match-result-head span, .match-roster-head span, .match-events-head span { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 800; }
.match-result-row.read { grid-template-columns: minmax(120px,.8fr) minmax(170px,1.2fr) minmax(170px,1.1fr) 100px 100px 120px; }
.match-roster-head, .match-roster-row { display: grid; grid-template-columns: minmax(240px,1.4fr) minmax(120px,.7fr) 92px minmax(220px,1.6fr) 52px; gap: 8px; align-items: center; min-width: 860px; }
.match-roster-row.read { grid-template-columns: minmax(240px,1.4fr) minmax(120px,.7fr) 92px minmax(220px,1.6fr); }
.match-events-head, .match-events-row { display: grid; grid-template-columns: 90px minmax(130px,.8fr) minmax(190px,1fr) minmax(260px,1.8fr) 52px; gap: 8px; align-items: center; min-width: 780px; }
.match-events-row.read { grid-template-columns: 90px minmax(130px,.8fr) minmax(190px,1fr) minmax(260px,1.8fr); }
.match-result-row, .match-roster-row, .match-events-row { padding: 8px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel-soft); }
.roster-player-select { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.result-pill { display: inline-flex; justify-content: center; align-items: center; border-radius: 999px; padding: 6px 10px; font-size: 12px; font-weight: 900; }
.result-win { background: rgba(34,197,94,.16); color: #16a34a; }
.result-draw { background: rgba(245,158,11,.16); color: #d97706; }
.result-loss { background: rgba(239,68,68,.16); color: #dc2626; }
.result-open { background: rgba(148,163,184,.16); color: var(--muted); }
.full-width-label { display: grid; gap: 8px; margin-top: 14px; }
.full-width-label textarea { min-height: 120px; }
.form-actions.left { justify-content: flex-start; }
@media (max-width: 800px) { .match-list .row { grid-template-columns: 1fr; } .roster-player-select { grid-template-columns: 1fr; } }

/* v1.1.1 Spielverlauf pro Spiel */
.match-game-events {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 16px;
  margin: 14px 0;
  background: color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);
}
.match-game-events.read { background: var(--panel); }
.match-game-events-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.match-game-events-head h4 {
  margin: 0;
  font-size: 15px;
  color: var(--text);
}
.match-game-events-head span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}
.event-empty { padding: 10px 12px; }
@media (max-width: 760px) {
  .match-game-events-head { flex-direction: column; align-items: flex-start; }
}


/* v1.1.5 – Statistikkomfort */
.stats-values-card { overflow: hidden; }
.stats-values-head { gap: 16px; align-items: flex-start; }
.stats-values-head > div:first-child { min-width: 220px; }
.stats-table-tools { display: flex; justify-content: flex-end; flex: 1; }
.mini-search { width: min(360px, 100%); display: flex; align-items: center; gap: 8px; background: var(--panel2); border: 1px solid var(--line); border-radius: 14px; padding: 8px 10px; }
.mini-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); font: inherit; }
.mini-search button { width: 26px; height: 26px; border-radius: 9px; border: 1px solid var(--line); background: var(--panel); color: var(--muted); cursor: pointer; font-weight: 900; padding: 0; }
.stats-table.enhanced { overflow-x: auto; padding-bottom: 4px; }
.stats-table.enhanced .head,
.stats-table.enhanced .row { grid-template-columns: 180px repeat(7, minmax(92px, 1fr)) 78px; min-width: 980px; }
.stats-table.enhanced .head { position: sticky; top: 0; z-index: 2; background: var(--panel); padding: 2px 0; }
.stats-table.enhanced .sortable { border: 0; background: transparent; color: var(--muted); font-size: 12px; font-weight: 1000; text-transform: uppercase; letter-spacing: .02em; text-align: left; cursor: pointer; padding: 6px 0; display: inline-flex; align-items: center; gap: 6px; }
.stats-table.enhanced .sortable em { color: var(--brand); font-style: normal; font-size: 11px; opacity: .85; }
.stats-table.enhanced .sortable:hover { color: var(--text); transform: none; }
.stats-table.enhanced .row { width: 100%; text-align: left; color: var(--text); cursor: pointer; transition: .15s transform, .15s border-color, .15s background; }
.stats-table.enhanced .row:hover { transform: translateY(-1px); border-color: rgba(33,208,155,.45); background: linear-gradient(135deg, rgba(33,208,155,.08), var(--panel2)); }
.stats-table.enhanced .sticky-name,
.stats-table.enhanced .th-name { position: sticky; left: 0; z-index: 3; background: inherit; border-radius: 10px 0 0 10px; }
.stats-table.enhanced .head .th-name { background: var(--panel); }
.score-good { color: #12b981 !important; font-weight: 900; }
.score-ok { color: #2f7df6 !important; font-weight: 850; }
.score-watch { color: #f59e0b !important; font-weight: 850; }
.score-risk { color: #ef4444 !important; font-weight: 900; }
.score-empty { color: var(--muted) !important; }
.stats-empty { padding: 16px; border: 1px dashed var(--line); border-radius: 14px; margin-top: 8px; }
@media (max-width: 760px) {
  .stats-values-head { display: grid; }
  .stats-table-tools { justify-content: stretch; }
  .mini-search { width: 100%; }
}


/* v1.1.6 – Einsatzstatistik */
.player-match-stats-card { margin: 16px 0; box-shadow: none; }
.match-stats-table { display: grid; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.match-stats-table .head,
.match-stats-table .row,
.match-stats-head,
.match-stats-row { display: grid; grid-template-columns: 180px repeat(8, minmax(94px, 1fr)); gap: 8px; align-items: center; min-width: 1080px; }
.match-stats-head { color: var(--muted); font-size: 12px; font-weight: 1000; text-transform: uppercase; letter-spacing: .02em; }
.match-stats-row { background: var(--panel2); border: 1px solid var(--line); border-radius: 14px; padding: 11px 12px; }
.match-stats-row b { color: var(--brand); }
.match-stats.enhanced .head,
.match-stats.enhanced .row { grid-template-columns: 180px repeat(8, minmax(94px, 1fr)); min-width: 1080px; }
.match-stats.enhanced .row span,
.match-stats.enhanced .row b { font-variant-numeric: tabular-nums; }
.player-single-stats .match-stats-row { cursor: default; }
.player-single-stats .match-stats-row:hover { transform: none; }
@media (max-width: 760px) {
  .player-match-stats-card { margin: 14px 0; }
}

/* v1.1.7 Saisonübersicht & Entwicklungsbericht */
.season-overview-card { overflow: hidden; }
.season-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.season-kpi-grid article {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 14px;
  background: var(--panel2);
  min-height: 92px;
}
.season-kpi-grid span,
.season-mini-table span { display:block; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.season-kpi-grid strong { display:block; font-size: 25px; letter-spacing: -0.03em; }
.season-kpi-grid em { display:block; color: var(--muted); font-size: 12px; font-style: normal; margin-top: 5px; }
.season-mini-table {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.season-mini-table div {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px 12px;
  background: var(--panel);
}
.season-mini-table b { font-size: 18px; }
.dev-report-card { margin-top: 18px; }
.dev-report-text { display: grid; gap: 10px; }
.dev-report-text p {
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--panel2);
  line-height: 1.45;
}
@media (max-width: 1180px) {
  .season-kpi-grid { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
}
@media (max-width: 760px) {
  .season-kpi-grid, .season-mini-table { grid-template-columns: 1fr; }
}

/* Berichte: alle Einzelbewertungen je Spieler stabil anzeigen */
.report-rating-table{display:grid;gap:8px;margin-top:8px;width:100%}
.report-rating-row{width:100%;display:grid;grid-template-columns:120px minmax(180px,1fr) minmax(120px,.7fr) 76px;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-align:left;color:var(--text)}
button.report-rating-row{cursor:pointer}
button.report-rating-row:hover{background:rgba(33,208,155,.10);border-color:rgba(33,208,155,.35)}
.report-rating-row span,.report-rating-row em{color:var(--muted);font-style:normal}
.report-rating-row b{justify-self:end;color:var(--brand)}
@media(max-width:760px){.report-rating-row{grid-template-columns:1fr}.report-rating-row b{justify-self:start}}


/* Berichte: Einzelbewertungen strikt untereinander */
.reports-layout .report-ratings,
.reports-layout .report-rating-table {
  width: 100% !important;
  max-width: 100% !important;
}
.reports-layout .report-rating-table {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin-top: 10px !important;
  overflow: visible !important;
}
.reports-layout .report-rating-row {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  grid-template-columns: 130px minmax(180px, 1fr) minmax(120px, .8fr) 80px !important;
  gap: 12px !important;
  align-items: center !important;
  white-space: normal !important;
  margin: 0 !important;
}
.reports-layout button.report-rating-row {
  appearance: none;
  border: 1px solid var(--line);
  font: inherit;
}
.reports-layout .report-rating-row strong,
.reports-layout .report-rating-row span,
.reports-layout .report-rating-row em,
.reports-layout .report-rating-row b {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 760px) {
  .reports-layout .report-rating-row {
    grid-template-columns: 1fr !important;
  }
  .reports-layout .report-rating-row b {
    justify-self: start !important;
  }
}

/* Berichte: Print-only-Zeilen im normalen Bericht ausblenden. */
.reports-layout .report-rating-table > .print-only,
.reports-layout .print-only.report-rating-row {
  display: none !important;
}
@media print {
  .reports-layout .report-rating-table > .print-only,
  .reports-layout .print-only.report-rating-row {
    display: grid !important;
  }
}

/* Spielerdokumente */
.player-documents-card { grid-column: 1 / -1; }
.document-upload-box { margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--border); border-radius: 18px; background: var(--soft); }
.document-form { align-items: end; }
.document-list, .document-rights-table { display: grid; gap: .55rem; }
.document-row, .rights-row { display: grid; grid-template-columns: 1.1fr 1.5fr 1.7fr .7fr 1fr 1fr; gap: .75rem; align-items: center; padding: .85rem 1rem; border: 1px solid var(--border); border-radius: 16px; background: var(--surface-2); }
.document-head, .rights-head { font-weight: 800; color: var(--muted); text-transform: uppercase; font-size: .78rem; letter-spacing: .04em; background: transparent; border: 0; padding-bottom: .25rem; }
.rights-row { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
.rights-row label { justify-content: center; display: flex; }
.rights-row input[type="checkbox"] { width: 1.15rem; height: 1.15rem; accent-color: var(--accent); }
.small { font-size: .85rem; }
@media (max-width: 900px) {
  .document-row, .rights-row { grid-template-columns: 1fr; }
  .document-head, .rights-head { display:none; }
}


/* Spielerprofil: Dokumente & Bilder */
.player-documents-card .document-upload-box {
  overflow: visible;
}
.player-documents-card .document-form {
  display: grid;
  grid-template-columns: minmax(220px, 1.15fr) minmax(210px, .95fr) minmax(190px, 1fr) minmax(240px, 1.2fr);
  gap: 14px 16px;
  align-items: end;
}
.player-documents-card .document-form label {
  min-width: 0;
}
.player-documents-card .document-form input,
.player-documents-card .document-form select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
}
.player-documents-card .document-form input[type="file"] {
  min-height: 48px;
  padding: 11px 12px;
}
.player-documents-card .document-upload-box .muted {
  margin-top: 10px;
  line-height: 1.45;
}
@media (max-width: 1180px) {
  .player-documents-card .document-form {
    grid-template-columns: repeat(2, minmax(240px, 1fr));
  }
}
@media (max-width: 680px) {
  .player-documents-card .document-form {
    grid-template-columns: 1fr;
  }
}


/* Spieler-Detail: Potenzialmatrix + Dokumente & Bilder */
.potential-card,
.player-documents-card {
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}
.potential-card *,
.player-documents-card * {
  box-sizing: border-box;
  min-width: 0;
}

/* Potenzialmatrix: keine breiten Zwangsspalten mehr, sondern sichere responsive Tabelle */
.potential-card .potential-table {
  width: 100%;
  max-width: 100%;
  display: grid;
  gap: 10px;
}
.potential-card .potential-row {
  width: 100%;
  max-width: 100%;
  display: grid !important;
  grid-template-columns: minmax(170px, 1.8fr) minmax(88px, .7fr) minmax(140px, 1fr) minmax(140px, 1fr) minmax(80px, .65fr) minmax(110px, auto) !important;
  gap: 10px;
  align-items: center;
}
.potential-card .potential-row strong,
.potential-card .potential-row span,
.potential-card .potential-row b {
  overflow-wrap: anywhere;
}
.potential-card .potential-row select,
.potential-card .potential-row button {
  width: 100%;
  max-width: 100%;
}
.potential-card .potential-legend {
  max-width: 100%;
}

/* Dokumente: Upload-Felder brechen sauber um, statt nach rechts aus der Kachel zu laufen */
.player-documents-card .document-upload-box {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}
.player-documents-card .document-form {
  width: 100%;
  max-width: 100%;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 14px 16px;
  align-items: end;
}
.player-documents-card .document-form label {
  width: 100%;
  max-width: 100%;
}
.player-documents-card .document-form input,
.player-documents-card .document-form select {
  width: 100%;
  max-width: 100%;
}
.player-documents-card .document-form input[type="file"] {
  white-space: normal;
}
.player-documents-card .document-list {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  padding-bottom: 2px;
}
.player-documents-card .document-row {
  min-width: 0;
}
.player-documents-card .document-row span,
.player-documents-card .document-row strong {
  overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
  .potential-card .potential-row,
  .potential-card .potential-row.potential-head {
    grid-template-columns: 1fr !important;
    align-items: stretch;
  }
  .potential-card .potential-row.potential-head {
    display: none !important;
  }
  .potential-card .potential-row {
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--panel2);
  }
  .potential-card .potential-row select,
  .potential-card .potential-row button {
    min-height: 44px;
  }
}

@media (max-width: 680px) {
  .player-documents-card .document-form {
    grid-template-columns: 1fr !important;
  }
  .player-documents-card .document-row,
  .player-documents-card .rights-row {
    grid-template-columns: 1fr !important;
  }
  .player-documents-card .document-head {
    display: none !important;
  }
}

/* Spieler-Detail: Dokumente & Bilder */
.potential-card,
.player-documents-card {
  max-width: 100%;
  overflow: visible;
}

.potential-card .potential-table {
  display: grid;
  gap: 12px;
  width: 100%;
}

.potential-card .potential-head {
  display: none !important;
}

.potential-card .potential-row-card {
  display: grid !important;
  grid-template-columns: minmax(210px, 1.2fr) repeat(4, minmax(130px, 1fr)) auto !important;
  gap: 12px;
  align-items: end;
  width: 100%;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--panel2);
}

.potential-card .potential-area-name {
  align-self: center;
  min-width: 0;
  white-space: normal;
  overflow: visible;
  line-height: 1.25;
}

.potential-card .potential-field {
  display: grid;
  gap: 6px;
  min-width: 0;
  margin: 0;
}

.potential-card .potential-field > span {
  font-size: 11px;
  line-height: 1.2;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: normal;
  overflow: visible;
}

.potential-card .potential-field.readonly > b {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  white-space: normal;
  overflow: visible;
}

.potential-card .potential-field select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  white-space: normal;
}

.potential-card .potential-save {
  min-height: 44px;
  align-self: end;
  white-space: nowrap;
}

.player-documents-card .document-upload-box {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.player-documents-card .document-form {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  width: 100%;
  max-width: 100%;
  align-items: stretch !important;
}

.player-documents-card .document-form label {
  display: grid;
  gap: 7px;
  width: 100%;
  max-width: 100%;
  margin: 0;
}

.player-documents-card .document-form input,
.player-documents-card .document-form select {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  overflow: visible;
  text-overflow: clip;
}

.player-documents-card .document-form input[type="file"] {
  padding-top: 11px;
  white-space: normal;
}

@media (max-width: 1250px) {
  .potential-card .potential-row-card {
    grid-template-columns: 1fr 1fr !important;
    align-items: stretch;
  }
  .potential-card .potential-area-name,
  .potential-card .potential-save {
    grid-column: 1 / -1;
  }
  .potential-card .potential-save {
    justify-self: start;
  }
}

@media (max-width: 720px) {
  .potential-card .potential-row-card {
    grid-template-columns: 1fr !important;
  }
}

/* Potenzialmatrix: vertikale Kartenliste */
.potential-card {
  max-width: 100%;
  overflow: visible;
}

.potential-card .potential-table,
.potential-card .potential-row,
.potential-card .potential-row-card,
.potential-card .potential-head {
  display: none !important;
}

.potential-card .potential-card-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  width: 100%;
  max-width: 100%;
}

.potential-card .potential-area-card {
  width: 100%;
  max-width: 100%;
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--panel2);
  box-sizing: border-box;
  overflow: visible;
}

.potential-card .potential-area-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
}

.potential-card .potential-area-header h4 {
  margin: 0;
  font-size: 15px;
  line-height: 1.3;
  color: var(--text);
  overflow-wrap: anywhere;
}

.potential-card .potential-area-delta {
  flex: 0 0 auto;
  min-width: 54px;
  text-align: center;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--panel);
  font-size: 12px;
  font-weight: 900;
}

.potential-card .potential-area-fields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  max-width: 100%;
}

.potential-card .potential-field {
  display: grid;
  gap: 7px;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.potential-card .potential-field > span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
}

.potential-card .potential-field.readonly > b,
.potential-card .potential-field select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
  box-sizing: border-box;
}

.potential-card .potential-field.readonly > b {
  padding: 0 12px;
  font-size: 14px;
}

.potential-card .potential-field select {
  padding: 0 10px;
  overflow: visible;
  text-overflow: unset;
}

.potential-card .potential-save {
  justify-self: start;
  min-height: 42px;
  min-width: 120px;
  width: auto;
  max-width: 100%;
  white-space: nowrap;
}

.potential-card .gap-high { color: #22c55e; }
.potential-card .gap-mid { color: #f59e0b; }
.potential-card .gap-low { color: #38bdf8; }
.potential-card .gap-risk { color: #ef4444; }
.potential-card .gap-empty { color: var(--muted); }

@media (max-width: 980px) {
  .potential-card .potential-area-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .potential-card .potential-area-header {
    display: grid;
  }
  .potential-card .potential-area-delta {
    justify-self: start;
  }
  .potential-card .potential-area-fields {
    grid-template-columns: 1fr;
  }
  .potential-card .potential-save {
    width: 100%;
  }
}

/* UX Polish: Potenzialmatrix Accordion + kompakte Dokument-Icons */
.potential-card .potential-accordion-list {
  display: grid;
  gap: 10px;
}

.potential-card .potential-accordion-card {
  padding: 0;
  overflow: hidden;
}

.potential-card .potential-accordion-summary {
  cursor: pointer;
  list-style: none;
  padding: 14px 16px;
  align-items: center;
  user-select: none;
}

.potential-card .potential-accordion-summary::-webkit-details-marker {
  display: none;
}

.potential-card .potential-summary-main,
.potential-card .potential-summary-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.potential-card .potential-summary-main {
  flex: 1 1 auto;
}

.potential-card .potential-title {
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.potential-card .potential-chevron::before {
  content: "▶";
  display: inline-block;
  transition: transform .2s ease;
  color: var(--muted);
  font-size: 12px;
}

.potential-card .potential-accordion-card[open] .potential-chevron::before {
  transform: rotate(90deg);
}

.potential-card .potential-mini {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}

.potential-card .potential-accordion-body {
  display: grid;
  gap: 14px;
  padding: 0 16px 16px;
  animation: potentialAccordionIn .18s ease both;
}

@keyframes potentialAccordionIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: none; }
}

.potential-card .potential-accordion-card[open] .potential-accordion-summary {
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
}

.player-documents-card .document-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}

.player-documents-card .doc-icon-btn {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--panel);
  color: var(--text);
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  transition: .16s transform, .16s background, .16s border-color;
}

.player-documents-card .doc-icon-btn:hover {
  transform: translateY(-1px);
  background: var(--panel2);
  border-color: var(--brand);
}

.player-documents-card .doc-icon-btn.danger:hover {
  border-color: var(--danger);
  color: var(--danger);
}

@media (max-width: 620px) {
  .potential-card .potential-accordion-summary {
    display: grid;
    gap: 10px;
  }
  .potential-card .potential-summary-meta {
    justify-content: space-between;
    width: 100%;
  }
}

/* v1.2.1 Erweiterte Saisonübersicht */
.season-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 14px;
  margin-top: 14px;
}
.season-detail-panel {
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 14px;
  background: var(--panel2);
  min-width: 0;
}
.season-detail-panel h4 {
  margin: 0 0 12px;
  font-size: 15px;
  letter-spacing: -0.01em;
}
.table-scroll {
  overflow-x: auto;
  border-radius: 14px;
}
.season-balance-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: 13px;
}
.season-balance-table th,
.season-balance-table td {
  padding: 10px 11px;
  border-bottom: 1px solid var(--border);
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.season-balance-table th:first-child,
.season-balance-table td:first-child { text-align: left; }
.season-balance-table thead th {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.season-balance-table tbody tr:last-child td { border-bottom: 0; }
.placement-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.placement-grid div {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px 12px;
  background: var(--panel);
}
.placement-grid span,
.season-placement-list span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.placement-grid b { font-size: 20px; }
.season-placement-list { display: grid; gap: 8px; margin-top: 12px; }
.season-placement-list div {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--panel);
}
.season-placement-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.season-placement-list b { font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) {
  .season-detail-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .placement-grid { grid-template-columns: 1fr; }
  .season-placement-list div { grid-template-columns: 1fr; gap: 3px; }
}

/* =========================================================
   ovizio 1.3.1 · Red Brand Identity UI Refresh
   Nur UI/Branding: Layout, Logos, Icons, Farben
   Claim: OBSERVE. ANALYZE. DEVELOP.
   ========================================================= */
:root,
.app-shell.dark,
body.dark {
  --ovizio-red: #E63935;
  --ovizio-red-dark: #B91C1C;
  --ovizio-red-soft: rgba(239, 43, 36, .13);
  --ovizio-red-glow: rgba(239, 43, 36, .20);
  --ovizio-ink: #07111f;
  --ovizio-navy: #0b1220;
  --brand: #E63935;
  --brand2: #B91C1C;
  --brand-soft: rgba(239, 43, 36, .13);
  --blue-soft: rgba(239, 43, 36, .08);
  --accent: #E63935;
}
.app-shell.light,
body.light {
  --bg: #f7f8fb;
  --bg2: #f1f4f8;
  --bg3: #eef2f7;
  --panel: rgba(255,255,255,.88);
  --panel2: rgba(255,255,255,.72);
  --panel3: rgba(255,255,255,.96);
  --text: #111827;
  --text-strong: #07111f;
  --muted: #536174;
  --muted2: #7b8798;
  --line: rgba(15,23,42,.095);
  --line-strong: rgba(15,23,42,.16);
  --brand: #E63935;
  --brand2: #B91C1C;
  --brand-soft: rgba(239,43,36,.10);
  --blue-soft: rgba(239,43,36,.055);
  --accent: #E63935;
  --danger: #b91c1c;
  --warn: #f59e0b;
  --ok: #16a34a;
  --shadow: 0 18px 50px rgba(15,23,42,.09);
  --shadow-soft: 0 8px 22px rgba(15,23,42,.065);
  --focus: 0 0 0 4px rgba(239,43,36,.16);
}
.app-shell.dark,
body.dark {
  --bg: #070d16;
  --bg2: #0b1220;
  --bg3: #101a2b;
  --panel: rgba(15,23,42,.78);
  --panel2: rgba(19,29,45,.70);
  --panel3: rgba(29,41,60,.82);
  --text: #f8fafc;
  --text-strong: #ffffff;
  --muted: #a5b4c7;
  --muted2: #748197;
  --line: rgba(226,232,240,.105);
  --line-strong: rgba(226,232,240,.19);
  --shadow: 0 24px 80px rgba(0,0,0,.38);
  --shadow-soft: 0 10px 34px rgba(0,0,0,.24);
  --focus: 0 0 0 4px rgba(239,43,36,.20);
}
html, body { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif !important; }
.app-shell {
  background:
    radial-gradient(circle at 12% -8%, rgba(239,43,36,.13), transparent 28%),
    radial-gradient(circle at 92% 0%, rgba(185,28,28,.10), transparent 30%),
    linear-gradient(180deg, var(--bg), var(--bg2) 60%, var(--bg)) !important;
}
.app-shell.light {
  background:
    radial-gradient(circle at 12% -8%, rgba(239,43,36,.09), transparent 32%),
    radial-gradient(circle at 90% 3%, rgba(185,28,28,.055), transparent 34%),
    linear-gradient(180deg,#fbfcfe 0%,#f4f6fa 48%,#f7f8fb 100%) !important;
}
.sidebar {
  width: 292px;
  padding: 22px 18px;
  backdrop-filter: blur(26px) saturate(1.25);
  -webkit-backdrop-filter: blur(26px) saturate(1.25);
}
.app-shell.light .sidebar,
body.light .sidebar { background: rgba(255,255,255,.72) !important; }
.app-shell.dark .sidebar,
body.dark .sidebar { background: rgba(6,13,24,.74) !important; }
.side-brand { gap: 12px !important; align-items: center !important; padding: 4px 4px 22px !important; }
.side-logo { width: 254px; height: auto; display:block; }
.app-shell.dark .side-logo { filter: brightness(0) invert(1); }
.side-brand > div:last-child { display:none; }
.sidebar nav { gap: 7px !important; }
.sidebar nav button {
  min-height: 46px;
  border-radius: 14px !important;
  padding: 0 12px !important;
  gap: 12px !important;
  font-weight: 760 !important;
  letter-spacing: -.01em;
  transition: background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.sidebar nav button:hover { transform: translateX(2px); }
.sidebar nav button.active,
.sidebar nav button:hover {
  color: var(--brand) !important;
  background: linear-gradient(135deg, rgba(239,43,36,.105), rgba(239,43,36,.045)) !important;
  box-shadow: inset 0 0 0 1px rgba(239,43,36,.12) !important;
}
.nav-icon { width: 22px; height: 22px; display:inline-grid; place-items:center; flex:0 0 22px; color: currentColor; }
.nav-icon svg, .ghost-btn svg, .icon-btn svg, .mode-btn svg { display:block; stroke: currentColor; }
.sidebar kbd { margin-left:auto; opacity:.45; }
.side-footer {
  border-radius: 20px !important;
  padding: 16px !important;
  background: var(--panel) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow-soft) !important;
}
.side-footer::before {
  content:"";
  display:block;
  width: 118px;
  height: 34px;
  background: url('assets/ovizio-logo.svg') left center/contain no-repeat;
  margin-bottom: 10px;
}
.app-shell.dark .side-footer::before { filter: brightness(0) invert(1); }
.side-footer::after {
  content:"OBSERVE. ANALYZE. DEVELOP.";
  display:block;
  margin-top: 8px;
  color: var(--brand);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .11em;
}
.main { margin-left: 292px; }
.topbar {
  min-height: 76px;
  padding: 0 28px !important;
  backdrop-filter: blur(28px) saturate(1.35);
  -webkit-backdrop-filter: blur(28px) saturate(1.35);
}
.app-shell.light .topbar { background: rgba(255,255,255,.70) !important; }
.app-shell.dark .topbar { background: rgba(6,13,24,.70) !important; }
.search-wrap {
  max-width: 360px;
  border-radius: 18px !important;
  padding: 8px 12px !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
.search-wrap span { order:2; margin-left:8px; font-size:11px; opacity:.62; }
.search-wrap::before {
  content:"⌕";
  color: var(--muted);
  font-size: 17px;
  line-height: 1;
  margin-right: 8px;
}
.ghost-btn, .icon-btn, .back-btn {
  border-radius: 14px !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  font-weight: 760 !important;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, color .16s ease;
}
.ghost-btn:hover, .icon-btn:hover, .back-btn:hover { transform: translateY(-1px); border-color: rgba(239,43,36,.28) !important; color: var(--brand) !important; }
.primary-btn {
  border-radius: 14px !important;
  background: linear-gradient(135deg,#ff3b30,#b91c1c) !important;
  color: #fff !important;
  box-shadow: 0 14px 30px rgba(239,43,36,.23) !important;
}
.danger-link { color: var(--brand) !important; }
.content { padding: 32px 36px 40px !important; }
.page-title { margin-bottom: 20px !important; }
.page-title h1 { font-size: clamp(30px, 3vw, 44px) !important; line-height: 1.05 !important; letter-spacing: -.045em !important; }
.page-title p { margin: 4px 0 0 !important; }
.breadcrumbs button:hover:not(:disabled) { color: var(--brand) !important; }
.hero-card, .kpi-grid, .chart-card, .panel-card, .profile-panel, .scale-card, .scale-details, .report-player-block, .size-hint-table, .sub-card, .login-card, .loader-card, .modal, .admin-grid, .player-ratings-card, .potential-card {
  border-radius: 24px !important;
  background: linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, white 8%), var(--panel)) !important;
  border: 1px solid var(--line) !important;
  box-shadow: var(--shadow) !important;
  backdrop-filter: blur(28px) saturate(1.18);
  -webkit-backdrop-filter: blur(28px) saturate(1.18);
}
.app-shell.dark .hero-card, .app-shell.dark .kpi-grid, .app-shell.dark .chart-card, .app-shell.dark .panel-card, .app-shell.dark .profile-panel, .app-shell.dark .scale-card, .app-shell.dark .scale-details, .app-shell.dark .report-player-block, .app-shell.dark .sub-card, .app-shell.dark .login-card, .app-shell.dark .loader-card, .app-shell.dark .modal, .app-shell.dark .admin-grid, .app-shell.dark .player-ratings-card, .app-shell.dark .potential-card {
  background: linear-gradient(180deg, rgba(17,29,47,.82), rgba(12,21,36,.74)) !important;
}
.hero-card {
  background:
    radial-gradient(circle at top right, rgba(239,43,36,.15), transparent 34%),
    linear-gradient(135deg, rgba(239,43,36,.08), rgba(255,255,255,.03)),
    var(--panel) !important;
}
.kpi, .player-card, .rank-list button, .table-like .row, .stats-table .row, .mini-kpis div, .area-list div, .compact-list div, .criteria-row, .area-block, .module-panel, .training-card, .potential-row:not(.potential-head), .search-wrap, .login-form input, input, select, textarea {
  border-radius: 18px !important;
}
.kpi { padding: 18px !important; }
.kpi strong, .hero-score { color: var(--text-strong) !important; }
.kpi:hover, .panel-card:hover, .chart-card:hover, .player-card:hover { border-color: rgba(239,43,36,.22) !important; }
.card-head h3 { letter-spacing: -.02em; }
.hero-score, .stats-table.enhanced .sortable em, .compare-chip b { color: var(--brand) !important; }
.brand-mark, .avatar, .rank-list b {
  background: linear-gradient(135deg, #ff3b30, #b91c1c) !important;
  color: #fff !important;
}
.scale-principle, .potential-help {
  background: linear-gradient(135deg, rgba(239,43,36,.095), rgba(239,43,36,.035)) !important;
  border-color: rgba(239,43,36,.14) !important;
}
.training-tags span {
  color: var(--brand) !important;
  background: rgba(239,43,36,.08) !important;
  border-color: rgba(239,43,36,.18) !important;
}
.stats-table.enhanced .row:hover {
  border-color: rgba(239,43,36,.32) !important;
  background: linear-gradient(135deg, rgba(239,43,36,.06), var(--panel2)) !important;
}
.login-page {
  background:
    radial-gradient(circle at 50% 0%, rgba(239,43,36,.13), transparent 38%),
    linear-gradient(180deg, var(--bg), var(--bg2)) !important;
}
.login-card { width: min(460px, calc(100vw - 28px)) !important; padding: 34px !important; }
.login-logo { width: 185px; height:auto; margin: 0 auto 20px; display:block; }
.app-shell.dark .login-logo { filter: brightness(0) invert(1); }
.login-card h1 { font-size: 15px !important; text-align:center; letter-spacing:.12em !important; color: var(--brand) !important; }
.login-card p { text-align:center; color:var(--muted) !important; }
.ovizio-loader-logo { width: 58px; height:58px; display:block; margin:0 auto 14px; border-radius:16px; box-shadow: 0 18px 34px rgba(239,43,36,.20); }
.loader-ball { display:none !important; }
.chart-card canvas, .profile-panel canvas { filter: saturate(1.04); }
a, .ghost-link, .table-like button, .rank-list button { color: inherit; }
.card-link, .link, .panel-card a, .chart-card a { color: var(--brand) !important; }
.score-good { color: #16a34a !important; }
.score-ok { color: #2563eb !important; }
.score-watch { color: #f59e0b !important; }
.score-risk { color: #ef2b24 !important; }
@media (max-width: 980px) {
  .sidebar { width: 288px; transform: translateX(-100%); }
  .sidebar.open { transform: translateX(0); }
  .main { margin-left: 0 !important; }
  .content { padding: 22px 16px 32px !important; }
  .topbar { padding: 0 14px !important; }
}
@media print {
  .side-footer::before, .side-footer::after, .nav-icon { display:none !important; }
  .hero-card,.kpi-grid,.chart-card,.panel-card,.profile-panel,.report-player-block{box-shadow:none!important;border:1px solid #cbd5e1!important;background:#fff!important;color:#111827!important;backdrop-filter:none!important}
}


/* =========================================================
   ovizio 1.3.3 - Focus Brand Integration
   Nur UI/Branding: Logo, Farben, Claim, Design Tokens
   ========================================================= */
:root {
  --ovizio-observe: #8D96A0;
  --ovizio-analyze: #111111;
  --ovizio-develop: #E63935;
  --ovizio-red: #E63935;
  --brand: #E63935;
  --brand2: #B91C1C;
  --accent: #E63935;
}
.ovizio-claim { font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.ovizio-claim .observe { color: var(--ovizio-observe); }
.ovizio-claim .analyze { color: var(--ovizio-analyze); }
.ovizio-claim .develop { color: var(--ovizio-develop); }
.app-shell.dark .ovizio-claim .analyze { color: #fff; }
.side-logo { width: 142px !important; max-height: 48px; object-fit: contain; }
.login-logo { max-width: 230px; height: auto; }
.ovizio-loader-logo { width: 68px; height: 68px; }
.side-footer::before { background-image: url('assets/ovizio-logo.svg') !important; width: 130px !important; height: 42px !important; }
.side-footer::after {
  color: transparent !important;
  background: linear-gradient(90deg, var(--ovizio-observe) 0 33%, var(--ovizio-analyze) 33% 67%, var(--ovizio-develop) 67% 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.app-shell.dark .side-footer::after {
  background: linear-gradient(90deg, var(--ovizio-observe) 0 33%, #fff 33% 67%, var(--ovizio-develop) 67% 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

/* =========================================================
   ovizio 1.3.5 - Logo sizing and exact claim word colors
   Nur UI/Branding: keine Funktionen, keine Datenbank
   ========================================================= */
.side-brand {
  padding: 8px 4px 34px !important;
  margin-bottom: 18px !important;
}
.side-logo {
  width: 218px !important;
  max-height: none !important;
  height: auto !important;
  object-fit: contain !important;
}
.side-footer {
  padding: 22px 20px !important;
}
.side-footer::before,
.side-footer::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
.side-footer-logo {
  display: block;
  width: 188px;
  max-width: 100%;
  height: auto;
  margin: 0 0 18px;
}
.app-shell.dark .side-logo,
.app-shell.dark .side-footer-logo {
  filter: none !important;
}
.side-footer > span {
  font-size: 15px !important;
  line-height: 1.35 !important;
}
.side-footer > span:first-of-type {
  color: var(--text) !important;
  font-weight: 760 !important;
}
.side-footer-claim {
  margin-top: 16px;
  font-size: 8px;
  line-height: 1.25;
  letter-spacing: .12em;
  font-weight: 300;
  white-space: nowrap;
}
.ovizio-claim .observe { color: var(--ovizio-observe) !important; }
.ovizio-claim .analyze { color: var(--ovizio-analyze) !important; }
.ovizio-claim .develop { color: var(--ovizio-develop) !important; }
.app-shell.dark .ovizio-claim .analyze { color: #ffffff !important; }
.login-logo { max-width: 260px !important; }
@media (max-width: 980px) {
  .side-logo { width: 204px !important; }
  .side-footer-logo { width: 178px; }
}


/* =========================================================
   ovizio 1.3.6 - Dark mode negative logo fix
   Nur Branding/UI: keine Funktionen, keine Datenbank
   ========================================================= */
.logo-dark { display: none !important; }
.logo-light { display: block !important; }
body.dark .logo-light,
.app-shell.dark .logo-light { display: none !important; }
body.dark .logo-dark,
.app-shell.dark .logo-dark { display: block !important; }
body.dark .side-brand .logo-dark,
.app-shell.dark .side-brand .logo-dark,
body.dark .side-footer .logo-dark,
.app-shell.dark .side-footer .logo-dark { filter: none !important; }
body.dark .login-logo.logo-dark,
.app-shell.dark .login-logo.logo-dark { filter: none !important; }

/* ovizio About / Product Dashboard */
.ovizio-page{display:grid;gap:22px}.ovizio-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:28px;align-items:center;padding:34px!important;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,250,252,.82));isolation:isolate}.dark .ovizio-hero{background:linear-gradient(135deg,rgba(17,24,39,.90),rgba(24,32,48,.78))}.ovizio-hero:before{content:"";position:absolute;right:-120px;top:-140px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(230,57,53,.18),transparent 68%);z-index:-1}.ovizio-hero-copy{display:grid;gap:14px;align-content:start}.ovizio-about-logo{width:min(320px,70vw);height:auto}.ovizio-hero h2{margin:0;font-size:clamp(18px,2.1vw,28px);letter-spacing:.13em;font-weight:900;text-transform:uppercase}.ovizio-hero p{max-width:850px;margin:0;color:var(--muted);font-size:17px;line-height:1.7}.ovizio-hero-mark{justify-self:end;width:184px;height:184px;border-radius:42px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);box-shadow:var(--shadow)}.ovizio-hero-mark img{width:118px;height:118px}.ovizio-section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:10px}.ovizio-section-head p{margin:0;color:var(--brand);font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:12px}.ovizio-section-head h2{margin:4px 0 0;font-size:26px}.ovizio-card-grid{display:grid;gap:16px}.ovizio-card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ovizio-info-card,.ovizio-feature-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:22px}.ovizio-info-card{display:grid;gap:10px}.ovizio-info-card h3,.ovizio-feature-card h3{margin:0}.ovizio-info-card strong{font-size:18px}.ovizio-info-card p,.ovizio-feature-card p{margin:0;color:var(--muted);line-height:1.55}.ovizio-dot{width:18px;height:18px;border-radius:999px;display:inline-block}.observe-bg{background:#8d96a0}.analyze-bg{background:#111827}.develop-bg{background:#e63935}.observe{color:#8d96a0}.analyze{color:#111827}.develop{color:#e63935}.dark .analyze{color:#fff}.dark .analyze-bg{background:#fff}.ovizio-feature-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.ovizio-feature-card{display:grid;gap:10px;min-height:178px;position:relative;overflow:hidden}.ovizio-feature-card>span:first-child{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(230,57,53,.10);color:#e63935}.ovizio-feature-card.coming-soon{border-style:dashed}.ovizio-feature-card b{position:absolute;right:14px;top:14px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#e63935;background:rgba(230,57,53,.10);padding:5px 8px;border-radius:999px}.ovizio-release-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ovizio-contact-card{grid-column:1/-1}.release-version{display:grid;gap:4px;margin:8px 0 18px}.release-version strong{font-size:28px}.release-version b{font-size:18px}.release-version em{width:max-content;font-style:normal;color:#e63935;background:rgba(230,57,53,.10);border:1px solid rgba(230,57,53,.22);border-radius:999px;padding:6px 10px;font-weight:900}.ovizio-check-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.ovizio-check-list li{position:relative;padding-left:24px;color:var(--muted)}.ovizio-check-list li:before{content:"✓";position:absolute;left:0;color:#e63935;font-weight:1000}.ovizio-tech-list{display:grid;gap:9px;margin:0}.ovizio-tech-list div{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.ovizio-tech-list dt{color:var(--muted);font-weight:800}.ovizio-tech-list dd{margin:0;font-weight:900}.ovizio-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ovizio-contact-grid>div{background:var(--panel2);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:8px}.ovizio-contact-grid span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:rgba(230,57,53,.10);color:#e63935}.ovizio-contact-grid p{margin:0;color:var(--muted)}.ovizio-about-footer{text-align:center;color:var(--muted);font-size:13px;padding:10px 0 20px}.ovizio-about-footer span{font-size:12px}.ovizio-claim .observe{color:#8d96a0!important}.ovizio-claim .analyze{color:#111827!important}.dark .ovizio-claim .analyze{color:#ffffff!important}.ovizio-claim .develop{color:#e63935!important}
@media(max-width:1180px){.ovizio-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ovizio-card-grid.three{grid-template-columns:1fr}.ovizio-hero{grid-template-columns:1fr}.ovizio-hero-mark{justify-self:start}.ovizio-release-grid{grid-template-columns:1fr}.ovizio-contact-grid{grid-template-columns:1fr}}
@media(max-width:560px){.ovizio-feature-grid{grid-template-columns:1fr}.ovizio-hero{padding:22px!important}.ovizio-hero-mark{width:132px;height:132px;border-radius:30px}.ovizio-hero-mark img{width:88px;height:88px}.ovizio-tech-list div{grid-template-columns:1fr}.ovizio-section-head{display:block}}


/* v1.3.9 · Bewertungslogik: Beobachtung, Kontext, Entwicklungswert */
.rating-system-card{overflow:hidden}
.rating-system-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.rating-system-grid article{position:relative;min-height:150px;padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,var(--panel2),var(--panel));display:flex;flex-direction:column;gap:8px}
.rating-system-grid article b{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:1000}
.rating-system-grid article strong{font-size:18px;color:var(--text-strong)}
.rating-system-grid article span{color:var(--muted);line-height:1.45;font-size:13px}
.calibration-box{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.calibration-box h4{margin:0 0 6px;color:var(--text-strong)}
.calibration-box p{margin:0;color:var(--muted);line-height:1.45;font-size:13px}
.calibration-list{display:grid;gap:8px}
.calibration-list>div:not(.empty-mini){display:grid;grid-template-columns:minmax(120px,1fr) 110px 130px 70px;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}
.calibration-list span,.calibration-list b,.calibration-list em{font-size:12px;color:var(--muted);font-style:normal}
.calibration-list strong{color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calibration-list b{font-weight:900;color:var(--text)}
.calibration-list em{text-align:right;font-variant-numeric:tabular-nums;color:var(--brand)}
.development-score-card{margin:16px 0;box-shadow:none!important}
.dev-score-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(135deg,var(--brand-soft),var(--blue-soft))}
.dev-score-hero span,.dev-score-grid span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.dev-score-hero strong{display:block;font-size:34px;color:var(--text-strong);line-height:1;margin:6px 0}
.dev-score-hero em{display:block;color:var(--muted);font-size:12px;font-style:normal}
.dev-score-hero>b{border-radius:999px;padding:8px 11px;border:1px solid var(--line);background:var(--panel);font-size:12px;color:var(--text);white-space:nowrap}
.dev-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.dev-score-grid div{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}
.dev-score-grid b{display:block;margin-top:4px;font-size:18px;color:var(--text-strong)}
.dev-score-note{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.quality-good{box-shadow:inset 0 0 0 1px rgba(34,197,94,.28)}
.quality-ok{box-shadow:inset 0 0 0 1px rgba(59,130,246,.25)}
.quality-watch{box-shadow:inset 0 0 0 1px rgba(245,158,11,.28)}
.quality-risk{box-shadow:inset 0 0 0 1px rgba(239,68,68,.24)}
.rating-detail-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.rating-detail-meta div{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}
.rating-detail-meta span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rating-detail-meta b{display:block;margin-top:4px;color:var(--text-strong)}
@media(max-width:900px){.rating-system-grid,.calibration-box,.dev-score-grid,.rating-detail-meta{grid-template-columns:1fr}.calibration-list>div:not(.empty-mini){grid-template-columns:1fr}.calibration-list em{text-align:left}.dev-score-hero{align-items:flex-start;flex-direction:column}}

/* v1.3.10 Trainer-Kalibrierung: verständliche Statuslabels */
.calibration-help{margin-top:8px!important;font-size:12px!important;line-height:1.45!important}
.calibration-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;border:1px solid var(--line);background:var(--panel);white-space:nowrap;text-align:center}
.calibration-very-consistent,.calibration-consistent{color:#16a34a!important;background:rgba(22,163,74,.12)!important;border-color:rgba(22,163,74,.28)!important}
.calibration-light-generous,.calibration-light-strict{color:#d97706!important;background:rgba(245,158,11,.13)!important;border-color:rgba(245,158,11,.30)!important}
.calibration-generous,.calibration-strict{color:#dc2626!important;background:rgba(220,38,38,.12)!important;border-color:rgba(220,38,38,.30)!important}
.calibration-building{color:#2563eb!important;background:rgba(37,99,235,.12)!important;border-color:rgba(37,99,235,.28)!important}


/* v1.4.0 · Spieler-Konsens und Bewertungsdifferenzen */
.consensus-box{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.consensus-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.consensus-head h4{margin:0 0 6px;font-size:17px;color:var(--text-strong,var(--text))}
.consensus-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.45;max-width:820px}
.consensus-alerts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:10px;
  margin-bottom:14px;
}
.consensus-alert{
  text-align:left;
  border:1px solid var(--line);
  background:var(--panel2);
  color:var(--text);
  border-radius:16px;
  padding:13px 14px;
  display:grid;
  gap:4px;
  cursor:pointer;
}
.consensus-alert strong{font-size:15px}
.consensus-alert span{color:var(--text);font-size:13px;font-weight:800}
.consensus-alert em{color:var(--muted);font-size:12px;font-style:normal}
.consensus-alert.consensus-large-difference{border-color:rgba(239,68,68,.38);background:linear-gradient(135deg,rgba(239,68,68,.13),var(--panel2))}
.consensus-alert.consensus-different{border-color:rgba(245,158,11,.38);background:linear-gradient(135deg,rgba(245,158,11,.12),var(--panel2))}
.consensus-table{
  display:grid;
  gap:8px;
  overflow-x:auto;
  padding-bottom:4px;
}
.consensus-row{
  display:grid;
  grid-template-columns:minmax(170px,1.3fr) minmax(150px,.9fr) 70px 80px minmax(190px,1.1fr);
  gap:10px;
  align-items:center;
  min-width:760px;
}
.consensus-row-head{
  color:var(--muted);
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:0 12px;
}
.consensus-row-button{
  width:100%;
  text-align:left;
  border:1px solid var(--line);
  background:var(--panel2);
  color:var(--text);
  border-radius:14px;
  padding:11px 12px;
  cursor:pointer;
}
.consensus-row-button:hover{
  border-color:var(--line-strong);
  background:var(--panel3);
}
.consensus-row-button b{
  color:var(--text-strong,var(--text));
  font-variant-numeric:tabular-nums;
}
.consensus-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  font-weight:1000;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  white-space:nowrap;
}
.consensus-status.consensus-very-high{color:#16a34a;background:rgba(34,197,94,.14);border-color:rgba(34,197,94,.32)}
.consensus-status.consensus-high{color:#0284c7;background:rgba(14,165,233,.14);border-color:rgba(14,165,233,.32)}
.consensus-status.consensus-different{color:#d97706;background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.36)}
.consensus-status.consensus-large-difference{color:#dc2626;background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.36)}
.consensus-status.consensus-building{color:var(--muted);background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.25)}
.consensus-trainers{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding-top:4px;
}
.consensus-trainers span{
  display:inline-flex;
  gap:4px;
  align-items:center;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:800;
}
.consensus-trainers i{font-style:normal;opacity:.75}
@media(max-width:760px){
  .consensus-head{display:grid}
  .consensus-row{min-width:700px}
}
@media print{
  .consensus-box{break-inside:avoid}
}


/* =========================================================
   v1.4.1 · ovizio Info-Seite Layout-Fix
   Zweck: verhindert Grid-Vererbung/Überlappungen durch globale
   .panel-card/.wide-Regeln innerhalb des ovizio-Moduls.
   ========================================================= */
.ovizio-page{
  display:flex !important;
  flex-direction:column !important;
  gap:24px !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:visible !important;
}
.ovizio-page,
.ovizio-page *{
  box-sizing:border-box;
}
.ovizio-page > *{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  grid-column:1 / -1 !important;
}
.ovizio-page .panel-card,
.ovizio-page .panel-card.wide,
.ovizio-page .chart-card,
.ovizio-page .chart-card.wide,
.ovizio-page .hero-card,
.ovizio-page .hero-card.wide{
  grid-column:auto !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}
.ovizio-hero{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(150px,220px) !important;
  align-items:center !important;
  gap:32px !important;
  min-height:auto !important;
}
.ovizio-hero-copy,
.ovizio-hero-copy > *,
.ovizio-info-card,
.ovizio-feature-card,
.ovizio-release-card,
.ovizio-tech-card,
.ovizio-contact-card{
  min-width:0 !important;
  max-width:100% !important;
}
.ovizio-about-logo{
  display:block !important;
  max-width:min(360px,100%) !important;
  height:auto !important;
}
.ovizio-hero h2{
  line-height:1.35 !important;
  overflow-wrap:normal !important;
}
.ovizio-hero p,
.ovizio-info-card p,
.ovizio-feature-card p,
.ovizio-contact-grid p{
  overflow-wrap:break-word !important;
}
.ovizio-hero-mark{
  width:184px !important;
  height:184px !important;
  max-width:100% !important;
  justify-self:end !important;
  flex:0 0 auto !important;
}
.ovizio-hero-mark img{
  display:block !important;
  max-width:118px !important;
  max-height:118px !important;
  width:118px !important;
  height:118px !important;
  object-fit:contain !important;
}
.ovizio-card-grid.three{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}
.ovizio-feature-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;
  gap:16px !important;
  align-items:stretch !important;
}
.ovizio-feature-card{
  min-height:0 !important;
  height:auto !important;
}
.ovizio-release-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:16px !important;
  align-items:start !important;
}
.ovizio-release-grid > .panel-card{
  grid-column:auto !important;
  margin:0 !important;
}
.ovizio-release-grid > .ovizio-contact-card{
  grid-column:1 / -1 !important;
}
.ovizio-tech-list{
  width:100% !important;
  max-width:100% !important;
}
.ovizio-tech-list div{
  min-width:0 !important;
  grid-template-columns:minmax(120px,160px) minmax(0,1fr) !important;
}
.ovizio-tech-list dd,
.ovizio-tech-list dt{
  min-width:0 !important;
  overflow-wrap:anywhere !important;
}
.ovizio-contact-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
}
.ovizio-contact-grid > div{
  min-width:0 !important;
}
@media(max-width:1180px){
  .ovizio-hero{
    grid-template-columns:1fr !important;
  }
  .ovizio-hero-mark{
    justify-self:start !important;
  }
  .ovizio-card-grid.three{
    grid-template-columns:1fr !important;
  }
  .ovizio-release-grid{
    grid-template-columns:1fr !important;
  }
  .ovizio-release-grid > .ovizio-contact-card{
    grid-column:auto !important;
  }
  .ovizio-contact-grid{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:560px){
  .ovizio-page{
    gap:18px !important;
  }
  .ovizio-hero{
    padding:22px !important;
    gap:18px !important;
  }
  .ovizio-about-logo{
    max-width:260px !important;
  }
  .ovizio-hero h2{
    font-size:16px !important;
    letter-spacing:.08em !important;
  }
  .ovizio-hero p{
    font-size:15px !important;
    line-height:1.6 !important;
  }
  .ovizio-hero-mark{
    width:132px !important;
    height:132px !important;
    border-radius:30px !important;
  }
  .ovizio-hero-mark img{
    width:86px !important;
    height:86px !important;
  }
  .ovizio-feature-grid{
    grid-template-columns:1fr !important;
  }
  .ovizio-tech-list div{
    grid-template-columns:1fr !important;
  }
}
@media print{
  .ovizio-page{
    display:block !important;
  }
  .ovizio-page > *{
    break-inside:avoid !important;
    margin-bottom:16px !important;
  }
}


/* v1.4.2 · ovizio hero logo display fix
   Prevents light and negative logo variants from being visible at the same time
   inside the ovizio information hero card. */
.ovizio-page .logo-dark,
.ovizio-page img.logo-dark,
.ovizio-page .ovizio-about-logo.logo-dark,
.ovizio-page .ovizio-hero-mark img.logo-dark{
  display:none !important;
}
.ovizio-page .logo-light,
.ovizio-page img.logo-light,
.ovizio-page .ovizio-about-logo.logo-light,
.ovizio-page .ovizio-hero-mark img.logo-light{
  display:block !important;
}
body.dark .ovizio-page .logo-light,
.app-shell.dark .ovizio-page .logo-light,
body.dark .ovizio-page img.logo-light,
.app-shell.dark .ovizio-page img.logo-light,
body.dark .ovizio-page .ovizio-about-logo.logo-light,
.app-shell.dark .ovizio-page .ovizio-about-logo.logo-light,
body.dark .ovizio-page .ovizio-hero-mark img.logo-light,
.app-shell.dark .ovizio-page .ovizio-hero-mark img.logo-light{
  display:none !important;
}
body.dark .ovizio-page .logo-dark,
.app-shell.dark .ovizio-page .logo-dark,
body.dark .ovizio-page img.logo-dark,
.app-shell.dark .ovizio-page img.logo-dark,
body.dark .ovizio-page .ovizio-about-logo.logo-dark,
.app-shell.dark .ovizio-page .ovizio-about-logo.logo-dark,
body.dark .ovizio-page .ovizio-hero-mark img.logo-dark,
.app-shell.dark .ovizio-page .ovizio-hero-mark img.logo-dark{
  display:block !important;
}

/* v1.5.0 · Datenqualität / Vertrauensindex */
.data-quality-summary{position:relative;cursor:help}.data-quality-summary em{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-style:normal;line-height:1.25}.data-quality-panel{margin-top:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--panel2),var(--panel));padding:14px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}.data-quality-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px}.data-quality-head span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.data-quality-head strong{display:block;margin-top:3px;color:var(--text-strong);font-size:16px}.data-quality-head>b{font-size:24px;color:var(--text-strong);line-height:1}.data-quality-bar{height:10px;border-radius:999px;background:rgba(148,163,184,.18);border:1px solid var(--line);overflow:hidden;cursor:help}.data-quality-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--brand2));transition:width .25s ease}.data-quality-factors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.data-quality-factor{border:1px solid var(--line);border-radius:14px;background:var(--panel2);padding:10px;cursor:help;min-width:0}.data-quality-factor span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;line-height:1.25}.data-quality-factor b{display:block;margin:5px 0 3px;color:var(--text-strong);font-size:18px}.data-quality-factor small{display:block;color:var(--muted);font-size:11px;line-height:1.3;overflow-wrap:anywhere}.data-quality-tooltip-hint{margin:10px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.quality-excellent,.quality-good{box-shadow:inset 0 0 0 1px rgba(34,197,94,.30)}.quality-watch{box-shadow:inset 0 0 0 1px rgba(245,158,11,.30)}.quality-limited{box-shadow:inset 0 0 0 1px rgba(249,115,22,.30)}.quality-risk{box-shadow:inset 0 0 0 1px rgba(239,68,68,.28)}.quality-empty{box-shadow:inset 0 0 0 1px rgba(148,163,184,.25)}.quality-excellent .data-quality-bar i,.quality-good .data-quality-bar i{background:linear-gradient(90deg,#16a34a,#22c55e)}.quality-watch .data-quality-bar i{background:linear-gradient(90deg,#d97706,#fbbf24)}.quality-limited .data-quality-bar i{background:linear-gradient(90deg,#ea580c,#fb923c)}.quality-risk .data-quality-bar i{background:linear-gradient(90deg,#dc2626,#f87171)}.quality-empty .data-quality-bar i{background:linear-gradient(90deg,#64748b,#94a3b8)}@media(max-width:1100px){.data-quality-factors{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.data-quality-head{display:block}.data-quality-head>b{display:block;margin-top:8px}.data-quality-factors{grid-template-columns:1fr}}


/* v1.5.1 · Sichtbarkeitsfix ovizio-Seite
   Vue v-show setzt style="display: none;".
   Die ovizio-Layoutregeln nutzten display: flex !important und haben das überschrieben.
   Diese Regel stellt sicher, dass die ovizio-Infoseite ausschließlich im Menüpunkt ovizio sichtbar ist. */
.ovizio-page[style*="display: none"]{
  display:none !important;
}

/* ovizio 2026-07-02 · Dashboard Layout & Usability Patch */
.search-wrap {
  min-width: min(460px, 42vw);
  max-width: 560px !important;
  flex: 1 1 460px;
}
.search-wrap input {
  min-width: 0;
  font-size: 14px;
}
.search-wrap .search-shortcut {
  flex: 0 0 auto;
  white-space: nowrap;
}
.refresh-btn.loading svg {
  animation: spin .85s linear infinite;
}
.refresh-message {
  white-space: nowrap;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.table-scroll {
  overflow-x: visible;
}
.season-balance-table {
  min-width: 0 !important;
  table-layout: fixed;
  font-size: 12px;
}
.season-balance-table th,
.season-balance-table td {
  padding: 8px 6px;
}
.season-balance-table th:first-child,
.season-balance-table td:first-child {
  width: 29%;
  white-space: normal;
}
.season-balance-table th:nth-child(2),
.season-balance-table td:nth-child(2),
.season-balance-table th:nth-child(3),
.season-balance-table td:nth-child(3),
.season-balance-table th:nth-child(4),
.season-balance-table td:nth-child(4),
.season-balance-table th:nth-child(5),
.season-balance-table td:nth-child(5) {
  width: 7%;
}
.season-balance-table th:nth-child(6),
.season-balance-table td:nth-child(6) {
  width: 15%;
}
.season-balance-table th:nth-child(7),
.season-balance-table td:nth-child(7),
.season-balance-table th:nth-child(8),
.season-balance-table td:nth-child(8) {
  width: 14%;
}
.report-link-list button {
  width: 100%;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 9px 11px;
  background: var(--panel);
  color: var(--text);
  cursor: pointer;
  text-align: left;
}
.report-link-list button:hover {
  border-color: rgba(239,43,36,.28);
  background: linear-gradient(135deg, rgba(239,43,36,.07), var(--panel));
}
.report-link-list strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.report-link-list b {
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
@media (max-width: 1180px) {
  .search-wrap { min-width: min(360px, 46vw); flex-basis: 360px; }
  .search-wrap .search-shortcut { display: none; }
}
@media (max-width: 760px) {
  .search-wrap { min-width: 220px; flex-basis: 100%; }
  .season-balance-table,
  .season-balance-table tbody,
  .season-balance-table tr,
  .season-balance-table td { display: block; width: 100% !important; }
  .season-balance-table thead { display: none; }
  .season-balance-table tr { border: 1px solid var(--border); border-radius: 14px; padding: 8px 10px; margin-bottom: 8px; background: var(--panel); }
  .season-balance-table td { border: 0; padding: 4px 0; text-align: left; white-space: normal; }
  .season-balance-table td:nth-child(n+2) { display: inline-block; width: auto !important; margin-right: 12px; }
  .season-balance-table td:nth-child(2)::before { content: "Sp "; color: var(--muted); }
  .season-balance-table td:nth-child(3)::before { content: "S "; color: var(--muted); }
  .season-balance-table td:nth-child(4)::before { content: "U "; color: var(--muted); }
  .season-balance-table td:nth-child(5)::before { content: "N "; color: var(--muted); }
  .season-balance-table td:nth-child(6)::before { content: "Tore "; color: var(--muted); }
  .season-balance-table td:nth-child(7)::before { content: "Punkte/Sp. "; color: var(--muted); }
  .season-balance-table td:nth-child(8)::before { content: "Tore/Sp. "; color: var(--muted); }
  .report-link-list button { grid-template-columns: 1fr; gap: 3px; }
}

/* 2026-07-02 minor Spieler-UX: aktive Kachel, kompakte Details, einklappbare Bereiche */
.player-card.active {
  position: relative;
  border-color: var(--brand) !important;
  background:
    linear-gradient(135deg, rgba(33,208,155,.16), rgba(89,167,255,.10)),
    var(--panel2) !important;
  box-shadow: 0 0 0 2px rgba(33,208,155,.28), 0 16px 34px rgba(0,0,0,.18) !important;
  transform: translateY(-1px);
}
.player-card.active::after {
  content: "Ausgewählt";
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(33,208,155,.16);
  border: 1px solid rgba(33,208,155,.32);
  color: var(--brand);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.app-shell.light .player-card.active {
  background:
    linear-gradient(135deg, rgba(8,127,91,.12), rgba(29,95,191,.08)),
    #fff !important;
  box-shadow: 0 0 0 2px rgba(8,127,91,.20), 0 14px 28px rgba(15,23,42,.12) !important;
}

.ovz-collapse-card {
  overflow: hidden;
}
.ovz-collapse-card > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  min-height: 34px;
}
.ovz-collapse-card > summary::-webkit-details-marker {
  display: none;
}
.ovz-collapse-summary {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding-right: 34px;
}
.ovz-collapse-summary::after {
  content: "";
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  color: var(--muted);
  position: absolute;
  right: 6px;
  top: 50%;
  margin-top: -7px;
  transition: transform .18s ease, color .18s ease;
}
.ovz-collapse-card[open] > .ovz-collapse-summary::after {
  transform: rotate(225deg);
  margin-top: -2px;
  color: var(--brand);
}
.ovz-collapse-title {
  color: var(--text-strong);
  font-weight: 900;
}
.ovz-collapse-meta {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}
.ovz-collapse-card > summary:hover .ovz-collapse-title,
.ovz-collapse-card > summary:hover h3 {
  color: var(--brand) !important;
}

.profile-facts.ovz-profile-facts-collapse {
  display: block;
  margin: 14px 0;
  padding: 12px;
  background: var(--panel2) !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px;
}
.profile-facts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.profile-facts-grid div {
  background: var(--panel) !important;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 11px;
}
.profile-facts-grid span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.profile-facts-grid b {
  display: block;
  margin-top: 4px;
  font-size: 13px;
}

.data-quality-panel.ovz-collapse-card {
  padding: 12px;
}
.data-quality-panel.ovz-collapse-card .data-quality-bar,
.data-quality-panel.ovz-collapse-card .data-quality-factors,
.data-quality-panel.ovz-collapse-card .data-quality-tooltip-hint {
  margin-top: 12px;
}

.player-single-stats.match-stats-table {
  overflow-x: visible !important;
  padding-bottom: 0;
}
.player-single-stats .match-stats-head,
.player-single-stats .match-stats-row {
  grid-template-columns: minmax(120px,1.35fr) repeat(8, minmax(58px, .75fr));
  min-width: 0 !important;
  gap: 6px;
}
.player-single-stats .match-stats-head {
  font-size: 10px;
  letter-spacing: .01em;
}
.player-single-stats .match-stats-row {
  padding: 10px;
}
.player-single-stats .match-stats-row > * {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.player-single-stats .match-stats-row strong {
  font-size: 13px;
}

.player-documents-card.ovz-collapse-card > summary.card-head,
.profile-module.ovz-collapse-card > summary.card-head {
  margin-bottom: 0;
}
.player-documents-card.ovz-collapse-card[open] > summary.card-head,
.profile-module.ovz-collapse-card[open] > summary.card-head {
  margin-bottom: 14px;
}

@media (max-width: 760px) {
  .profile-facts-grid { grid-template-columns: 1fr; }
  .player-card.active::after { position: static; justify-self: start; margin-top: 2px; }
  .ovz-collapse-summary { align-items: flex-start; }
  .ovz-collapse-meta { text-align: left; }
  .player-single-stats .match-stats-head { display: none; }
  .player-single-stats .match-stats-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .player-single-stats .match-stats-row > * {
    display: grid;
    gap: 3px;
    white-space: normal;
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 8px;
  }
  .player-single-stats .match-stats-row > *::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 10px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
  }
}

/* 2026-07-02 patch Spieler-UX Korrektur: kontrolliertes Einklappen per Vue-State statt details/summary */
.ovz-collapse-card > button.ovz-collapse-summary {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  user-select: none;
  min-height: 34px;
}
.ovz-collapse-card.open > .ovz-collapse-summary::after {
  transform: rotate(225deg);
  margin-top: -2px;
  color: var(--brand);
}
.ovz-collapse-card > button.ovz-collapse-summary:hover .ovz-collapse-title,
.ovz-collapse-card > button.ovz-collapse-summary:hover h3 {
  color: var(--brand) !important;
}
.player-documents-card.ovz-collapse-card > button.card-head,
.profile-module.ovz-collapse-card > button.card-head {
  margin-bottom: 0;
}
.player-documents-card.ovz-collapse-card.open > button.card-head,
.profile-module.ovz-collapse-card.open > button.card-head {
  margin-bottom: 14px;
}
.data-quality-panel.ovz-collapse-card .data-quality-head.ovz-collapse-summary {
  padding-right: 34px;
  margin-bottom: 0;
}
.data-quality-panel.ovz-collapse-card.open .data-quality-head.ovz-collapse-summary {
  margin-bottom: 10px;
}
.player-report-radar {
  margin-top: 16px;
  min-height: 320px;
}
.dev-report-card .area-list {
  margin-top: 12px;
}
.ovz-collapse-heading {
  display: grid;
  gap: 3px;
}
.ovz-collapse-heading > span:last-child {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.ovz-collapse-h3 {
  display: block;
  color: var(--text-strong);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.2;
}
.ovz-collapse-card > button.ovz-collapse-summary:hover .ovz-collapse-h3 {
  color: var(--brand) !important;
}
.data-quality-title-wrap {
  display: block;
}
