/* =========================================================
   Alcmaria Victrix - Teammanager
   Huisstijl: rood-wit, dag/nacht thema via CSS variables
   ========================================================= */

:root {
    --av-rood: #c8102e;
    --av-rood-donker: #8f0b20;
    --av-rood-licht: #e8455f;
    --av-wit: #ffffff;
    --av-zwart: #1a1a1a;

    --bg-primary: #f7f7f8;
    --bg-secondary: #ffffff;
    --bg-tertiary: #f0f0f2;
    --text-primary: #1a1a1a;
    --text-secondary: #55565c;
    --border-color: #e2e2e6;
    --accent: var(--av-rood);
    --accent-hover: var(--av-rood-donker);
    --success: #1e9e57;
    --warning: #d99a1b;
    --danger: #c8102e;
    --shadow: 0 2px 8px rgba(0,0,0,0.08);
    --shadow-lg: 0 4px 20px rgba(0,0,0,0.12);
    --veld-groen: #2e8b3d;
    --veld-groen-donker: #256e31;
}

[data-theme="nacht"] {
    --bg-primary: #14151a;
    --bg-secondary: #1e2027;
    --bg-tertiary: #262832;
    --text-primary: #f0f0f2;
    --text-secondary: #a8a9b3;
    --border-color: #33343e;
    --accent: var(--av-rood-licht);
    --accent-hover: var(--av-rood);
    --shadow: 0 2px 8px rgba(0,0,0,0.4);
    --shadow-lg: 0 4px 24px rgba(0,0,0,0.5);
    --veld-groen: #1f5c2a;
    --veld-groen-donker: #163f1d;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    color-adjust: exact;
}

body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: var(--bg-primary);
    color: var(--text-primary);
    transition: background-color 0.25s ease, color 0.25s ease;
    line-height: 1.5;
}

a { color: var(--accent); }
a:visited { color: var(--accent); }
a:hover { color: var(--accent-hover); }

table a,
.card a:not(.btn):not(.btn-secondary):not(.btn-danger) {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.15s ease, color 0.15s ease;
}

table a:hover,
.card a:not(.btn):not(.btn-secondary):not(.btn-danger):hover {
    text-decoration-color: currentColor;
}

a.btn, a.btn:visited, a.btn:hover, a.btn:visited:hover {
    color: var(--av-wit) !important;
}
a.btn-secondary, a.btn-secondary:visited, a.btn-secondary:hover, a.btn-secondary:visited:hover {
    color: var(--text-primary) !important;
}
a.btn-danger, a.btn-danger:visited, a.btn-danger:hover, a.btn-danger:visited:hover {
    color: var(--av-wit) !important;
}

.app-header {
    background: linear-gradient(135deg, var(--av-rood) 0%, var(--av-rood-donker) 100%);
    color: var(--av-wit);
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: var(--shadow);
    position: sticky;
    top: 0;
    z-index: 100;
}

.app-header .logo-groep { display: flex; align-items: center; gap: 12px; }
.app-header .logo-groep img { height: 40px; }
.app-header h1 { font-size: 1.25rem; font-weight: 700; letter-spacing: 0.3px; }
.app-header a { color: var(--av-wit); }

.av-navbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: linear-gradient(135deg, var(--av-rood) 0%, var(--av-rood-donker) 100%);
    box-shadow: var(--shadow);
}
.av-navbar .navbar-brand,
.av-navbar .navbar-nav .nav-link,
.av-navbar .navbar-text { color: var(--av-wit); }
.av-navbar .navbar-brand { font-size: 1.05rem; font-weight: 700; }
.av-navbar .navbar-brand:hover,
.av-navbar .navbar-nav .nav-link:hover,
.av-navbar .navbar-nav .nav-link:focus { color: rgba(255,255,255,0.78); }
.av-navbar .av-navbar-logo { height: 38px; width: auto; }
.av-navbar .navbar-toggler { border-color: rgba(255,255,255,0.55); }
.av-navbar .navbar-toggler:focus { box-shadow: 0 0 0 0.2rem rgba(255,255,255,0.25); }
.av-navbar .dropdown-menu { background: var(--bg-secondary); border-color: var(--border-color); }
.av-navbar .dropdown-item { color: var(--text-primary); }
.av-navbar .dropdown-item:hover,
.av-navbar .dropdown-item:focus { color: var(--text-primary); background: var(--bg-tertiary); }
.av-navbar-account { display: flex; align-items: center; gap: 12px; }
.av-navbar .navbar-text { font-size: 0.85rem; }
.av-navbar .btn-outline-light { color: var(--av-wit); background: transparent; border: 1px solid rgba(255,255,255,0.65); }
.av-navbar .btn-outline-light:hover { color: var(--av-rood-donker); background: var(--av-wit); }

.theme-toggle {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.3);
    color: var(--av-wit);
    border-radius: 20px;
    padding: 6px 14px;
    cursor: pointer;
    font-size: 0.85rem;
    transition: background 0.2s;
}
.theme-toggle:hover { background: rgba(255,255,255,0.28); }

.main-nav {
    display: flex;
    gap: 4px;
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border-color);
    padding: 0 24px;
    align-items: center;
    position: relative;
    overflow: visible;
    flex-wrap: wrap;
}

.main-nav a {
    padding: 12px 16px;
    color: var(--text-secondary);
    text-decoration: none;
    font-weight: 600;
    font-size: 0.9rem;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: color 0.2s, border-color 0.2s;
}

.main-nav a:hover, .main-nav a.actief { color: var(--accent); border-bottom-color: var(--accent); }

.nav-dropdown {
    position: relative;
    display: inline-flex;
}

.nav-dropdown::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 6px;
}

.nav-dropdown-knop {
    background: none;
    border: none;
    padding: 12px 16px;
    color: var(--text-secondary);
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: color 0.2s, border-color 0.2s;
    font-family: inherit;
}

.nav-dropdown-knop:hover,
.nav-dropdown.actief .nav-dropdown-knop {
    color: var(--accent);
    border-bottom-color: var(--accent);
}

.nav-dropdown-pijl {
    font-size: 0.7rem;
    display: inline-block;
    transition: transform 0.15s ease;
}

.nav-dropdown:hover .nav-dropdown-pijl,
.nav-dropdown.actief .nav-dropdown-pijl {
    transform: rotate(180deg);
}

.nav-dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    box-shadow: var(--shadow-lg);
    min-width: 220px;
    z-index: 500;
    overflow: hidden;
    margin-top: 2px;
}

.nav-dropdown:hover .nav-dropdown-menu {
    display: block;
}

.nav-dropdown.actief .nav-dropdown-menu {
    display: block;
}

.nav-dropdown-menu a {
    display: block;
    padding: 10px 16px;
    color: var(--text-primary) !important;
    text-decoration: none;
    font-weight: 500;
    font-size: 0.88rem;
    border-bottom: 1px solid var(--border-color);
}

.nav-dropdown-menu a:last-child { border-bottom: none; }

.nav-dropdown-menu a:hover {
    background: var(--bg-tertiary);
    color: var(--accent) !important;
}

main.container {
    width: 100%;
    max-width: 1760px;
    margin-inline: auto;
    padding: clamp(14px, 2vw, 32px);
}

.card {
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    padding: 20px;
    box-shadow: var(--shadow);
    margin-bottom: 20px;
}

.card h2, .card h3 { color: var(--accent); margin-bottom: 14px; }

.tegel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }

.tegel {
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-left: 5px solid var(--accent);
    border-radius: 10px;
    padding: 18px;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    text-decoration: none;
    color: var(--text-primary);
    display: block;
}

.tegel:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.tegel .tegel-label { font-size: 0.8rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.5px; }
.tegel .tegel-waarde { font-size: 1.8rem; font-weight: 700; color: var(--accent); margin: 6px 0 4px; }
.tegel .tegel-naam { font-size: 0.95rem; font-weight: 600; }
.tegel .tegel-naam a { color: var(--text-primary); text-decoration: underline; }

