*{box-sizing:border-box}:root{--bg:#f3f6f9;--surface:#fff;--surface-soft:#f8fafc;--text:#172033;--muted:#64748b;--line:#dfe6ee;--primary:#2455dc;--primary-dark:#173da8;--success:#15803d;--success-bg:#ecfdf3;--warning:#b45309;--danger:#b91c1c;--danger-bg:#fef2f2;--sidebar:#111827;--sidebar-muted:#94a3b8}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit}.auth-page{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(520px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 18px 55px rgba(15,23,42,.13)}.auth-brand{display:flex;gap:16px;align-items:center;margin-bottom:24px}.auth-card h1{margin:0 0 8px}.auth-card p{color:var(--muted)}label{display:block;font-weight:700;margin:16px 0 6px}input,select{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:9px;font-size:15px;background:#fff}button,.button-link{display:inline-block;width:100%;margin-top:20px;padding:13px;border:0;border-radius:9px;background:var(--primary);color:#fff;font-size:15px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer}.notice,.error{padding:13px;border-radius:9px;margin:12px 0}.notice{background:var(--success-bg);color:#166534}.error{background:var(--danger-bg);color:#991b1b}.target-logo{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;border:4px double #fff}.target-logo.large{width:62px;height:62px;font-size:22px}.app-layout{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:var(--sidebar);color:#fff;padding:22px 16px;z-index:40;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand span{color:var(--sidebar-muted);font-size:13px;margin-top:3px}.sidebar-nav{padding-top:18px}.sidebar-nav a{display:flex;align-items:center;gap:12px;min-height:46px;padding:10px 12px;border-radius:10px;color:#e2e8f0;text-decoration:none;margin-bottom:5px}.sidebar-nav a:hover,.sidebar-nav a.active{background:rgba(255,255,255,.11);color:#fff}.sidebar-nav a.active{box-shadow:inset 3px 0 0 #60a5fa}.sidebar-nav a small{margin-left:auto;color:#64748b}.sidebar-nav a.disabled{cursor:default;opacity:.62}.nav-icon{width:22px;text-align:center}.nav-heading{padding:20px 12px 8px;color:var(--sidebar-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.sidebar-overlay{display:none}.main-shell{width:calc(100% - 270px);margin-left:270px;min-height:100vh}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-left,.topbar-user{display:flex;align-items:center;gap:16px}.topbar-title strong,.topbar-title span,.topbar-user-text strong,.topbar-user-text span{display:block}.topbar-title span,.topbar-user-text span{font-size:13px;color:var(--muted);margin-top:3px}.menu-toggle{display:none;width:auto;margin:0;padding:8px 10px;background:transparent;color:var(--text);font-size:22px}.logout-button{padding:9px 13px;border-radius:9px;background:#eef2ff;color:var(--primary-dark);font-weight:700;text-decoration:none}.dashboard-content{padding:28px;max-width:1650px;margin:0 auto}.welcome-panel,.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#fff,#f4f7ff);padding:28px;border:1px solid var(--line);border-radius:18px}.welcome-panel h1,.page-heading h1{margin:0 0 8px;font-size:clamp(28px,4vw,42px)}.welcome-panel p:last-child,.page-heading p:last-child{margin:0;color:var(--muted)}.eyebrow{margin:0 0 8px;color:var(--primary);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.version-badge{min-width:150px;padding:16px;border-radius:14px;background:var(--primary);color:#fff;text-align:center}.version-badge span,.version-badge strong{display:block}.version-badge strong{font-size:28px;margin-top:4px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:20px}.metric-card{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.metric-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#eef2ff;font-size:25px}.metric-card span,.metric-card strong,.metric-card small{display:block}.metric-card span{color:var(--muted);font-size:14px}.metric-card strong{font-size:30px;margin:4px 0}.metric-card small{color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.management-grid{display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);gap:18px;margin-top:20px}.athletes-layout{grid-template-columns:minmax(380px,480px) minmax(0,1fr)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.secondary-button{display:block;text-align:center;margin-top:10px;padding:11px;border-radius:9px;background:#e2e8f0;text-decoration:none;font-weight:700}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.table-toolbar h2{margin:0}.filter-toolbar{align-items:flex-start;flex-direction:column}.filter-form{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px;width:100%}.filter-form button{width:auto;margin:0;padding:10px 14px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.check-card{display:flex;align-items:flex-start;gap:9px;margin:0;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.check-card input{width:auto;margin-top:3px}.check-card span,.check-card strong,.check-card small{display:block}.check-card small{color:var(--muted);margin-top:2px}.profile-preview{display:flex;justify-content:center;margin-bottom:12px}.profile-preview img{width:110px;height:110px;border-radius:50%;object-fit:cover;border:4px solid #eef2ff}.athlete-cards{display:grid;gap:14px}.athlete-card{display:flex;gap:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.athlete-avatar{flex:0 0 auto;width:64px;height:64px;border-radius:50%;overflow:hidden;background:#dbeafe;display:grid;place-items:center;color:var(--primary-dark);font-weight:800;font-size:20px}.athlete-avatar img{width:100%;height:100%;object-fit:cover}.athlete-main{min-width:0;flex:1}.athlete-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.athlete-title h3{margin:0 0 4px}.athlete-title p{margin:0;color:var(--muted);font-size:13px;word-break:break-all}.athlete-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.athlete-details div{background:#fff;padding:9px;border-radius:9px}.athlete-details dt{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:700}.athlete-details dd{margin:4px 0 0}.actions{display:flex;gap:7px;align-items:center}.actions form{margin:0}.small-button{display:inline-block;width:auto;margin:0;padding:8px 10px;border-radius:8px;background:var(--primary);color:#fff;text-decoration:none;border:0;font-weight:700;font-size:13px}.small-button.secondary{background:#e2e8f0;color:var(--text)}.status-pill{display:inline-block;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.status-pill.success{background:var(--success-bg);color:var(--success)}.status-pill.muted{background:#e2e8f0;color:#475569}.panel h2{margin-top:0}@media(max-width:1200px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.management-grid,.athletes-layout{grid-template-columns:1fr}}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s}.main-shell{width:100%;margin-left:0}.menu-toggle{display:block}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:30}.sidebar-open .sidebar-overlay{display:block}.topbar-user-text{display:none}}@media(max-width:760px){.topbar{height:auto;min-height:68px;padding:12px 16px}.dashboard-content{padding:16px}.welcome-panel,.page-heading{align-items:flex-start;flex-direction:column}.version-badge{width:100%}.metric-grid,.form-row,.check-grid,.athlete-details{grid-template-columns:1fr}.filter-form{grid-template-columns:1fr}.athlete-card{align-items:flex-start}.athlete-title{flex-direction:column}.actions{flex-direction:column;align-items:stretch}.small-button{text-align:center}.logout-button{font-size:14px;padding:8px 10px}}
textarea{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:9px;font:inherit}
.compact-table th,.compact-table td{padding:8px 10px;font-size:13px}
.filter-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-form button{width:auto;margin:0}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}

