
:root{
    --svph-header-height:138px;
    --navy:#103b67;
    --navy2:#205d98;
    --gold:#f0b313;
    --bg:#f3f5f7;
    --white:#ffffff;
    --text:#152943;
    --border:#dce2e8;
    --muted:#66758a;
    --red:#c81e1e;
    --green:#2e7d4f;
    --grey:#e4e8ed;
}
*{box-sizing:border-box}
html,body{
    margin:0;
    min-height:100%;
    font-family:Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:var(--text);
}

/* HEADER */
body .site-header{
    background:#103b67 !important;
    color:#ffffff !important;
    border-bottom:5px solid #f0b313 !important;
    min-height:155px;
    padding:18px 26px;
    display:flex;
    align-items:flex-start;
    gap:24px;

    position:sticky;
    top:0;
    z-index:1000;
}
.site-header img{
    width:105px;
    height:105px;
    object-fit:contain;
}
.site-title h1{
    margin:8px 0 6px;
    font-size:34px;
    color:#ffffff !important;
}
.site-title div{
    font-size:22px;
    font-weight:bold;
    color:#f0b313 !important;
}

/* LAYOUT + MENU */
.app{
    display:flex;
    min-height:calc(100vh - 160px);
}
body .sidebar{
    width:270px;
    background:#103b67 !important;
    color:#ffffff !important;
    padding:27px 16px;
    flex:0 0 auto;

    /* V55: linkermenu blijft zichtbaar terwijl de inhoud rechts scrollt */
    position:sticky;
    top:var(--svph-header-height, 138px);
    align-self:flex-start;
    height:calc(100vh - var(--svph-header-height, 138px));
    overflow-y:auto;
    overscroll-behavior:contain;
}
.sidebar-user{
    color:#d9e5f1 !important;
    padding:0 16px 20px;
    line-height:1.45;
}
body .sidebar a{
    display:block;
    color:#ffffff !important;
    background:transparent !important;
    font-weight:bold;
    text-decoration:none;
    padding:14px 16px;
    margin-bottom:5px;
    border-radius:9px;
    font-size:17px;
}
body .sidebar a:hover,
body .sidebar a.active{
    background:#205d98 !important;
    color:#f0b313 !important;
}

/* CONTENT */
.content{
    flex:1;
    padding:38px 28px 60px;
    min-width:0;
}
.page-title{font-size:30px;margin:0 0 24px}
.card{
    background:#ffffff;
    border-radius:13px;
    padding:22px;
    box-shadow:0 3px 14px rgba(0,0,0,.06);
    margin-bottom:24px;
}
.member-grid{
    display:grid;
    grid-template-columns:minmax(320px,.9fr) minmax(620px,1.6fr);
    gap:16px;
    align-items:start;
}
h2,h3{margin-top:0}
label{display:block;font-weight:bold;margin-bottom:14px}
input,select{
    width:100%;
    padding:11px 12px;
    border:1px solid #cbd5e0;
    border-radius:7px;
    margin-top:5px;
    font:inherit;
    background:#ffffff;
    color:#152943;
}
.checkbox-line{
    display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin:10px 0 18px;
}
.checkbox-line label{
    font-weight:normal;
    margin:0;
    display:flex;
    align-items:center;
    gap:7px;
}
.checkbox-line input{width:auto;margin:0}

/* BUTTONS - explicit backgrounds so buttons can never become invisible */
body button,
body .btn{
    border:0 !important;
    border-radius:8px;
    padding:10px 15px;
    font:inherit;
    font-weight:bold;
    cursor:pointer;
    text-decoration:none;
    display:inline-block;
    background:#e4e8ed !important;
    color:#152943 !important;
}
body button.primary,
body .btn.primary{
    background:#103b67 !important;
    color:#ffffff !important;
}
body button.warning,
body .btn.warning{
    background:#e4e8ed !important;
    color:#152943 !important;
}
body button.danger,
body .btn.danger{
    background:#c81e1e !important;
    color:#ffffff !important;
}
body button.success-btn,
body .btn.success-btn{
    background:#2e7d4f !important;
    color:#ffffff !important;
}
body button:hover,
body .btn:hover{filter:brightness(.94)}