label { display: block; font-weight: 600; font-size: 0.85rem; margin-bottom: 4px; color: var(--text-secondary); }

input, select, textarea {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 0.95rem;
    margin-bottom: 14px;
    transition: border-color 0.2s;
}

input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); }

button, .btn {
    background: var(--accent);
    color: var(--av-wit);
    border: none;
    border-radius: 8px;
    padding: 10px 18px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background 0.2s;
    display: inline-block;
    text-decoration: none;
}

button:hover, .btn:hover { background: var(--accent-hover); color: var(--av-wit); }

.btn-secondary { background: var(--bg-tertiary); color: var(--text-primary); border: 1px solid var(--border-color); }
.btn-secondary:hover { background: var(--border-color); color: var(--text-primary); }
.btn-danger { background: var(--danger); color: var(--av-wit); }
.btn-danger:hover { background: var(--av-rood-donker); color: var(--av-wit); }

table { width: 100%; border-collapse: collapse; background: var(--bg-secondary); }
th, td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--border-color); font-size: 0.9rem; }
th { background: var(--bg-tertiary); color: var(--text-secondary); font-weight: 700; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.4px; }
.sorteerknop { padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; text-align: left; cursor: pointer; }
.sorteerknop:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
.sorteerpijl { display: inline-block; margin-left: 3px; }
tr:hover td { background: var(--bg-tertiary); }

.status-badge { padding: 3px 10px; border-radius: 12px; font-size: 0.78rem; font-weight: 700; }
.status-aanwezig { background: rgba(30,158,87,0.15); color: var(--success); }
.status-afwezig { background: rgba(200,16,46,0.15); color: var(--danger); }
.status-afgemeld { background: rgba(217,154,27,0.15); color: var(--warning); }