/* LeistungsVisier 4.3.2 – kompaktere Verwaltung */
.sidebar{width:245px;padding:16px 12px}
.main-shell{width:calc(100% - 245px);margin-left:245px}
.sidebar-brand{padding-bottom:16px}
.sidebar-nav{padding-top:12px}
.sidebar-nav a{min-height:40px;padding:8px 10px;margin-bottom:3px;font-size:14px}
.nav-heading{padding:14px 10px 6px;font-size:11px}
@media(max-width:900px){
  .main-shell{width:100%;margin-left:0}
}

textarea{width:100%;padding:12px 13px;border:1px solid #cbd5e1;border-radius:9px;font:inherit}.series-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rating-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.button-link.inline{width:auto;margin:0}.notification-list{display:grid;gap:12px;margin-top:20px}.notification-list .unread{border-left:4px solid var(--primary)}code{background:#eef2ff;padding:2px 5px;border-radius:5px}@media(max-width:700px){.series-grid,.rating-grid{grid-template-columns:repeat(2,1fr)}}


/* LeistungsVisier 5.0 RC1 Fix 2 – Mehrfach-Trainerzuordnung */
.trainer-check-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:8px;
}

.trainer-check-card{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0;
    padding:12px;
    border:1px solid var(--line);
    border-radius:11px;
    background:var(--surface-soft);
    cursor:pointer;
}