.notice{
    padding:12px 14px;
    border-radius:8px;
    margin-bottom:18px;
    background:#fff6cf;
}
.notice.success{background:#e8f5ed}
.notice.error{background:#fde8e8}

table{
    width:100%;
    border-collapse:collapse;
    background:#ffffff;
}
th,td{
    padding:12px 11px;
    border-bottom:1px solid #e2e7ec;
    text-align:left;
    vertical-align:middle;
}
th{background:#eef1f4}
.actions{display:flex;gap:7px;flex-wrap:wrap}
.status-active{color:#2e7d4f;font-weight:bold}
.status-inactive{color:#c81e1e;font-weight:bold}
.username{font-size:13px;color:#66758a;margin-top:2px}
.rights{font-size:13px;color:#66758a;line-height:1.35}
.inline{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sessions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lanes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.lane{border:1px solid #dce2e8;border-radius:8px;padding:11px;background:#fafbfc}
.lane strong{display:block;margin-bottom:6px}
.free{color:#2e7d4f;font-weight:bold}
.busy{color:#6b7280;font-weight:bold}
.small{font-size:14px;color:#66758a}
.login-body{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:100vh;
    padding:25px;
}
.login-card{
    width:100%;
    max-width:520px;
    background:#ffffff;
    border-radius:14px;
    padding:28px;
    box-shadow:0 6px 22px rgba(0,0,0,.10);
    border-top:6px solid #f0b313;
}
.login-card h1{color:#103b67}
.secondary{margin-left:8px}
.edit-panel{border:2px solid #f0b313}

/* FOOTER */
body .site-footer{
    background:#103b67 !important;
    color:#f0b313 !important;
    border-top:5px solid #f0b313 !important;
    padding:16px 20px;
    text-align:center;
    font-size:14px;
    clear:both;
}

@media(max-width:1100px){
    .member-grid{grid-template-columns:1fr}
}
@media(max-width:820px){
    .site-header{min-height:auto;padding:16px}
    .site-header img{width:78px;height:78px}
    .site-title h1{font-size:25px}
    .site-title div{font-size:18px}
    .app{display:block}
    body .sidebar{
        width:100%;
        display:flex;
        flex-wrap:wrap;
        gap:4px;
        padding:12px;

        /* Op mobiel geen vast zijmenu */
        position:static;
        top:auto;
        height:auto;
        overflow:visible;
    }
    .sidebar-user{width:100%;padding:4px 8px 8px}
    .sidebar a{margin:0;padding:10px 12px}
    .content{padding:24px 16px}
    .sessions{grid-template-columns:1fr}
    .inline{grid-template-columns:1fr}
}


/* ===== DUEL INSCHRIJVEN V9: horizontale sessies ===== */
.shooter-select-card{max-width:720px}
.training-block{margin-bottom:32px}
.duel-session{
    background:#ffffff;
    border:1px solid #d7e0e9;
    border-radius:12px;
    overflow:hidden;
    box-shadow:0 3px 14px rgba(0,0,0,.06);
    margin-bottom:20px;
}
.duel-session-header{
    background:#103b67 !important;
    color:#ffffff !important;
    border-bottom:5px solid #f0b313 !important;
    padding:14px 18px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.duel-session-title{
    color:#ffffff !important;
    font-size:20px;
    font-weight:700;
}
.duel-session-time{
    color:#f0b313 !important;
    font-size:20px;
    font-weight:700;
    white-space:nowrap;
}
.duel-lanes-scroll{
    overflow-x:auto;
    padding:16px;
    -webkit-overflow-scrolling:touch;
}
.duel-lanes-row{
    display:grid;
    grid-template-columns:repeat(7,minmax(125px,1fr));
    gap:10px;
    min-width:930px;
}
.duel-lane{
    min-height:135px;
    border:1px solid #dce2e8;
    border-radius:9px;
    background:#f9fbfd;
    padding:12px 10px;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:stretch;
}
.duel-lane-title{
    font-size:17px;
    font-weight:700;
    color:#103b67;
    margin-bottom:10px;
}
.duel-lane-free{
    color:#2e7d4f;
    font-weight:700;
    margin:5px 0 12px;
}
.duel-lane-busy{
    color:#152943;
    font-weight:700;
    background:#eef1f4;
    border-radius:7px;
    padding:10px 6px;
    line-height:1.3;
    word-break:break-word;
}
.registration-form{margin-top:auto}
.duel-register-button{
    width:100%;
    padding:9px 6px !important;
    font-size:14px !important;
}
@media(max-width:820px){
    .duel-session-header{
        align-items:flex-start;
        flex-direction:column;
        gap:3px;
    }
    .duel-session-title,.duel-session-time{font-size:18px}
    .duel-lanes-scroll{padding:12px}
}


/* ===== DUEL V10: beheer van bestaande inschrijvingen ===== */
.registration-manage{
    margin-top:10px;
    text-align:left;
    border-top:1px solid #d8e0e8;
    padding-top:8px;
}
.registration-manage summary{
    cursor:pointer;
    color:#103b67;
    font-weight:700;
    text-align:center;
    font-size:14px;
}
.manage-form{
    margin-top:10px;
}
.manage-form label{
    font-size:12px;
    margin-bottom:8px;
}
.manage-form select{
    padding:7px 6px;
    font-size:12px;
}
.small-action{
    width:100%;
    padding:8px 6px !important;
    font-size:12px !important;
    margin-top:4px;
}
.delete-registration-form{
    margin-top:7px;
}


/* ===== DUEL V15: historie ===== */
.history-intro{
    margin:0 0 20px;
    color:#475569;
}
.history-list{
    display:flex;
    flex-direction:column;
    gap:12px;
}
.history-training{
    border:1px solid #d7e0e9;
    border-radius:12px;
    background:#ffffff;
    overflow:hidden;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
}
.history-date-header{
    list-style:none;
    cursor:pointer;
    background:#103b67;
    border-bottom:4px solid #f0b313;
    color:#ffffff;
    padding:15px 18px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
}
.history-date-header::-webkit-details-marker{
    display:none;
}
.history-date-header::after{
    content:"+";
    color:#f0b313;
    font-size:26px;
    font-weight:700;
    line-height:1;
}
.history-training[open] > .history-date-header::after{
    content:"−";
}
.history-date{
    font-size:19px;
    font-weight:700;
}
.history-count{
    margin-left:auto;
    color:#f0b313;
    font-size:14px;
    font-weight:700;
}
.history-training-content{
    padding:16px;
}
.history-session{
    margin-bottom:16px;
}
.history-session:last-child{
    margin-bottom:0;
}
.history-lane{
    min-height:95px;
}
.history-empty{
    color:#7b8794;
    font-size:14px;
    font-style:italic;
    padding:8px 4px;
}
@media(max-width:640px){
    .history-date-header{
        padding:13px 14px;
    }
    .history-date{
        font-size:17px;
    }
    .history-count{
        font-size:12px;
    }
    .history-training-content{
        padding:10px;
    }
}


/* ===== DUEL V27: rustigere en duidelijkere sessieblokken ===== */
.training-block{
    margin-bottom:38px;
}

.duel-session{
    position:relative;
    background:#ffffff;
    border:2px solid #103b67;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 8px 20px rgba(16,59,103,.08);
    margin-bottom:28px;
}

.duel-session::before{
    content:"";
    display:block;
    height:8px;
    background:#103b67;
}

.duel-session-header{
    background:#eef3f8 !important;
    color:#103b67 !important;
    border-bottom:2px solid #d7e0e9 !important;
    padding:16px 20px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.duel-session-title{
    color:#103b67 !important;
    font-size:21px;
    font-weight:800;
    letter-spacing:.2px;
}

.duel-session-time{
    color:#103b67 !important;
    background:#ffffff;
    border:1px solid #cfd8e3;
    border-radius:999px;
    padding:7px 14px;
    font-size:16px;
    font-weight:800;
    white-space:nowrap;
}

.duel-lanes-scroll{
    overflow-x:auto;
    padding:20px;
    background:#f8fafc;
    -webkit-overflow-scrolling:touch;
}

.duel-lanes-row{
    display:grid;
    grid-template-columns:repeat(7,minmax(128px,1fr));
    gap:12px;
    min-width:945px;
}

.duel-lane{
    min-height:145px;
    border:1px solid #dce2e8;
    border-radius:10px;
    background:#ffffff;
    padding:14px 11px;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    box-shadow:0 2px 5px rgba(0,0,0,.03);
}

.duel-lane-title{
    font-size:17px;
    font-weight:800;
    color:#103b67;
    margin-bottom:10px;
    padding-bottom:8px;
    border-bottom:1px solid #e4eaf0;
}

.duel-lane-free{
    color:#2e7d4f;
    font-weight:800;
    margin:8px 0 12px;
}

.duel-lane-busy{
    color:#152943;
    font-weight:700;
    background:#eef3f8;
    border:1px solid #d8e2ec;
    border-radius:8px;
    padding:10px 7px;
    line-height:1.35;
    word-break:break-word;
}

.history-empty{
    color:#7b8794;
    font-size:14px;
    font-style:italic;
    background:#f3f5f7;
    border-radius:7px;
    padding:9px 5px;
    margin-top:5px;
}

.registration-manage{
    margin-top:10px;
    text-align:left;
    border-top:1px solid #d8e0e8;
    padding-top:9px;
}

.duel-register-button,
.small-action{
    margin-top:auto;
}

@media(max-width:820px){
    .duel-session{
        margin-bottom:22px;
    }
    .duel-session-header{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
        padding:14px 16px;
    }
    .duel-session-title{
        font-size:19px;
    }
    .duel-session-time{
        font-size:15px;
        padding:6px 12px;
    }
    .duel-lanes-scroll{
        padding:14px;
    }
}


/* ===== DUEL V39: sponsors per baan ===== */
.duel-lane{
    position:relative;
}

.duel-lane-sponsor{
    display:flex;
    align-items:center;
    justify-content:center;
    background:#ffffff;
    border:1px solid #d7e0e9;
    border-radius:8px;
    padding:6px;
    margin:0 0 10px;
    min-height:62px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85);
}

.duel-lane-sponsor img{
    display:block;
    width:100%;
    max-width:100%;
    height:50px;
    object-fit:contain;
}

.duel-lane-busy,
.duel-lane-free{
    position:relative;
    z-index:1;
}

@media(max-width:820px){
    .duel-lane-sponsor{
        min-height:56px;
        margin-bottom:8px;
    }
    .duel-lane-sponsor img{
        height:44px;
    }
}


/* ===== DUEL V39A: sponsorlogo's compact houden ===== */
.duel-lane .duel-lane-sponsor{
    width:100% !important;
    min-height:0 !important;
    height:68px !important;
    max-height:68px !important;
    padding:5px 6px !important;
    margin:0 0 10px !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
}

.duel-lane .duel-lane-sponsor img{
    display:block !important;
    width:auto !important;
    max-width:100% !important;
    height:auto !important;
    max-height:56px !important;
    object-fit:contain !important;
    object-position:center !important;
    margin:0 auto !important;
}

@media(max-width:820px){
    .duel-lane .duel-lane-sponsor{
        height:62px !important;
        max-height:62px !important;
    }

    .duel-lane .duel-lane-sponsor img{
        max-height:50px !important;
    }
}


/* V55A: vaste header + vast menu */
body > header,
body .site-header,
body .header {
    position:sticky;
    top:0;
    z-index:1000;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
}

@media(max-width:820px){
    :root{--svph-header-height:0px;}
    body .sidebar{
        position:static !important;
        height:auto !important;
        overflow:visible !important;
    }
}


/* V65 - rustiger menu en gebruikersinformatie op Inschrijven */
.sidebar-section-title{
    margin:20px 10px 7px;
    padding-top:13px;
    border-top:1px solid rgba(255,255,255,.18);
    color:#f0b313;
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.sidebar-user + .sidebar-section-title{
    margin-top:12px;
    padding-top:0;
    border-top:0;
}

.duel-next-training-card{
    margin:0 0 22px;
    padding:18px 20px;
    border:2px solid #d8a321;
    border-radius:12px;
    background:#fffdf6;
    box-shadow:0 3px 10px rgba(15,58,103,.07);
}
.duel-next-training-label{
    margin-bottom:8px;
    color:#7b5a00;
    font-size:13px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.duel-next-training-main{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    flex-wrap:wrap;
}
.duel-next-training-date{
    color:#103b67;
    font-size:24px;
    font-weight:800;
    line-height:1.15;
}
.duel-next-training-details{
    margin-top:5px;
    color:#33475b;
    font-size:17px;
    font-weight:700;
}
.duel-next-training-actions{
    display:flex;
    gap:9px;
    align-items:center;
    flex-wrap:wrap;
}
.duel-calendar-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 16px;
    border-radius:8px;
    background:#103b67;
    color:#fff !important;
    text-decoration:none;
    font-weight:700;
}
.duel-calendar-button:hover,
.duel-calendar-button:focus{
    background:#184f86;
}
.duel-next-training-empty{
    color:#4e5f70;
    font-size:16px;
}

.duel-free-count{
    display:inline-block;
    margin-left:9px;
    padding:4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    color:#fff;
    font-size:12px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
}

@media(max-width:820px){
    .sidebar-section-title{
        width:100%;
        margin:10px 6px 4px;
        padding-top:8px;
    }
    .sidebar-user + .sidebar-section-title{
        margin-top:4px;
        padding-top:4px;
    }
    .duel-next-training-main{
        align-items:flex-start;
    }
    .duel-next-training-date{
        font-size:21px;
    }
}

@media(max-width:520px){
    .duel-next-training-actions{
        width:100%;
    }
    .duel-next-training-actions > *{
        flex:1 1 auto;
    }
    .duel-next-training-actions button,
    .duel-calendar-button{
        width:100%;
    }
    .duel-free-count{
        display:block;
        width:max-content;
        margin:6px 0 0 auto;
    }
}


/* V66 - label voor nieuwe inhoud */
.menu-new-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:8px;
    padding:2px 7px;
    border-radius:999px;
    background:#f0b313;
    color:#103b67;
    font-size:10px;
    line-height:1.35;
    font-weight:900;
    letter-spacing:.02em;
    vertical-align:middle;
}
.sidebar a.active .menu-new-badge{
    background:#ffffff;
    color:#103b67;
}


/* V68 - Beheerdersdashboard */
.dashboard-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
.dashboard-subtitle{
    color:#66788a;
    font-size:15px;
}
.dashboard-next{
    margin-bottom:20px;
}
.dashboard-next-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    flex-wrap:wrap;
    margin-bottom:18px;
}
.dashboard-eyebrow{
    color:#8a6500;
    font-size:12px;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.dashboard-date{
    margin-top:3px;
    color:#103b67;
    font-size:27px;
    line-height:1.1;
    font-weight:900;
}
.dashboard-link-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 16px;
    border-radius:8px;
    background:#103b67;
    color:#fff !important;
    text-decoration:none;
    font-weight:800;
}
.dashboard-link-button:hover,
.dashboard-link-button:focus{
    background:#184f86;
}
.dashboard-session-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.dashboard-session-card{
    padding:16px;
    border:1px solid #d9e1e8;
    border-radius:10px;
    background:#f8fafc;
}
.dashboard-session-title{
    color:#103b67;
    font-size:18px;
    font-weight:900;
}
.dashboard-session-time{
    margin-top:3px;
    color:#66788a;
    font-size:14px;
}
.dashboard-session-numbers{
    display:flex;
    gap:7px;
    align-items:center;
    margin-top:13px;
    color:#45596d;
    font-size:14px;
}
.dashboard-session-numbers strong{
    color:#103b67;
    font-size:18px;
}
.dashboard-progress{
    height:8px;
    margin-top:11px;
    border-radius:999px;
    overflow:hidden;
    background:#e4eaf0;
}
.dashboard-progress span{
    display:block;
    height:100%;
    border-radius:999px;
    background:#d8a321;
}
.dashboard-stat-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin:0 0 20px;
}
.dashboard-stat-card{
    display:flex;
    flex-direction:column;
    min-height:138px;
    padding:17px;
    border:1px solid #d9e1e8;
    border-radius:11px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,58,103,.06);
    color:#607184;
    text-decoration:none;
}
.dashboard-stat-card:hover,
.dashboard-stat-card:focus{
    border-color:#afc0d1;
    box-shadow:0 4px 12px rgba(15,58,103,.10);
}
.dashboard-stat-card strong{
    margin:8px 0 4px;
    color:#103b67;
    font-size:32px;
    line-height:1;
}
.dashboard-stat-label{
    color:#4d6073;
    font-size:13px;
    font-weight:800;
}
.dashboard-stat-card.dashboard-attention{
    border-color:#d8a321;
    background:#fffdf6;
}
.dashboard-quick{
    margin-top:20px;
}
.dashboard-quick h2{
    margin-top:0;
}
.dashboard-quick-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.dashboard-quick-grid a{
    display:block;
    padding:12px 14px;
    border:1px solid #d9e1e8;
    border-radius:8px;
    background:#f8fafc;
    color:#103b67;
    text-decoration:none;
    font-weight:800;
}
.dashboard-quick-grid a:hover,
.dashboard-quick-grid a:focus{
    background:#eef4f9;
}
.dashboard-empty{
    padding:22px;
}

@media(max-width:1050px){
    .dashboard-stat-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:760px){
    .dashboard-session-grid,
    .dashboard-quick-grid{
        grid-template-columns:1fr;
    }
}
@media(max-width:520px){
    .dashboard-stat-grid{
        grid-template-columns:1fr;
    }
}


/* V70 - mobiele optimalisatie voor leden
   Telefoon: <= 720px
   iPad/tablet behoudt de bestaande brede beheerweergave. */

.mobile-menu-toggle{
    display:none;
}

@media(max-width:720px){
    html, body{
        max-width:100%;
        overflow-x:hidden;
    }

    body{
        padding-bottom:env(safe-area-inset-bottom);
    }

    .mobile-menu-toggle{
        position:sticky;
        top:0;
        z-index:1200;
        display:flex;
        align-items:center;
        justify-content:center;
        width:calc(100% - 24px);
        min-height:48px;
        margin:10px 12px 8px;
        padding:10px 16px;
        border:0;
        border-radius:10px;
        background:#103b67;
        color:#fff;
        font:inherit;
        font-size:16px;
        font-weight:800;
        box-shadow:0 2px 9px rgba(0,0,0,.14);
    }

    .sidebar{
        display:none !important;
        position:fixed !important;
        top:0 !important;
        left:0;
        right:0;
        bottom:0;
        z-index:1190;
        width:100% !important;
        max-width:none !important;
        height:100dvh !important;
        padding:72px 16px calc(20px + env(safe-area-inset-bottom)) !important;
        overflow-y:auto !important;
        background:#103b67;
    }

    .sidebar.mobile-open{
        display:block !important;
    }

    .sidebar a{
        display:flex;
        align-items:center;
        justify-content:space-between;
        min-height:48px;
        margin:3px 0;
        padding:11px 14px;
        border-radius:9px;
        font-size:16px;
        line-height:1.25;
    }

    .sidebar-section-title{
        margin:16px 8px 5px !important;
        padding-top:10px !important;
        font-size:11px;
    }

    .sidebar-user{
        margin-bottom:10px;
        font-size:14px;
    }

    .app{
        display:block !important;
        width:100%;
    }

    .content{
        width:100% !important;
        max-width:100% !important;
        padding:12px !important;
    }

    .page-title{
        font-size:26px !important;
        line-height:1.15;
    }

    /* Touch-vriendelijke knoppen en velden */
    button,
    .btn,
    a.btn,
    .primary,
    .secondary,
    .danger,
    .warning,
    .success-btn{
        min-height:44px;
    }

    input,
    select,
    textarea{
        font-size:16px !important; /* voorkomt automatisch inzoomen op iPhone */
    }

    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="search"],
    input[type="date"],
    select,
    textarea{
        min-height:44px;
    }

    /* Inschrijven */
    .duel-next-training-card{
        padding:16px;
        margin-bottom:16px;
    }

    .duel-next-training-main{
        display:block;
    }

    .duel-next-training-date{
        font-size:22px;
    }

    .duel-next-training-actions{
        display:grid;
        grid-template-columns:1fr;
        width:100%;
        margin-top:14px;
    }

    .duel-next-training-actions > *,
    .duel-next-training-actions button,
    .duel-calendar-button{
        width:100%;
    }

    .shooter-select-card{
        padding:14px !important;
    }

    .duel-session{
        margin-bottom:16px;
    }

    .duel-session-header{
        align-items:flex-start;
        gap:8px;
    }

    .duel-session-title{
        font-size:17px;
    }

    .duel-session-time{
        font-size:14px;
        text-align:right;
    }

    .duel-free-count{
        margin-top:5px !important;
    }

    .duel-lanes-scroll{
        overflow-x:auto !important;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:thin;
        padding-bottom:7px;
        scroll-snap-type:x proximity;
    }

    .duel-lanes-row{
        width:max-content;
        min-width:100%;
        gap:10px !important;
    }

    .duel-lane{
        flex:0 0 150px !important;
        min-width:150px !important;
        scroll-snap-align:start;
    }

    .duel-lane-title{
        font-size:15px;
    }

    .duel-register-button,
    .small-action{
        width:100%;
        min-height:44px;
    }

    .registration-manage summary{
        min-height:42px;
        display:flex;
        align-items:center;
    }

    /* Algemene kaartweergaven */
    .results-gallery{
        grid-template-columns:1fr !important;
        gap:16px !important;
    }

    .result-card{
        max-width:440px;
        width:100%;
        margin:0 auto;
    }

    .result-preview-button{
        height:260px !important;
    }

    .results-years{
        overflow-x:auto;
        flex-wrap:nowrap !important;
        -webkit-overflow-scrolling:touch;
        padding-bottom:6px;
    }

    .results-year{
        flex:0 0 auto;
        min-height:44px;
        display:flex;
        align-items:center;
    }

    .result-modal{
        padding:10px !important;
    }

    .result-modal-dialog{
        width:100% !important;
        height:calc(100dvh - 20px) !important;
        max-height:none !important;
    }

    /* Interne Competitie */
    .ic-grid{
        grid-template-columns:1fr !important;
    }

    .ic-card{
        max-width:480px;
        width:100%;
        margin-left:auto;
        margin-right:auto;
    }

    .ic-preview img{
        max-width:100% !important;
        height:auto !important;
    }

    /* Video */
    .video-list,
    .video-grid{
        grid-template-columns:1fr !important;
    }

    .video-item,
    .video-card,
    .video-admin{
        max-width:100% !important;
        width:100% !important;
    }

    .video-admin textarea{
        min-height:160px !important;
    }

    iframe{
        max-width:100%;
    }

    /* Dashboard blijft bruikbaar op telefoon */
    .dashboard-session-grid,
    .dashboard-stat-grid,
    .dashboard-quick-grid{
        grid-template-columns:1fr !important;
    }

    .dashboard-stat-card{
        min-height:116px;
    }

    /* Houd tabellen beschikbaar met horizontaal swipen */
    table{
        min-width:680px;
    }

    .card[style*="overflow:auto"],
    .card[style*="overflow: auto"]{
        -webkit-overflow-scrolling:touch;
    }
}


/* V72 - vijf dashboardkaarten */
@media(max-width:1320px) and (min-width:1051px){
    .dashboard-stat-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