.scout-categorie { margin: 18px 0; border-bottom: 1px solid var(--border-color); }
.scout-categorie > summary {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 50px;
    padding: 8px 12px;
    list-style: none;
    cursor: pointer;
    color: #2458d3;
    background: #e7efff;
    border: 1px solid #c8d8ff;
    border-radius: 3px;
}
.scout-categorie > summary::-webkit-details-marker { display: none; }
.scout-categorie-icoon {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    color: var(--av-wit);
    background: #3166dd;
    font-weight: 800;
}
.scout-categorie-naam { font-weight: 700; }
.scout-aantal-skills { color: var(--text-secondary); font-size: 0.75rem; }
.scout-categorie-pijl { margin-left: auto; font-size: 1.15rem; transition: transform 0.15s ease; }
.scout-categorie:not([open]) .scout-categorie-pijl { transform: rotate(-90deg); }
.scout-categorie-inhoud { padding: 10px 4px 14px; }
.scout-skill { margin-bottom: 13px; }
.scout-skill-kop { display: flex; align-items: center; gap: 6px; min-height: 25px; margin-bottom: 4px; }
.scout-skill-naam { display: inline; margin: 0; color: var(--text-primary); font-size: 0.9rem; }
.scout-info {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: #52627a;
    font-size: 0.9rem;
    cursor: help;
}
.scout-info::after {
    position: absolute;
    z-index: 1100;
    top: calc(100% + 8px);
    left: 0;
    width: max-content;
    max-width: min(280px, calc(100vw - 32px));
    padding: 0.55rem 0.7rem;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.375rem;
    color: #fff;
    background: #20232b;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.24);
    content: attr(data-tooltip);
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s ease;
}
.scout-info:hover::after,
.scout-info:focus::after {
    visibility: visible;
    opacity: 1;
}
.scout-skill-status { margin-left: auto; color: #78869a; font-size: 0.8rem; font-style: italic; }
.scout-score-wissen {
    display: inline;
    padding: 2px 6px;
    color: var(--text-secondary);
    background: transparent;
    font-size: 0.72rem;
}
.scout-score-wissen:hover { color: var(--accent); background: var(--bg-tertiary); }
.scout-score-wissen[hidden] { display: none; }
.scout-score-opties {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 4px;
    width: 100%;
}
.scout-score-opties > .scout-score-keuze {
    position: relative;
    display: block !important;
    width: auto !important;
    min-width: 0;
    margin: 0;
    cursor: pointer;
}
.scout-score-keuze input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
}
.scout-score-keuze > span {
    display: grid;
    place-items: center;
    min-height: 40px;
    border: 1px solid var(--border-color);
    background: var(--bg-secondary);
    color: var(--text-primary);
    font-size: 0.95rem;
    font-weight: 700;
    transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.scout-score-keuze:hover > span { border-color: #8faef3; background: #f2f6ff; }
.scout-score-keuze input:focus-visible + span { outline: 2px solid #3166dd; outline-offset: 2px; }
.scout-score-keuze.niveau-1 input:checked + span { border-color: #f0445e; background: #fff0f2; color: #d92c48; }
.scout-score-keuze.niveau-2 input:checked + span { border-color: #f07845; background: #fff4ed; color: #d95724; }
.scout-score-keuze.niveau-3 input:checked + span { border-color: #ed9a37; background: #fff8e9; color: #b96a08; }
.scout-score-keuze.niveau-4 input:checked + span { border-color: #20a77a; background: #edfaf5; color: #12815d; }
.scout-score-keuze.niveau-5 input:checked + span { border-color: #37a6c2; background: #edfaff; color: #197e9b; }
.scout-notities-blok { margin: 18px 0 10px; }
.scout-notities-blok > label { color: var(--text-primary); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.35px; text-transform: uppercase; }
textarea.scout-notities {
    min-height: 98px;
    margin-bottom: 0;
    resize: vertical;
    background: #f0f6ff;
    border-color: #d5e3f7;
    border-radius: 0;
}
textarea.scout-notities::placeholder { color: #71839d; opacity: 1; }
.scout-notities-weergave { padding: 12px; background: #f0f6ff; border: 1px solid #d5e3f7; white-space: normal; }
.scout-rapport-acties { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.scout-rapport-acties form { display: inline; margin: 0; }
.scout-rapport-acties .btn-secondary,
.scout-rapport-acties .btn-danger,
.scout-rapport-acties button { padding: 5px 9px; font-size: 0.78rem; }
.scout-legenda { margin: 18px 0 8px; padding: 12px; border: 1px solid var(--border-color); background: var(--bg-primary); color: var(--text-secondary); font-size: 0.78rem; }
.scout-legenda-labels { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.scout-legenda-label { padding: 2px 8px; border: 1px solid var(--border-color); border-radius: 14px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; }
.scout-legenda-label.niveau-1 { color: #d92c48; background: #fff0f2; }
.scout-legenda-label.niveau-2 { color: #d95724; background: #fff4ed; }
.scout-legenda-label.niveau-3 { color: #b96a08; background: #fff8e9; }
.scout-legenda-label.niveau-4 { color: #12815d; background: #edfaf5; }
.scout-legenda-label.niveau-5 { color: #197e9b; background: #edfaff; }

.scouting-page .text-secondary { color: var(--text-secondary) !important; }
.scouting-page .form-control,
.scouting-page .form-select { margin-bottom: 0; }
.scouting-player-select { max-width: 360px; }
.scouting-date-field { max-width: 320px; }
.scouting-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.scouting-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.scouting-page .alert { padding: 12px 16px; border-radius: 8px; }
.scouting-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.scouting-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.scouting-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.scouting-report-action {
    padding: 10px 18px;
    font-size: 0.9rem;
    line-height: 1.5;
}
.player-profile-page .card > .scouting-report-action {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    justify-content: center;
}
.scouting-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.scouting-page a.btn-outline-secondary,
.scouting-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
}
.scouting-page a.btn-outline-secondary:hover,
.scouting-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.scouting-page .btn-danger { color: var(--av-wit); border: 1px solid var(--danger); }
.scouting-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.scouting-page .scout-skill-naam { color: var(--text-primary); }
.scouting-page .scout-legenda { border-radius: 8px; }
.scouting-page .scout-notities-weergave {
    color: var(--text-primary);
    background: var(--bg-tertiary);
    border-color: var(--border-color);
    border-radius: 8px;
}
[data-theme="nacht"] .scouting-page .form-control,
[data-theme="nacht"] .scouting-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .scouting-page .form-control:focus,
[data-theme="nacht"] .scouting-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
[data-theme="nacht"] .scouting-page textarea.scout-notities {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .scouting-page textarea.scout-notities::placeholder { color: var(--text-secondary); }
[data-theme="nacht"] .scouting-page .scout-categorie > summary {
    color: #c7d8ff;
    background: #252d40;
    border-color: #394969;
}
.scouting-page .scout-rapport-acties { flex-wrap: wrap; }
.scouting-page .scout-rapport-acties .btn { white-space: nowrap; }
.scouting-page .scout-rapport-acties form { display: inline-flex; }
.scouting-report-modal .modal-content {
    display: flex;
    max-height: calc(100vh - 2rem);
    color: var(--text-primary);
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
}
.scouting-report-modal .modal-content > form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}
.scouting-report-modal .modal-header,
.scouting-report-modal .modal-footer { border-color: var(--border-color); }
.scouting-report-modal .modal-header,
.scouting-report-modal .modal-footer { flex: 0 0 auto; }
.scouting-report-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 1rem 1.25rem;
}
.scouting-report-modal .scouting-modal-legend {
    position: sticky;
    top: -1rem;
    z-index: 5;
    margin: -1rem -1.25rem 1rem;
    padding: 0.75rem 1.25rem;
    border: 0;
    border-bottom: 1px solid var(--border-color);
    background: var(--bg-secondary);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08);
}
.scouting-report-modal .scouting-modal-legend p { margin-bottom: 0; }
.scouting-report-modal .scouting-modal-legend .scout-legenda-labels { margin-top: 0.4rem; }
.scouting-report-modal .btn-close { filter: var(--bs-btn-close-white-filter, none); }
[data-theme="nacht"] .scouting-report-modal .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.scouting-report-modal .form-control {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .scouting-report-modal .form-control {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
.scouting-page .scouting-page-heading,
.scouting-page .scouting-panel-heading,
.scouting-page .scouting-player-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}
.scouting-page .scouting-page-heading { flex-wrap: wrap; }
.scouting-page .scouting-page-heading h2,
.scouting-page .scouting-panel-heading h3 { margin-bottom: 0.25rem; }
.scouting-page .scouting-player-toolbar { align-items: flex-start; flex-wrap: wrap; margin-top: 1.25rem; }
.scouting-page .scouting-player-toolbar > .player-tabs { flex: 1 0 100%; }
.scouting-page .scouting-overview-header { margin: -0.5rem 0 1rem; }
.scouting-page .scouting-last-report {
    margin: 0;
    padding: 0.8rem 1rem;
    color: var(--text-secondary);
    background: var(--bg-secondary);
    border-left: 3px solid #21a4c4;
    font-size: 0.875rem;
}
.scouting-page .scouting-dashboard { margin-bottom: 1rem; }
.scouting-page .scouting-panel { min-width: 0; }
.scouting-page .scouting-panel-heading { align-items: flex-start; margin-bottom: 0.75rem; }
.scouting-page .scouting-average {
    color: #321654;
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}
.scouting-page .scouting-average small { margin-left: 2px; color: var(--text-secondary); font-size: 0.75rem; }
.scouting-gap-positive { color: #008f68 !important; font-weight: 700; }
.scouting-gap-negative { color: #df3150 !important; font-weight: 700; }
.scouting-page .scouting-radar-wrap { position: relative; height: 280px; max-width: 460px; margin: 0 auto 1rem; }
.scouting-page .scouting-category-scores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.scouting-page .scouting-category-score { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.55rem 0.65rem; border: 1px solid var(--border-color); background: var(--bg-tertiary); }
.scouting-page .scouting-category-score strong { font-size: 0.68rem; letter-spacing: 0.03em; }
.scouting-page .scouting-category-score > span { font-size: 1.05rem; font-weight: 800; }
.scouting-page .scouting-category-score small { color: var(--text-secondary); font-size: 0.65rem; font-weight: 400; }
.scouting-page .scouting-category-0 { color: #3166dd; border-color: rgba(49,102,221,.35); background: rgba(49,102,221,.08); }
.scouting-page .scouting-category-1 { color: #8a35e8; border-color: rgba(138,53,232,.35); background: rgba(138,53,232,.08); }
.scouting-page .scouting-category-2 { color: #008f68; border-color: rgba(0,143,104,.35); background: rgba(0,143,104,.08); }
.scouting-page .scouting-category-3 { color: #df5528; border-color: rgba(223,85,40,.35); background: rgba(223,85,40,.08); }
.scouting-page .scouting-info { color: var(--text-secondary); cursor: help; font-size: 0.85rem; }
.scouting-page .position-fit-card {
    position: relative;
    height: 100%;
    min-height: 178px;
    padding: 0.65rem;
    border: 1px solid currentColor;
    text-align: center;
}
.scouting-page .position-fit-keeper { color: #d98700; background: rgba(255,193,7,.08); }
.scouting-page .position-fit-verdediger { color: #168ebd; background: rgba(13,202,240,.08); }
.scouting-page .position-fit-middenvelder { color: #008f68; background: rgba(32,201,151,.08); }
.scouting-page .position-fit-aanvaller { color: #d93d4c; background: rgba(220,53,69,.08); }
.scouting-page .position-fit-ring {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 0.35rem;
    border-radius: 50%;
    background: conic-gradient(currentColor calc(var(--fit-percent) * 1%), var(--border-color) 0);
}
.scouting-page .position-fit-ring span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    color: var(--text-primary);
    background: var(--bg-secondary);
    font-size: 0.82rem;
    font-weight: 800;
}
.scouting-page .position-fit-card h4 { margin: 0; color: inherit; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; }
.scouting-page .position-fit-label { display: block; margin: 0.15rem 0 0.45rem; font-size: 0.68rem; }
.scouting-page .position-fit-card ul { margin: 0; padding: 0; list-style: none; text-align: left; }
.scouting-page .position-fit-card li { display: flex; justify-content: space-between; gap: 0.25rem; color: var(--text-secondary); font-size: 0.65rem; line-height: 1.5; }
.scouting-page .position-fit-card li strong { flex: 0 0 auto; color: var(--text-primary); }
.scouting-page .position-fit-crown { position: absolute; top: 0.3rem; right: 0.4rem; color: #f4a300; font-size: 1rem; }
.scouting-page .scouting-trend-chart { position: relative; height: 280px; }
.scouting-page .scouting-panel .form-select { margin-bottom: 0; }
.scouting-page .scouting-panel .btn {
    padding: 0.375rem 0.75rem;
    border-radius: 0.375rem;
    font-size: 0.9rem;
    font-weight: 500;
}
[data-theme="nacht"] .scouting-page .scouting-average { color: #e5d0ff; }
[data-theme="nacht"] .scouting-page .position-fit-ring span { color: var(--text-primary); background: var(--bg-secondary); }

@media (max-width: 575.98px) {
    .scouting-page .scouting-player-toolbar > .btn { align-self: flex-start; }
    .scouting-page .scouting-radar-wrap,
    .scouting-page .scouting-trend-chart { height: 240px; }
}

.position-ratings-page .text-secondary { color: var(--text-secondary) !important; }
.player-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    width: 100%;
}
.player-tab,
.player-tab:visited {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    max-width: 100%;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--border-color);
    color: var(--text-secondary);
    background: var(--bg-tertiary);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    overflow-wrap: anywhere;
}
.player-tab:hover {
    color: var(--text-primary);
    background: var(--bg-secondary);
}
.player-tab.is-active,
.player-tab.is-active:visited {
    color: var(--av-wit);
    border-color: var(--accent);
    background: var(--accent);
}
.position-ratings-page .card a.player-tab.is-active,
.position-ratings-page .card a.player-tab.is-active:visited,
.position-ratings-page .card a.player-tab.is-active:hover,
.scouting-page .card a.player-tab.is-active,
.scouting-page .card a.player-tab.is-active:visited,
.scouting-page .card a.player-tab.is-active:hover,
.player-profile-page .card a.player-tab.is-active,
.player-profile-page .card a.player-tab.is-active:visited,
.player-profile-page .card a.player-tab.is-active:hover {
    color: var(--av-wit);
    text-decoration: none;
}
.player-tab:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}
.position-ratings-page .player-tabs { margin-top: 1rem; }
.position-ratings-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.position-ratings-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.position-ratings-page .position-ratings-position-column { width: 220px; }
.position-ratings-position-label { color: var(--text-secondary); font-size: 0.8rem; }
.position-ratings-label { display: inline-block; min-width: 130px; }
.position-ratings-page .alert { padding: 12px 16px; border-radius: 8px; }
.position-ratings-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.position-ratings-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.position-ratings-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.position-ratings-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.position-ratings-page a.btn-outline-secondary,
.position-ratings-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    text-decoration: none !important;
    white-space: nowrap;
}
.position-ratings-page a.btn-outline-secondary:hover,
.position-ratings-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.position-ratings-page a.btn-outline-secondary:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--accent) 25%, transparent);
}
[data-theme="nacht"] .position-ratings-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .position-ratings-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.training-registration-page .text-secondary { color: var(--text-secondary) !important; }
.training-registration-page .form-control,
.training-registration-page .form-select { margin-bottom: 0; }
.training-date-select { max-width: 520px; }
.training-date-edit { max-width: 760px; }
.training-registration-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.training-registration-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.training-registration-page .training-checkbox-column { width: 40px; }
.training-registration-page .table > :not(caption) > * > * { vertical-align: middle; }
.training-registration-page .aanwezig-checkbox {
    width: 1.15em;
    height: 1.15em;
    margin: 0;
    cursor: pointer;
}
.training-player-label {
    display: inline;
    margin: 0;
    color: var(--text-primary);
    font-size: 0.95rem;
    cursor: pointer;
}
.training-registration-page .alert { padding: 12px 16px; border-radius: 8px; }
.training-registration-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.training-registration-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.training-registration-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.training-registration-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.training-registration-page .btn-danger { color: var(--av-wit); background: var(--danger); border: 1px solid var(--danger); }
.training-registration-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.training-delete-form { margin-top: 1rem; }
[data-theme="nacht"] .training-registration-page .form-control,
[data-theme="nacht"] .training-registration-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-registration-page .form-control:focus,
[data-theme="nacht"] .training-registration-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
[data-theme="nacht"] .training-registration-page .form-check-input {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-registration-page .form-check-input:checked {
    background-color: var(--accent);
    border-color: var(--accent);
}

.training-stats-page .text-secondary { color: var(--text-secondary) !important; }
.training-stats-period-filter { width: 100%; max-width: 360px; }
.training-stats-page .form-select { margin-bottom: 0; }
.training-stats-page .btn {
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.5;
}
.training-stats-page a.btn-outline-secondary,
.training-stats-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.training-stats-page a.btn-outline-secondary:hover,
.training-stats-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.training-stats-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.training-stats-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
    white-space: nowrap;
}
.training-stats-warning { color: var(--danger); font-weight: 700; }
[data-theme="nacht"] .training-stats-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-stats-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.training-overview-page .text-secondary { color: var(--text-secondary) !important; }
.training-overview-page .form-select { width: auto; margin-bottom: 0; }
.training-overview-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.training-overview-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.training-overview-actions { display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.training-overview-actions form { display: inline-flex; margin: 0; }
.training-overview-page a.btn-outline-secondary,
.training-overview-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.training-overview-page a.btn-outline-secondary:hover,
.training-overview-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.training-overview-page .btn-danger { color: var(--av-wit); background: var(--danger); border: 1px solid var(--danger); }
.training-overview-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.training-overview-page .pagination {
    --bs-pagination-color: var(--accent);
    --bs-pagination-bg: var(--bg-secondary);
    --bs-pagination-border-color: var(--border-color);
    --bs-pagination-hover-color: var(--av-wit);
    --bs-pagination-hover-bg: var(--accent-hover);
    --bs-pagination-hover-border-color: var(--accent-hover);
    --bs-pagination-active-bg: var(--accent);
    --bs-pagination-active-border-color: var(--accent);
    --bs-pagination-disabled-color: var(--text-secondary);
    --bs-pagination-disabled-bg: var(--bg-tertiary);
    --bs-pagination-disabled-border-color: var(--border-color);
}
.training-overview-page .pagination .page-link { text-decoration: none !important; }
[data-theme="nacht"] .training-overview-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-overview-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.training-periods-page .text-secondary { color: var(--text-secondary) !important; }
.training-periods-page .form-control { margin-bottom: 0; }
.training-periods-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.training-periods-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
    white-space: nowrap;
}
.training-period-actions { display: flex; align-items: center; gap: 0.5rem; white-space: nowrap; }
.training-period-actions form { display: inline-flex; margin: 0; }
.training-periods-page a.btn-outline-secondary,
.training-periods-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.training-periods-page a.btn-outline-secondary:hover,
.training-periods-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.training-periods-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.training-periods-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.training-periods-page .btn-danger { color: var(--av-wit); background: var(--danger); border: 1px solid var(--danger); }
.training-periods-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.training-periods-page .alert { padding: 12px 16px; border-radius: 8px; }
.training-periods-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.training-periods-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
[data-theme="nacht"] .training-periods-page .form-control,
[data-theme="nacht"] .training-periods-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-periods-page .form-control:focus,
[data-theme="nacht"] .training-periods-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.lineup-page .text-secondary { color: var(--text-secondary) !important; }
.lineup-page .form-control,
.lineup-page .form-select {
    width: 100%;
    margin-bottom: 0;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    background-color: var(--bg-secondary);
    color: var(--text-primary);
}
.lineup-page .form-control { padding: 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; }
.lineup-page #opstellingNaam { margin-bottom: 1rem; }
.lineup-page .form-select { padding: 0.375rem 2.25rem 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; }
.lineup-page .form-select-sm { padding: 0.25rem 2rem 0.25rem 0.5rem; font-size: 0.875rem; }
.lineup-page .lineup-formation-select { max-width: 320px; }
.lineup-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.lineup-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
    white-space: nowrap;
}
.lineup-page .lineup-position-label { color: var(--text-secondary); font-size: 0.8rem; }
.lineup-page .lineup-bench-card { margin-top: 1rem; padding: 1rem; }
.lineup-page .lineup-bench-card h3 { font-size: 1.1rem; }
.lineup-bench-entry[hidden] { display: none !important; }
.lineup-bench-player {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 0.5rem 0.75rem;
    color: var(--text-primary);
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    font-weight: 600;
}
.lineup-page .alert { padding: 12px 16px; border-radius: 8px; }
.lineup-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.lineup-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.lineup-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.lineup-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.lineup-page a.btn-outline-secondary,
.lineup-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.lineup-page a.btn-outline-secondary:hover,
.lineup-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .lineup-page .form-control,
[data-theme="nacht"] .lineup-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .lineup-page .form-control:focus,
[data-theme="nacht"] .lineup-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
.wastas-page .text-secondary { color: var(--text-secondary) !important; }
.wastas-match-select { max-width: 420px; }
.wastas-page .form-select { margin-bottom: 0; }
.wastas-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.wastas-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.wastas-page .wastas-assignment-card {
    max-width: 320px;
    cursor: default;
}
.wastas-page .wastas-assignment-card:hover { transform: none; }
.wastas-page .wastas-assignment-card .tegel-naam { font-size: 1.3rem; margin-top: 6px; }
.wastas-edit-form { max-width: 760px; margin-top: 1rem; }
.wastas-reset-form { margin-top: 0.75rem; }
.wastas-page .alert { padding: 12px 16px; border-radius: 8px; }
.wastas-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.wastas-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.wastas-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.wastas-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.wastas-page a.btn-outline-secondary,
.wastas-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.wastas-page a.btn-outline-secondary:hover,
.wastas-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .wastas-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .wastas-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.matchday-page .text-secondary { color: var(--text-secondary) !important; }
.matchday-event-select { margin-bottom: 1rem; }
.matchday-page .form-control,
.matchday-page .form-select {
    width: 100%;
    margin-bottom: 0;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    color: var(--text-primary);
    background-color: var(--bg-secondary);
}
.matchday-page .form-control { padding: 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; }
.matchday-page .form-select { padding: 0.375rem 2.25rem 0.375rem 0.75rem; font-size: 1rem; line-height: 1.5; }
.matchday-page .matchday-event-select { max-width: 720px; }
.matchday-klok { border-color: var(--border-color); }
.matchday-page .matchday-stand { color: var(--accent); font-size: clamp(1.25rem, 3vw, 1.8rem); }
.matchday-page .matchday-status { line-height: 1.8; }
.matchday-page .wissel-waarschuwing { border-color: #f0ad4e; }
.matchday-page .badge-waarschuwing { display: inline-block; margin: 0.25rem; padding: 0.25rem 0.6rem; border-radius: 50rem; background: #ffc107; color: #212529; font-size: 0.85rem; font-weight: 700; }
.matchday-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.matchday-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.matchday-page .matchday-tijdlijn { margin: 0; padding: 0; }
.matchday-page .matchday-tijdlijn .list-group-item {
    padding: 0.65rem 0;
    color: var(--text-primary);
    background: transparent;
    border-color: var(--border-color);
}
.matchday-page .btn {
    border-radius: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
.matchday-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.matchday-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.matchday-page .btn-danger { color: var(--av-wit); background: var(--danger); border: 1px solid var(--danger); }
.matchday-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.matchday-page a.btn-outline-secondary,
.matchday-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
    text-decoration: none !important;
}
.matchday-page a.btn-outline-secondary:hover,
.matchday-page a.btn-outline-secondary:visited:hover {
    color: var(--text-primary) !important;
    background: var(--bg-tertiary);
    border-color: var(--border-color);
}
.matchday-page .matchday-finish-form { margin: 0 0 1rem; }
.matchday-page .alert { padding: 12px 16px; border-radius: 8px; }
.matchday-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.matchday-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
[data-theme="nacht"] .matchday-page .form-control,
[data-theme="nacht"] .matchday-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .matchday-page .form-control:focus,
[data-theme="nacht"] .matchday-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}

.aanwezigheid-page .text-secondary { color: var(--text-secondary) !important; }
.aanwezigheid-page .form-control,
.aanwezigheid-page .form-select {
    width: 100%;
    margin-bottom: 0;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    font-size: 1rem;
    line-height: 1.5;
}
.aanwezigheid-page .form-select { padding-right: 2.25rem; }
.aanwezigheid-page .form-check-input {
    width: 1em;
    margin: 0;
    padding: 0;
}
.aanwezigheid-page .form-check-input:checked {
    background-color: var(--accent);
    border-color: var(--accent);
}
.aanwezigheid-page .speler-aanwezig-label {
    display: inline;
    margin: 0;
    color: var(--text-primary);
    font-size: 1rem;
    font-weight: 600;
}
.aanwezigheid-page .vrije-reden { margin-top: 0.375rem; }
.aanwezigheid-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.aanwezigheid-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.aanwezigheid-page .table td { vertical-align: middle; }
.aanwezigheid-page .table td:first-child { width: 3.25rem; }
.aanwezigheid-page .badge.status-badge { padding: 0.35rem 0.65rem; }
.aanwezigheid-page .btn {
    border-radius: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
.aanwezigheid-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.aanwezigheid-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.aanwezigheid-page .btn-danger {
    color: var(--av-wit);
    background: var(--danger);
    border: 1px solid var(--danger);
}
.aanwezigheid-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.aanwezigheid-page .alert { padding: 12px 16px; border-radius: 8px; }
.aanwezigheid-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.aanwezigheid-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
[data-theme="nacht"] .aanwezigheid-page .form-control,
[data-theme="nacht"] .aanwezigheid-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .aanwezigheid-page .form-control:focus,
[data-theme="nacht"] .aanwezigheid-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
[data-theme="nacht"] .aanwezigheid-page .form-check-input {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .aanwezigheid-page .form-check-input:checked {
    background-color: var(--accent);
    border-color: var(--accent);
}

.statistics-page .text-secondary { color: var(--text-secondary) !important; }
.statistics-event-select { max-width: 720px; }
.statistics-page .form-control,
.statistics-page .form-select {
    width: 100%;
    min-width: 4.25rem;
    margin-bottom: 0;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    font-size: 1rem;
    line-height: 1.5;
}
.statistics-page .form-select { padding-right: 2.25rem; }
.statistics-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.statistics-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.statistics-page .statistics-entry-table .form-control {
    min-width: 4.5rem;
    padding: 0.3rem 0.45rem;
}
.statistics-page .statistics-entry-table td:first-child { min-width: 9rem; }
.statistics-page .statistics-entry-table td:last-child .form-control { min-width: 6rem; }
.statistics-chart-panel {
    position: relative;
    height: 260px;
}
.statistics-chart-panel h4 {
    margin-bottom: 0.5rem;
    color: var(--text-secondary);
    font-size: 0.95rem;
    text-align: center;
}
.statistics-page .sorteerknop { color: inherit; }
.statistics-page .sorteerknop:hover { color: var(--accent); background: transparent; }
.statistics-page .alert { padding: 12px 16px; border-radius: 8px; }
.statistics-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.statistics-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.statistics-page .alert-warning { color: #664d03; background: #fff3cd; border: 1px solid #ffecb5; }
.statistics-page .btn {
    border-radius: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
.statistics-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.statistics-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
[data-theme="nacht"] .statistics-page .form-control,
[data-theme="nacht"] .statistics-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .statistics-page .form-control:focus,
[data-theme="nacht"] .statistics-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
[data-theme="nacht"] .statistics-page .alert-warning {
    color: #ffda6a;
    background: #332701;
    border-color: #664d03;
}

.dashboard-page .text-secondary { color: var(--text-secondary) !important; }
.dashboard-tile {
    height: 100%;
    padding: 0;
    border-left: 5px solid var(--accent);
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.dashboard-tile:hover,
.dashboard-tile:focus-visible {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
}
.dashboard-tile:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}
.dashboard-tile .card-body { width: 100%; }
.dashboard-page .tegel-label { color: var(--text-secondary); }
.dashboard-page .tegel-waarde { color: var(--accent); }
.dashboard-page .tegel-naam { color: var(--text-primary); }
.dashboard-page .tegel-naam a { color: var(--text-primary); }
.dashboard-page .btn {
    border-radius: 0.375rem;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
}
.dashboard-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.dashboard-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }

.login-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 1.25rem;
}
.login-card {
    width: 100%;
    max-width: 400px;
}
.login-logo { width: auto; height: 70px; max-width: 100%; object-fit: contain; }
.login-page .form-control {
    width: 100%;
    margin-bottom: 0;
    padding: 0.375rem 0.75rem;
    border: 1px solid var(--border-color);
    border-radius: 0.375rem;
    color: var(--text-primary);
    background: var(--bg-secondary);
    font-size: 1rem;
    line-height: 1.5;
}
.login-page .btn {
    padding: 0.5rem 0.75rem;
    border-radius: 0.375rem;
    font-size: 1rem;
    font-weight: 400;
}
.login-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.login-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.login-page .alert { padding: 0.75rem 1rem; border-radius: 0.5rem; }
.login-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.login-page .login-setup-link { color: var(--text-secondary); }
.login-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
[data-theme="nacht"] .login-page .form-control {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .login-page .form-control:focus {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--accent);
}

.live-match-page { max-width: 720px; margin: 1rem auto; }
.live-match-card { text-align: center; }
.live-match-page .live-match-score {
    margin-bottom: 0.75rem;
    color: var(--accent);
    font-size: clamp(1.25rem, 4vw, 2rem);
}
.live-match-page .live-opponent {
    display: block;
    margin-top: 0.35rem;
    color: var(--text-primary);
    font-size: 0.7em;
}
.live-match-page .live-match-status { color: var(--text-secondary); }
.live-match-page #liveTijdlijn { margin-top: 1.5rem; text-align: left; }
.live-match-page #liveTijdlijn h3 { font-size: 1.2rem; }
.live-match-page .live-timeline { margin: 0; padding: 0; }
.live-match-page .live-timeline .list-group-item {
    padding: 0.65rem 0;
    color: var(--text-primary);
    background: transparent;
    border-color: var(--border-color);
}

.players-page .form-control,
.players-page .form-select { margin-bottom: 0; }
[data-theme="nacht"] .players-page .form-control,
[data-theme="nacht"] .players-page .form-select {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .players-page .form-control:focus,
[data-theme="nacht"] .players-page .form-select:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
.users-admin-page .text-secondary { color: var(--text-secondary) !important; }
.users-admin-page .form-control { margin-bottom: 0; }
.users-admin-page .form-text { color: var(--text-secondary); }
.users-admin-page .user-player-card h4 { color: var(--text-primary); font-size: 1rem; }
.users-admin-page .user-player-card { height: 100%; margin-bottom: 0; }
.users-admin-page .list-group-item {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
.training-exercises-page .text-secondary { color: var(--text-secondary) !important; }
.training-exercises-page .form-control,
.training-exercises-page .form-select,
.training-exercises-page textarea { margin-bottom: 0; }
.training-exercises-page .planned-session > .d-flex > div:first-child { min-width: 0; }
.training-exercises-page .planned-exercises { display: grid; gap: 1rem; }
.training-exercises-page .planned-exercise,
.training-exercises-page .exercise-library-card {
    padding: 1rem;
    border: 1px solid var(--border-color);
    border-radius: 0.75rem;
    background: var(--bg-secondary);
}
.training-exercises-page .planned-exercise { border-left: 5px solid var(--accent); }
.training-exercises-page .planned-exercise-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}
.training-exercises-page .planned-exercise-heading h4,
.training-exercises-page .exercise-library-card h4 {
    margin: 0 0 0.3rem;
    color: var(--text-primary);
    font-size: 1.15rem;
}
.training-exercises-page .planned-exercise-number {
    display: inline-flex;
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: var(--accent);
    font-weight: 800;
}
.training-exercises-page .planned-exercise-duration {
    display: inline-block;
    margin-left: 0.35rem;
    color: var(--text-secondary);
    font-size: 0.85rem;
    font-weight: 700;
}
.training-exercises-page .planned-exercise-actions { display: flex; gap: 0.25rem; }
.training-exercises-page .planned-exercise-actions form { margin: 0; }
.training-exercises-page .exercise-detail { margin: 0.85rem 0; }
.training-exercises-page .exercise-detail h5 {
    margin: 0 0 0.25rem;
    color: var(--text-primary);
    font-size: 0.9rem;
    font-weight: 750;
}
.training-exercises-page .exercise-detail p,
.training-exercises-page .exercise-coaching-points ul { margin: 0; }
.training-exercises-page .exercise-coaching-points ul { padding-left: 1.25rem; }
.training-exercises-page .session-exercise-note {
    margin-top: 0.75rem;
    padding: 0.75rem;
    border-left: 3px solid var(--accent);
    background: var(--bg-tertiary);
}
.training-exercises-page .session-exercise-edit { margin-top: 0.75rem; }
.training-exercises-page .session-exercise-edit summary { cursor: pointer; color: var(--accent); font-weight: 650; }
.training-exercises-page .session-empty-state {
    padding: 1.25rem;
    border: 1px dashed var(--border-color);
    border-radius: 0.5rem;
    color: var(--text-secondary);
    background: var(--bg-tertiary);
}
.training-exercises-page .exercise-library-card { height: 100%; }
.training-exercises-page .exercise-library-card.is-archived { opacity: 0.75; }
.training-exercises-page .exercise-library-card p { overflow-wrap: anywhere; }
.training-exercises-page .exercise-editor {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-color);
}
.training-exercises-page .exercise-editor h4 { color: var(--text-primary); font-size: 1.1rem; }
.training-exercises-page .exercise-editor textarea { min-height: 6rem; }
.training-exercises-page .historical-sessions { margin-bottom: 1.5rem; padding: 1.25rem; }
.training-exercises-page .historical-sessions h3,
.training-exercises-page .historical-session-detail h4 { color: var(--text-primary); font-size: 1.1rem; }
.training-exercises-page .history-session-picker { flex: 0 1 auto; }
.training-exercises-page .history-session-picker .form-select { min-width: min(100%, 18rem); }
.training-exercises-page .historical-session-detail {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-color);
}
.training-exercises-page .historical-exercise-list {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
    padding-left: 1.5rem;
}
.training-exercises-page .historical-exercise-list li { padding-left: 0.25rem; }
.training-exercises-page .historical-exercise-list p { margin-top: 0.5rem; }
.training-exercises-page .historical-session-note {
    padding: 0.65rem;
    border-left: 3px solid var(--accent);
    background: var(--bg-tertiary);
}
.training-exercises-page .copy-session-form { padding-top: 1rem; border-top: 1px solid var(--border-color); }
body.read-only-user form[method="post"] { display: none !important; }
body.read-only-user .training-exercises-page .exercise-editor { display: none; }
.training-exercises-page.is-presentation-mode .planned-session { padding: clamp(1rem, 3vw, 2rem); }
.training-exercises-page.is-presentation-mode .planned-exercise { padding: clamp(1rem, 2vw, 1.5rem); }
.training-exercises-page.is-presentation-mode .planned-exercise-heading h4 { font-size: clamp(1.35rem, 3vw, 2rem); }
.training-exercises-page.is-presentation-mode .exercise-detail { font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
[data-theme="nacht"] .training-exercises-page .form-control,
[data-theme="nacht"] .training-exercises-page .form-select,
[data-theme="nacht"] .training-exercises-page textarea {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .training-exercises-page .form-control:focus,
[data-theme="nacht"] .training-exercises-page .form-select:focus,
[data-theme="nacht"] .training-exercises-page textarea:focus {
    color: var(--text-primary);
    background-color: var(--bg-secondary);
    border-color: var(--accent);
}
[data-theme="nacht"] .users-admin-page .form-control {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--border-color);
}
[data-theme="nacht"] .users-admin-page .form-control:focus {
    color: var(--text-primary);
    background: var(--bg-secondary);
    border-color: var(--accent);
}
.player-profile-page .tegel { cursor: default; }
.player-profile-page .tegel:hover { transform: none; }
.player-profile-page .player-tabs { margin-bottom: 1rem; }
.player-profile-page .profile-absent-excused { color: var(--danger); font-weight: 800; }
.player-profile-page .profile-period-filter { margin: 0.5rem 0; }
.player-profile-page .profile-period-filter .form-select { margin-bottom: 0; }
.player-profile-page .tegel .profile-period-filter { max-width: 100%; }
.player-profile-page .tegel .profile-period-filter .form-select { padding-block: 0.3rem; }
.player-profile-page .profile-scouting-category,
.scouting-page .profile-scouting-category { margin-top: 1.25rem; }
.player-profile-page .profile-scouting-category h4,
.player-profile-page .profile-scouting-notes h4,
.scouting-page .profile-scouting-category h4,
.scouting-page .profile-scouting-notes h4 {
    margin-bottom: 0.65rem;
    color: var(--text-primary);
    font-size: 1rem;
}
.player-profile-page .profile-scouting-category h4,
.scouting-page .profile-scouting-category h4 {
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--border-color);
    font-weight: 700;
}
.player-profile-page .profile-scouting-scores,
.scouting-page .profile-scouting-scores {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: 0.55rem;
    margin: 0;
}
.player-profile-page .profile-scouting-scores > div,
.scouting-page .profile-scouting-scores > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    min-height: 3rem;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--border-color);
    border-left-width: 4px;
    border-radius: 0.45rem;
    background: var(--bg-secondary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.player-profile-page .profile-scouting-scores > div:hover,
.scouting-page .profile-scouting-scores > div:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 9px rgba(0, 0, 0, 0.1);
}
.player-profile-page .profile-scouting-scores dt,
.player-profile-page .profile-scouting-scores dd,
.scouting-page .profile-scouting-scores dt,
.scouting-page .profile-scouting-scores dd { margin: 0; }
.player-profile-page .profile-scouting-scores dt,
.scouting-page .profile-scouting-scores dt { color: var(--text-primary); font-weight: 650; }
.player-profile-page .profile-scouting-scores dd,
.scouting-page .profile-scouting-scores dd { flex: 0 0 auto; text-align: right; }
.player-profile-page .profile-scouting-score-badge,
.scouting-page .profile-scouting-score-badge {
    display: inline-block;
    min-width: 3.4rem;
    padding: 0.2rem 0.5rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 800;
    text-align: center;
}
.player-profile-page .profile-scouting-score.niveau-1,
.scouting-page .profile-scouting-score.niveau-1 { border-left-color: #f0445e; background: #fff0f2; }
.player-profile-page .profile-scouting-score.niveau-1 .profile-scouting-score-badge,
.scouting-page .profile-scouting-score.niveau-1 .profile-scouting-score-badge { color: #d92c48; }
.player-profile-page .profile-scouting-score.niveau-2,
.scouting-page .profile-scouting-score.niveau-2 { border-left-color: #f07845; background: #fff4ed; }
.player-profile-page .profile-scouting-score.niveau-2 .profile-scouting-score-badge,
.scouting-page .profile-scouting-score.niveau-2 .profile-scouting-score-badge { color: #d95724; }
.player-profile-page .profile-scouting-score.niveau-3,
.scouting-page .profile-scouting-score.niveau-3 { border-left-color: #ed9a37; background: #fff8e9; }
.player-profile-page .profile-scouting-score.niveau-3 .profile-scouting-score-badge,
.scouting-page .profile-scouting-score.niveau-3 .profile-scouting-score-badge { color: #b96a08; }
.player-profile-page .profile-scouting-score.niveau-4,
.scouting-page .profile-scouting-score.niveau-4 { border-left-color: #20a77a; background: #edfaf5; }
.player-profile-page .profile-scouting-score.niveau-4 .profile-scouting-score-badge,
.scouting-page .profile-scouting-score.niveau-4 .profile-scouting-score-badge { color: #12815d; }
.player-profile-page .profile-scouting-score.niveau-5,
.scouting-page .profile-scouting-score.niveau-5 { border-left-color: #37a6c2; background: #edfaff; }
.player-profile-page .profile-scouting-score.niveau-5 .profile-scouting-score-badge,
.scouting-page .profile-scouting-score.niveau-5 .profile-scouting-score-badge { color: #197e9b; }
.player-profile-page .profile-scouting-score.niveau-onbekend,
.scouting-page .profile-scouting-score.niveau-onbekend { border-left-color: var(--border-color); background: var(--bg-tertiary); }
.player-profile-page .profile-scouting-score-unrated,
.scouting-page .profile-scouting-score-unrated { color: var(--text-secondary); font-size: 0.8rem; font-weight: 500; }
.player-profile-page .profile-scouting-score-compare,
.scouting-page .profile-scouting-score-compare {
    display: block;
    margin-top: 0.15rem;
    color: var(--text-secondary);
    font-size: 0.7rem;
    white-space: normal;
}
.player-profile-page .profile-scouting-notes,
.scouting-page .profile-scouting-notes {
    margin-top: 1rem;
    padding: 0.75rem;
    border-left: 3px solid var(--accent);
    background: var(--bg-tertiary);
}
.player-profile-page .text-secondary { color: var(--text-secondary) !important; }
.player-profile-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: var(--bg-secondary);
    --bs-table-border-color: var(--border-color);
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-tertiary);
}
.player-profile-page .table > thead > tr > th {
    color: var(--text-secondary);
    background-color: var(--bg-tertiary);
}
.player-profile-page .alert { padding: 12px 16px; border-radius: 8px; }
.player-profile-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.player-profile-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }
.player-profile-page .player-profile-chart { max-width: 600px; margin: 0 auto; width: 100%; }
.players-page .btn-primary {
    color: var(--av-wit);
    background: var(--accent);
    border: 1px solid var(--accent);
}
.players-page .btn-primary:hover { color: var(--av-wit); background: var(--accent-hover); border-color: var(--accent-hover); }
.players-page a.btn-outline-secondary,
.players-page a.btn-outline-secondary:visited {
    color: var(--text-primary) !important;
    background: transparent;
    border: 1px solid var(--border-color);
}
.players-page a.btn-outline-secondary:hover,
.players-page a.btn-outline-secondary:visited:hover { color: var(--text-primary) !important; background: var(--bg-tertiary); border-color: var(--border-color); }
.players-page .btn-danger { color: var(--av-wit); border: 1px solid var(--danger); }
.players-page .btn-danger:hover { color: var(--av-wit); background: var(--av-rood-donker); border-color: var(--av-rood-donker); }
.players-page .btn-sm { padding: 5px 10px; font-size: 0.8rem; }
.players-page .alert { padding: 12px 16px; border-radius: 8px; }
.players-page .alert-success { color: #146c43; background: #d1e7dd; border: 1px solid #a3cfbb; }
.players-page .alert-danger { color: #b02a37; background: #f8d7da; border: 1px solid #f1aeb5; }

.sterren { color: #d1d1d6; font-size: 1.1rem; letter-spacing: 1px; }
.sterren .actief { color: #f5b301; }

.voetbalveld {
    position: relative;
    width: 100%;
    aspect-ratio: 2 / 3;
    max-width: 500px;
    margin: 0 auto;
    border-radius: 10px;
    border: 3px solid var(--av-wit);
    overflow: hidden;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,0.05) 0px,
            rgba(255,255,255,0.05) 40px,
            rgba(0,0,0,0.04) 40px,
            rgba(0,0,0,0.04) 80px
        ),
        linear-gradient(180deg, var(--veld-groen) 0%, var(--veld-groen-donker) 100%);
}

.veld-lijn { position: absolute; border: 2px solid rgba(255,255,255,0.5); }

.veld-buitenrand {
    position: absolute;
    top: 1.5%;
    left: 1.5%;
    width: 97%;
    height: 97%;
    border: 2px solid rgba(255,255,255,0.65);
    pointer-events: none;
}

.veld-hoekschop {
    position: absolute;
    width: 24px;
    height: 24px;
    border: 2px solid rgba(255,255,255,0.65);
    pointer-events: none;
}

.veld-hoekschop-linksboven {
    top: 1.5%;
    left: 1.5%;
    border-top: none;
    border-left: none;
    border-radius: 0 0 100% 0;
}

.veld-hoekschop-rechtsboven {
    top: 1.5%;
    right: 1.5%;
    border-top: none;
    border-right: none;
    border-radius: 0 0 0 100%;
}

.veld-hoekschop-linksonder {
    bottom: 1.5%;
    left: 1.5%;
    border-bottom: none;
    border-left: none;
    border-radius: 0 100% 0 0;
}

.veld-hoekschop-rechtsonder {
    bottom: 1.5%;
    right: 1.5%;
    border-bottom: none;
    border-right: none;
    border-radius: 100% 0 0 0;
}

.veld-middenlijn {
    position: absolute;
    top: 50%;
    left: 3%;
    width: 94%;
    height: 2px;
    background: rgba(255,255,255,0.65);
    transform: translateY(-50%);
}

.veld-middencirkel {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 28%;
    aspect-ratio: 1 / 1;
    border: 2px solid rgba(255,255,255,0.65);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.veld-middenstip {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    background: rgba(255,255,255,0.75);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.veld-strafschopgebied {
    position: absolute;
    left: 22%;
    width: 56%;
    height: 15%;
    border: 2px solid rgba(255,255,255,0.65);
}

.veld-strafschopgebied-onder {
    bottom: 1.5%;
}

.veld-strafschopgebied-boven {
    top: 1.5%;
    transform: rotate(180deg);
}

.veld-doelgebied {
    position: absolute;
    left: 37%;
    width: 26%;
    height: 6%;
    border: 2px solid rgba(255,255,255,0.65);
}

.veld-doelgebied-onder {
    bottom: 1.5%;
}

.veld-doelgebied-boven {
    top: 1.5%;
    transform: rotate(180deg);
}

.veld-strafschopstip {
    position: absolute;
    left: 50%;
    width: 6px;
    height: 6px;
    background: rgba(255,255,255,0.75);
    border-radius: 50%;
    transform: translateX(-50%);
}

.veld-strafschopstip-onder { bottom: 13%; }
.veld-strafschopstip-boven { top: 13%; }

.speler-slot {
    position: absolute;
    width: 56px;
    height: 56px;
    transform: translate(-50%, -50%);
    background: var(--av-wit);
    border: 3px solid var(--accent);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.75rem;
    color: var(--av-zwart);
    box-shadow: var(--shadow);
    text-align: center;
    line-height: 1.1;
    padding: 2px;
    z-index: 5;
}

.speler-slot.leeg { background: rgba(255,255,255,0.25); border-style: dashed; color: var(--av-wit); }

.zone-links { text-align: left; }
.zone-centraal { text-align: center; }
.zone-rechts { text-align: right; }

/* ---------- Print: 1 pagina, printWeergave zichtbaar maken, wisselbank onderaan ---------- */
@page {
    size: A4 portrait;
    margin: 8mm;
}

/* BELANGRIJKE FIX: deze regel ontbrak in de vorige versie, waardoor #printWeergave
   (dat standaard display:none heeft als inline-style in de HTML) bij het printen
   NOOIT zichtbaar werd. Het scherm-gedeelte werd wel verborgen via .no-print, maar
   de vervangende printweergave verscheen dus ook niet -> volledig lege pagina. */
@media print {
    html,
    body {
        width: 100%;
        min-height: 0;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #000 !important;
    }

    .av-navbar,
    .app-header,
    .main-nav,
    nav,
    footer,
    .no-print {
        display: none !important;
    }

    body > main.container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .card {
        box-shadow: none;
        border: 1px solid #ccc;
    }

    #printWeergave {
        display: block !important;
        width: 100%;
        margin: 0 auto;
        color: #000;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    #printWeergave h2 {
        font-size: 14pt;
        margin: 0 0 6mm !important;
    }

    #printWeergave .voetbalveld {
        width: 100%;
        max-width: 105mm;
        max-height: 165mm;
        aspect-ratio: 2 / 3;
        margin: 0 auto;
    }

    #printWisselbank {
        margin-top: 10px;
        text-align: center;
    }

    #printWisselbank h3 {
        font-size: 0.9rem;
        margin-bottom: 6px;
        color: black;
    }

    #printWisselbank .print-wissel-lijst {
        font-size: 0.85rem;
        color: black;
    }

    /* Nieuw: wastas-speler tonen onder de reservebank op de print. */
    #printWastas {
        margin-top: 10px;
        text-align: center;
    }

    #printWastas h3 {
        font-size: 0.85rem;
        margin-bottom: 4px;
        color: black;
        text-transform: uppercase;
        letter-spacing: 0.4px;
    }

    #printWastas p {
        font-size: 0.95rem;
        color: black;
    }
}


@media (max-width: 640px) {
    .app-header { padding: 10px 14px; }
    .app-header h1 { font-size: 1rem; }

    .nav-dropdown:hover .nav-dropdown-menu { display: none; }
    .nav-dropdown.actief .nav-dropdown-menu { display: block; }
}

@media (max-width: 991.98px) {
    .av-navbar-account { align-items: flex-start; flex-direction: column; padding: 10px 0 6px; }
    .av-navbar .navbar-nav .nav-link { padding-left: 0; }
}

/* ---------- Klikbaar sterrenwidget (beoordelingen) - robuuste versie ---------- */
.ster-widget {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    user-select: none;
}

.ster-widget .ster-icoon {
    position: relative;
    width: 26px;
    height: 26px;
    display: inline-block;
}

.ster-widget .ster-icoon .ster-achtergrond {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 26px;
    line-height: 26px;
    color: #b5b5bd;
}

[data-theme="nacht"] .ster-widget .ster-icoon .ster-achtergrond {
    color: #4a4b55;
}

.ster-widget .ster-icoon .ster-voorgrond {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 26px;
    line-height: 26px;
    color: #f5b301;
    clip-path: inset(0 100% 0 0);
}

.ster-widget .ster-label {
    margin-left: 8px;
    font-size: 0.8rem;
    color: var(--text-secondary);
    white-space: nowrap;
    min-width: 130px;
}

.beoordeling-cel { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }

.speler-navigatie {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.speler-navigatie select { margin-bottom: 0; max-width: 260px; }
.speler-navigatie .nav-knoppen { display: flex; gap: 8px; }

.speler-kaart {
    background: var(--bg-tertiary);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 6px;
    cursor: grab;
    font-size: 0.85rem;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
    touch-action: none;
}

.speler-kaart:active { cursor: grabbing; }
.speler-kaart.wordt-gesleept { opacity: 0.4; }

.ster-indicatie { font-size: 0.75rem; color: var(--warning); font-weight: 700; }

.wisselbank-zone {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    border: 2px dashed var(--border-color);
    border-radius: 8px;
    padding: 10px;
}
.wisselbank-zone .speler-kaart { margin-bottom: 0; min-width: 100px; }

.speler-slot .slot-code { font-size: 0.65rem; font-weight: 700; opacity: 0.7; }
.speler-slot .slot-naam { font-size: 0.72rem; font-weight: 700; }

.sleep-ghost {
    position: fixed;
    z-index: 1000;
    background: var(--accent);
    color: var(--av-wit);
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 700;
    pointer-events: none;
    transform: translate(-50%, -50%);
    box-shadow: var(--shadow-lg);
}

.sleep-zone.sleep-hover,
.speler-slot.sleep-hover {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
}

.speler-slot.sleep-hover { border-color: var(--av-wit); }

.matchday-klok { text-align: center; padding: 20px; }
.matchday-stand { font-size: 1.8rem; font-weight: bold; }
.matchday-status { margin-top: 8px; }
.wissel-waarschuwing { border: 2px solid orange; animation: pulse 1.5s infinite; }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(255,165,0,0.5); } 50% { box-shadow: 0 0 0 8px rgba(255,165,0,0); } }
.badge-waarschuwing { background: orange; color: #000; padding: 2px 8px; border-radius: 4px; margin-left: 8px; }

.badge-status { padding: 2px 8px; border-radius: 4px; font-size: 0.85rem; }
.badge-basis, .badge-ingevallen { background: #2ecc71; color: #fff; }
.badge-gewisseld { background: #888; color: #fff; }
.badge-bank { background: #ddd; color: #333; }

.matchday-tabel { width: 100%; border-collapse: collapse; }
.matchday-tabel th, .matchday-tabel td { padding: 6px 10px; border-bottom: 1px solid var(--border, #333); text-align: left; }

.matchday-tijdlijn { list-style: none; padding: 0; }
.matchday-tijdlijn li { padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }

.live-pagina { max-width: 600px; margin: 0 auto; padding: 16px; }
.live-scorebord { text-align: center; margin-bottom: 20px; }
.live-scorebord h1 { font-size: 1.6rem; }
.goal-flash {
    position: fixed; top: 20px; left: 50%; transform: translateX(-50%);
    background: var(--accent, red); color: #fff; padding: 16px 32px;
    font-size: 1.5rem; font-weight: bold; border-radius: 8px; z-index: 1000;
}