.trainer-check-card:hover{
    border-color:var(--primary);
}

.trainer-check-card input{
    width:auto;
    margin-top:3px;
}

.trainer-check-card span,
.trainer-check-card strong,
.trainer-check-card small{
    display:block;
}

.trainer-check-card small{
    margin-top:3px;
    color:var(--muted);
    word-break:break-all;
}

.form-help{
    margin:12px 0 0;
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}

.athlete-selection-form{
    margin-bottom:18px;
}

@media(max-width:700px){
    .trainer-check-grid{
        grid-template-columns:1fr;
    }
}


/* LeistungsVisier 5.0 RC1 Fix 3 – Passwortwerkzeuge */
.password-field{margin-top:16px}
.password-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.password-input-row input{margin:0}
.password-tool-button{width:auto;margin:0;padding:0 14px;border:1px solid var(--line,#cbd5e1);border-radius:9px;background:#eef2ff;color:#1e3a8a;font-weight:700;cursor:pointer}
.password-tool-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.password-tool-row button{width:auto;margin:0}
.password-strength{position:relative;height:28px;margin-top:10px;padding-top:9px;color:var(--muted,#64748b);font-size:12px;font-weight:700}
.password-strength::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:999px;background:#e2e8f0}
.password-strength::after{content:"";position:absolute;left:0;top:0;height:6px;border-radius:999px;background:#ef4444;width:0;transition:width .2s ease,background .2s ease}
.password-strength[data-level="1"]::after{width:16%;background:#ef4444}
.password-strength[data-level="2"]::after{width:32%;background:#f97316}
.password-strength[data-level="3"]::after{width:50%;background:#f59e0b}
.password-strength[data-level="4"]::after{width:68%;background:#eab308}
.password-strength[data-level="5"]::after{width:84%;background:#84cc16}
.password-strength[data-level="6"]::after,.password-strength.valid::after{width:100%;background:#22c55e}
.password-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px;margin:8px 0 0;padding:0;list-style:none;color:#64748b;font-size:12px}
.password-rules li::before{content:"○";display:inline-block;width:18px;color:#94a3b8;font-weight:900}
.password-rules li.valid{color:#166534}
.password-rules li.valid::before{content:"✓";color:#16a34a}
.form-help{display:block;margin-top:7px;color:#64748b;font-size:12px;line-height:1.45}
@media(max-width:600px){
    .password-input-row{grid-template-columns:1fr}
    .password-tool-button{min-height:42px}
    .password-rules{grid-template-columns:1fr}
}


/* LeistungsVisier 5.0 RC1 Fix 4 – dynamische Ergebnis-Erfassung */
[hidden]{display:none!important}
.discipline-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin:18px 0;
}
.discipline-summary>div{
    padding:12px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:11px;
    background:var(--surface-soft,#f8fafc);
}
.discipline-summary span{
    display:block;
    color:var(--muted,#64748b);
    font-size:12px;
    margin-bottom:4px;
}
.discipline-summary strong{
    font-size:20px;
}
.dynamic-series-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:8px;
}
.series-field label{
    display:block;
    margin-bottom:5px;
}
.series-field input{
    width:100%;
}
@media(max-width:800px){
    .discipline-summary{
        grid-template-columns:1fr;
    }
    .dynamic-series-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:520px){
    .dynamic-series-grid{
        grid-template-columns:1fr;
    }
}


/* LeistungsVisier 5.0 RC1 Fix 5 – Landesverbände */
select option[hidden]{display:none}
.organization-note{
    padding:10px 12px;
    margin:8px 0;
    border-radius:9px;
    background:#eef2ff;
    color:#1e3a8a;
    font-size:13px;
}


/* LeistungsVisier 5.0 RC1 Fix 6 – Kaderstatus */
.formula-panel{
    margin-bottom:18px;
}
.formula-display{
    padding:14px;
    border-radius:11px;
    background:#eef2ff;
    color:#1e3a8a;
    font-size:17px;
    font-weight:800;
    line-height:1.6;
}
.squad-badge{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 10px;
    border-radius:999px;
    background:#dcfce7;
    color:#166534;
    font-weight:800;
    font-size:12px;
}
.squad-badge.none{
    background:#e2e8f0;
    color:#475569;
}
.athlete-details dd small{
    display:block;
    margin-top:3px;
    color:var(--muted,#64748b);
}


/* LeistungsVisier 5.0 Professional */
.professional-action-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    margin:18px 0;
}
.professional-action-card{
    display:flex;
    flex-direction:column;
    gap:7px;
    padding:18px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:14px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    box-shadow:0 8px 25px rgba(15,23,42,.05);
}
.professional-action-card:hover{
    transform:translateY(-2px);
    border-color:var(--primary,#2455dc);
}
.professional-action-card strong{
    font-size:18px;
}
.professional-action-card span{
    color:var(--muted,#64748b);
    line-height:1.45;
}
.inline-payment-form{
    display:grid;
    grid-template-columns:140px minmax(120px,1fr) auto;
    gap:6px;
    align-items:center;
}
.form-panel-wide{
    max-width:900px;
}
@media(max-width:900px){
    .professional-action-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .inline-payment-form{
        grid-template-columns:1fr;
    }
}
@media(max-width:560px){
    .professional-action-grid{
        grid-template-columns:1fr;
    }
}

/* Excel Import */
.import-report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.import-report-grid>div{padding:12px;border:1px solid var(--line,#dbe3ec);border-radius:10px;background:#f8fafc}.import-report-grid span,.import-report-grid strong{display:block}.import-report-grid strong{font-size:22px;margin-top:4px}.warning-box{padding:12px;border-radius:10px;background:#fff7ed;color:#9a3412;margin-bottom:14px}.checkbox-line{display:flex;gap:8px;align-items:flex-start;margin:12px 0}.checkbox-line input{width:auto;margin-top:3px}.feature-list{columns:2;line-height:1.8}.danger-button{background:#b91c1c!important}@media(max-width:700px){.import-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-list{columns:1}}


/* LeistungsVisier 5.0 Professional RC3.1 – Athletenbereich */
.athlete-welcome{
    padding:26px 28px;
    margin-bottom:18px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:20px;
    background:#fff;
}
.athlete-welcome h1{
    margin:4px 0 8px;
    font-size:clamp(30px,4vw,52px);
}
.athlete-dashboard-metrics{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-bottom:18px;
}
.athlete-metric-card,
.athlete-quick-entry{
    min-height:132px;
    padding:18px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:16px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.athlete-metric-card:hover,
.athlete-quick-entry:hover{
    transform:translateY(-2px);
    border-color:var(--primary,#2455dc);
}
.athlete-metric-card span{
    color:var(--muted,#64748b);
}
.athlete-metric-card strong{
    margin:4px 0;
    font-size:34px;
}
.athlete-metric-card small,
.athlete-quick-entry small{
    color:var(--muted,#64748b);
}
.athlete-quick-entry{
    background:var(--primary,#2455dc);
    color:#fff;
}
.athlete-quick-entry small{
    color:rgba(255,255,255,.8);
}
.quick-entry-icon{
    font-size:30px;
    line-height:1;
}
.athlete-dashboard-grid{
    display:grid;
    grid-template-columns:minmax(260px,.75fr) minmax(0,1.8fr);
    gap:18px;
}
.athlete-analysis-links{
    display:grid;
    gap:12px;
}
.athlete-analysis-links a{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:4px 10px;
    padding:14px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:12px;
    color:inherit;
    text-decoration:none;
}
.athlete-analysis-links a span{
    grid-row:1/3;
    font-size:25px;
}
.athlete-analysis-links small{
    color:var(--muted,#64748b);
}
.panel-heading-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}
.metric-link-card{
    color:inherit;
    text-decoration:none;
}
.analysis-filter-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(130px,1fr));
    gap:12px;
    align-items:end;
}
.analysis-filter-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}
.analysis-filter-actions>*{
    width:auto;
    margin:0;
}
.analysis-metric-grid{
    display:grid;
    grid-template-columns:repeat(7,minmax(110px,1fr));
    gap:10px;
    margin:14px 0;
}
.analysis-metric-grid article{
    padding:13px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:12px;
    background:#fff;
}
.analysis-metric-grid span{
    display:block;
    color:var(--muted,#64748b);
    font-size:12px;
}
.analysis-metric-grid strong{
    display:block;
    margin-top:4px;
    font-size:22px;
}
.chart-panel{
    margin-bottom:16px;
}
.chart-container{
    position:relative;
    height:330px;
}
.results-filter-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(130px,1fr)) auto;
    gap:12px;
    align-items:end;
}
.danger-button{
    background:#fee2e2!important;
    color:#991b1b!important;
    border-color:#fecaca!important;
}
.form-action-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}
.form-action-row>*{
    width:auto;
    margin:0;
}
@media(max-width:1100px){
    .athlete-dashboard-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .analysis-metric-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
    .analysis-filter-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:800px){
    .athlete-dashboard-grid{
        grid-template-columns:1fr;
    }
    .analysis-metric-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .analysis-filter-grid,
    .results-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:520px){
    .athlete-dashboard-metrics,
    .analysis-metric-grid,
    .analysis-filter-grid,
    .results-filter-grid{
        grid-template-columns:1fr;
    }
    .athlete-welcome{
        padding:20px;
    }
    .panel-heading-row{
        display:block;
    }
}
@media print{
    .sidebar,
    .topbar,
    .analysis-filter-panel,
    .button-link,
    .small-button,
    .actions{
        display:none!important;
    }
    .app-main{
        margin:0!important;
        padding:0!important;
    }
    .panel{
        box-shadow:none!important;
        break-inside:avoid;
    }
}


/* LeistungsVisier 5.0 Professional RC3.2 – Analyseoptimierung */
.analysis-filter-grid{
    grid-template-columns:repeat(3,minmax(170px,1fr));
}
.analysis-results-panel{
    padding-left:20px;
    padding-right:20px;
}
.analysis-results-table-wrap{
    width:100%;
    overflow-x:auto;
}
.analysis-results-table{
    width:100%;
    min-width:1080px;
    table-layout:fixed;
}
.analysis-results-table th,
.analysis-results-table td{
    padding:13px 12px;
    vertical-align:middle;
    white-space:normal;
    word-break:normal;
}
.analysis-results-table th{
    line-height:1.25;
}
.analysis-results-table td.numeric,
.analysis-results-table th.numeric{
    text-align:right;
    white-space:nowrap;
}
.analysis-results-table .col-date{
    width:11%;
}
.analysis-results-table .col-discipline{
    width:13%;
}
.analysis-results-table .col-type{
    width:15%;
}
.analysis-results-table .col-score{
    width:8%;
}
.analysis-results-table .col-average{
    width:8%;
}
.analysis-results-table .col-inner{
    width:10%;
}
.analysis-results-table .col-place{
    width:7%;
}
.analysis-results-table .col-performance{
    width:12%;
}
.analysis-results-table .col-talent{
    width:11%;
}
.analysis-results-table .col-action{
    width:10%;
}
.empty-table-cell{
    padding:28px!important;
    text-align:center;
    color:var(--muted,#64748b);
}
@media(max-width:900px){
    .analysis-filter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:560px){
    .analysis-filter-grid{
        grid-template-columns:1fr;
    }
    .analysis-results-panel{
        padding-left:12px;
        padding-right:12px;
    }
}


/* LeistungsVisier 5.0 Professional RC3.4 – variable Trainingsschüsse */
.training-shot-settings{
    display:grid;
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);
    gap:14px;
    margin:16px 0;
    padding:16px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:13px;
    background:#f8fafc;
}
.training-shot-settings.is-fixed{
    opacity:.78;
}
.training-shot-note{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    padding:12px 14px;
    border-radius:10px;
    background:#eef2ff;
    color:#1e3a8a;
}
.training-shot-note span{
    line-height:1.45;
}
.checkbox-row{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:14px 0 4px;
    font-weight:700;
}
.checkbox-row input{
    width:auto;
    margin-top:3px;
}
.series-field label{
    min-height:38px;
    line-height:1.3;
}
@media(max-width:700px){
    .training-shot-settings{
        grid-template-columns:1fr;
    }
}


/* LeistungsVisier 5.0 Professional RC3.5 – Wertungsarten */
.scoring-mode-fieldset{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:16px 0;
    padding:16px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:13px;
    background:#f8fafc;
}
.scoring-mode-fieldset legend{
    padding:0 6px;
    font-weight:800;
}
.scoring-mode-option{
    display:flex;
    align-items:flex-start;
    gap:9px;
    min-width:220px;
    padding:12px 14px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:10px;
    background:#fff;
    cursor:pointer;
}
.scoring-mode-option:has(input:checked){
    border-color:var(--primary,#2455dc);
    box-shadow:0 0 0 2px rgba(36,85,220,.12);
}
.scoring-mode-option input{
    width:auto;
    margin-top:4px;
}
.scoring-mode-option span{
    display:flex;
    flex-direction:column;
}
.scoring-mode-option small,
.series-max-help{
    color:var(--muted,#64748b);
}
.series-max-help{
    display:block;
    margin-top:5px;
    font-size:12px;
}
.scoring-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:38px;
    padding:4px 8px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
}
.scoring-badge.integer{
    background:#e0f2fe;
    color:#075985;
}
.scoring-badge.decimal{
    background:#ede9fe;
    color:#5b21b6;
}
.analysis-results-table .col-scoring{
    width:8%;
}
@media(max-width:560px){
    .scoring-mode-option{
        width:100%;
        min-width:0;
    }
}


/* LeistungsVisier 5.1.1 – gefilterte Analysekennzahlen */
.analysis-metric-grid-focused{
    grid-template-columns:repeat(4,minmax(150px,1fr));
}
@media(max-width:850px){
    .analysis-metric-grid-focused{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:480px){
    .analysis-metric-grid-focused{
        grid-template-columns:1fr;
    }
}


/* LeistungsVisier 5.1.2 – neutrale Professional-Loginseite */
.login-page-v512{
    min-height:100vh;
    margin:0;
    background:
        radial-gradient(circle at top left, rgba(36,85,220,.11), transparent 35%),
        linear-gradient(145deg,#eef3f8,#f8fafc 55%,#e8eef6);
    color:#10213e;
}
.login-shell-v512{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
}
.login-card-v512{
    width:min(520px,100%);
    padding:34px;
    border:1px solid rgba(148,163,184,.28);
    border-radius:24px;
    background:rgba(255,255,255,.96);
    box-shadow:0 24px 70px rgba(15,23,42,.14);
}
.login-brand-v512{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:16px;
    margin-bottom:28px;
}
.login-logo-image-v512{
    display:block;
    max-width:240px;
    max-height:105px;
    object-fit:contain;
}
.login-logo-fallback-v512{
    position:relative;
    width:92px;
    height:92px;
    border-radius:50%;
    background:#2455dc;
    box-shadow:
        inset 0 0 0 5px #fff,
        0 0 0 2px #2455dc,
        0 12px 30px rgba(36,85,220,.22);
}
.login-logo-ring-v512{
    position:absolute;
    inset:23px;
    border:5px solid #fff;
    border-radius:50%;
}
.login-logo-cross-v512::before,
.login-logo-cross-v512::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    background:#fff;
    transform:translate(-50%,-50%);
    border-radius:999px;
}
.login-logo-cross-v512::before{
    width:44px;
    height:4px;
}
.login-logo-cross-v512::after{
    width:4px;
    height:44px;
}
.login-brand-text-v512 h1{
    margin:0;
    font-size:clamp(32px,6vw,48px);
    line-height:1.05;
    letter-spacing:-.03em;
}
.login-brand-text-v512 p{
    margin:8px 0 0;
    color:#64748b;
    font-size:17px;
}
.login-form-v512{
    display:grid;
    gap:10px;
}
.login-form-v512 label{
    margin-top:8px;
    font-weight:800;
}
.login-form-v512 input{
    width:100%;
    min-height:50px;
    padding:12px 14px;
    border:1px solid #cbd5e1;
    border-radius:11px;
    background:#fff;
    font-size:16px;
}
.login-form-v512 input:focus{
    outline:none;
    border-color:#2455dc;
    box-shadow:0 0 0 3px rgba(36,85,220,.12);
}
.password-field-v512{
    position:relative;
}
.password-field-v512 input{
    padding-right:96px;
}
.password-toggle-v512{
    position:absolute;
    right:7px;
    top:7px;
    width:auto;
    min-height:36px;
    margin:0;
    padding:7px 11px;
    border:0;
    border-radius:8px;
    background:#eef2ff;
    color:#1d4ed8;
    font-size:13px;
    font-weight:800;
}
.login-submit-v512{
    width:100%;
    min-height:50px;
    margin-top:14px;
    border:0;
    border-radius:11px;
    background:#2455dc;
    color:#fff;
    font-size:16px;
    font-weight:800;
}
.login-submit-v512:hover{
    background:#1d4ed8;
}
.login-footer-v512{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:6px 12px;
    margin-top:24px;
    padding-top:18px;
    border-top:1px solid #e2e8f0;
    color:#64748b;
    font-size:13px;
}
@media(max-width:560px){
    .login-shell-v512{padding:14px;}
    .login-card-v512{
        padding:24px 20px;
        border-radius:18px;
    }
    .login-logo-fallback-v512{
        width:78px;
        height:78px;
    }
}


/* LeistungsVisier 5.1.2.2 – Programmlogo und Startseite */
.program-logo-preview{
    display:flex;
    align-items:center;
    gap:16px;
    margin:8px 0 14px;
    padding:14px;
    border:1px solid var(--line,#dbe3ec);
    border-radius:12px;
    background:#f8fafc;
}
.program-logo-preview img{
    width:110px;
    height:80px;
    object-fit:contain;
    border-radius:8px;
    background:#fff;
}
.program-logo-preview div{
    display:flex;
    flex-direction:column;
    gap:4px;
}
.program-logo-preview small{
    color:var(--muted,#64748b);
}
.program-welcome-panel{
    display:flex;
    align-items:center;
    gap:22px;
}
.dashboard-program-logo{
    flex:0 0 auto;
    width:clamp(90px,12vw,160px);
    max-height:120px;
    object-fit:contain;
}
.program-welcome-content{
    flex:1 1 auto;
}
@media(max-width:700px){
    .program-welcome-panel{
        align-items:flex-start;
        flex-direction:column;
    }
    .dashboard-program-logo{
        width:120px;
        max-height:90px;
    }
}


/* LeistungsVisier 5.1.3 – alphabetische Stammdaten */
.master-data-table{
    width:100%;
}
.master-data-table th:first-child{
    width:48%;
}
.master-data-table th:nth-child(2){
    width:16%;
}
.master-data-table th:last-child{
    width:36%;
}
.master-data-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
}
.master-data-actions form{
    margin:0;
}
.master-data-actions .small-button{
    margin:0;
    white-space:nowrap;
}
.master-data-cancel{
    display:inline-block;
    margin-top:10px;
}
@media(max-width:720px){
    .master-data-table{
        min-width:700px;
    }
}
