    /* ═══ V81: UTILITY CLASSES — Replace inline styles ═══ */

    /* Layout */
    .d-none { display: none !important; }
    /* Compact reservatievenster: alle kernvelden zichtbaar zonder groot, leeg modal. */
    #reservationModal .menu-modal { width:min(920px,calc(100vw - 24px));max-width:920px!important;max-height:86vh!important;display:flex!important;flex-direction:column!important;overflow:hidden!important; }
    #reservationModal .menu-modal-header { padding:9px 14px;min-height:40px;flex:0 0 auto;border-bottom:1px solid var(--border-color); }
    #reservationModal .menu-modal-title { font-size:16px;margin:0; }
    #reservationModal .menu-modal > div:nth-child(2) { padding:10px 12px!important;flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain; }
    #reservationModal .res-pos-form{display:grid;gap:8px}
    #reservationModal .res-pos-row{display:grid;gap:8px;align-items:end}
    #reservationModal .res-pos-row.one{grid-template-columns:1.15fr .8fr .7fr 1fr}
    #reservationModal .res-pos-row.two{grid-template-columns:1.2fr 1fr 1.25fr 1.8fr}
    #reservationModal .res-pos-row.three{grid-template-columns:1fr 1.25fr auto}
    #reservationModal .res-pos-field{min-width:0}
    #reservationModal .res-pos-field .dp-input,#reservationModal .res-pos-field select,#reservationModal .res-pos-field textarea{width:100%;box-sizing:border-box}
    #reservationModal .res-pos-actions{display:flex;gap:6px;align-items:end}
    #reservationModal .res-pos-actions button{min-height:34px;padding:7px 12px!important;white-space:nowrap}
    #reservationModal .res-pos-note{height:34px!important;min-height:34px!important;resize:none!important}
    #reservationModal .u-auto-j { gap:8px!important;margin-bottom:0!important; }
    #reservationModal .u-mb16 { margin-bottom:0!important; }
    #reservationModal .t-label-lg { font-size:11px!important;margin-bottom:3px!important; }
    #reservationModal .dp-input,#reservationModal select { padding:7px 9px!important;font-size:12px!important;min-height:34px; }
    #reservationModal textarea.dp-input { min-height:48px!important; }
    #reservationModal #resBirthday + div { display:none!important; }
    @media(max-width:760px){
      #reservationModal .menu-modal{width:min(520px,calc(100vw - 16px));max-height:92vh!important}
      #reservationModal .res-pos-row.one,#reservationModal .res-pos-row.two{grid-template-columns:1fr 1fr}
      #reservationModal .res-pos-row.three{grid-template-columns:1fr}
      #reservationModal .res-pos-actions{display:grid;grid-template-columns:1fr 1fr}
    }
    /* Kleine touchkassa: circa 30% compacter. De kop + lijn blijven vast staan;
       alleen de velden schuiven binnen het venster boven het vaste toetsenbord. */
    @media(max-width:1280px),(max-height:800px){
      #reservationModal .menu-modal{width:min(640px,calc(100vw - 16px));max-width:640px!important}
      #reservationModal .menu-modal-header{padding:6px 10px;min-height:34px}
      #reservationModal .menu-modal-title{font-size:14px}
      #reservationModal .menu-modal>div:nth-child(2){padding:7px 9px!important}
      #reservationModal .res-pos-form,#reservationModal .res-pos-row{gap:5px}
      #reservationModal .t-label-lg{font-size:9px!important;margin-bottom:1px!important}
      #reservationModal .dp-input,#reservationModal select{padding:5px 7px!important;font-size:11px!important;min-height:29px!important}
      #reservationModal .res-pos-note{height:29px!important;min-height:29px!important}
      #reservationModal .res-pos-actions button{min-height:29px;padding:5px 9px!important;font-size:11px!important}
    }
    body.dpk-active #reservationModal .menu-modal{overflow:hidden!important}
    body.dpk-active #reservationModal .menu-modal>div:nth-child(2){overflow-y:auto!important;scroll-behavior:smooth}
    .d-flex { display: flex; }
    .d-grid { display: grid; }
    .flex-1 { flex: 1; }
    .flex-center { display: flex; align-items: center; justify-content: center; }
    .flex-between { display: flex; align-items: center; justify-content: space-between; }
    .flex-col { display: flex; flex-direction: column; }
    .items-center { align-items: center; }
    .gap-4 { gap: 4px; }
    .gap-6 { gap: 6px; }
    .gap-8 { gap: 8px; }
    .gap-12 { gap: 12px; }
    .gap-16 { gap: 16px; }

    /* Text styles */
    .t-heading { font-size: 18px; font-weight: 800; color: var(--text-primary, #e4e4e7); }
    .t-title { font-size: 16px; font-weight: 700; color: var(--text-primary, #e4e4e7); }
    .t-subtitle { font-size: 14px; font-weight: 700; color: var(--text-primary, #e4e4e7); }
    .t-body { font-size: 13px; font-weight: 600; color: var(--text-primary, #e4e4e7); }
    .t-small { font-size: 11px; color: var(--text-muted, #6b7280); }
    .t-tiny { font-size: 10px; color: var(--text-muted, #6b7280); }
    .t-label { display: block; font-size: 11px; font-weight: 600; color: var(--text-secondary, #9ca3af); margin-bottom: 4px; }
    .t-label-lg { display: block; font-size: 13px; font-weight: 600; color: var(--text-primary, #e4e4e7); margin-bottom: 6px; }
    .t-muted { color: var(--text-secondary, #9ca3af); }
    .t-brand { color: var(--brand, #d4845c); }
    .t-success { color: var(--success, #10b981); }
    .t-warning { color: var(--warning, #f59e0b); }
    .t-danger { color: var(--danger, #ef4444); }
    .t-center { text-align: center; }

    /* Spacing */
    .mb-4 { margin-bottom: 4px; }
    .mb-8 { margin-bottom: 8px; }
    .mb-12 { margin-bottom: 12px; }
    .mb-16 { margin-bottom: 16px; }
    .p-12 { padding: 12px; }
    .p-16 { padding: 16px; }

    /* Components */
    .dp-input {
        width: 100%; padding: 10px; background:var(--bg-tertiary); border: 1px solid var(--border-color);
        border-radius: 8px; color:var(--text-primary); font-size: 13px; outline: none; box-sizing: border-box;
    }
    .dp-input:focus { border-color: #d4845c; }
    select option { background:var(--bg-input); color:var(--text-primary); }
    .dp-input-lg {
        padding: 18px; background:var(--bg-tertiary); border: 1px solid var(--border-color);
        border-radius: 8px; color:var(--text-primary); font-size: 20px; font-weight: 700; cursor: pointer;
        transition: background 0.15s, border-color 0.15s;
    }
    .dp-input-lg:hover { background:var(--bg-hover); border-color:var(--text-dim); }
    .dp-input-lg:active { background: #d4845c; color: white; border-color: #d4845c; }
    .dp-card {
        background:var(--bg-secondary); border-radius: 12px; padding: 16px;
        margin-bottom: 12px; border: 1px solid var(--border-light);
    }
    .dp-card-elevated {
        background:var(--bg-secondary); border-radius: 12px; padding: 16px;
        border: 1px solid var(--border-color);
    }
    .dp-hr { height: 1px; background:var(--bg-hover); margin: 16px 0; }
    .dp-hr-lg { height: 1px; background:var(--bg-hover); margin: 20px 0; }
    .dp-btn {
        padding: 8px 16px; border: none; border-radius: 8px;
        font-size: 13px; font-weight: 600; cursor: pointer;
    }
    .dp-btn-primary {
        padding: 12px 16px; border: none; border-radius: 8px;
        background: linear-gradient(135deg, #d4845c, #e8b298);
        color: white; font-size: 13px; font-weight: 700; cursor: pointer;
    }
    .dp-btn-success {
        padding: 12px 16px; border: none; border-radius: 8px;
        background: linear-gradient(135deg, #10b981, #059669);
        color: white; font-size: 13px; font-weight: 700; cursor: pointer;
    }
    .dp-btn-info {
        padding: 8px 16px; border: none; border-radius: 8px;
        background: linear-gradient(135deg, #3b82f6, #2563eb);
        color: white; font-size: 13px; font-weight: 700; cursor: pointer;
    }
    .dp-nav-item {
        display: flex; align-items: center; gap: 8px; width: 100%;
        padding: 10px 12px; background: transparent; border: none;
        border-left: 3px solid transparent; border-radius: 0 8px 8px 0;
        color:var(--text-secondary); font-size: 12px; font-weight: 600; cursor: pointer;
        text-align: left; margin-bottom: 2px;
    }
    .dp-nav-item:hover { background:var(--bg-secondary); color:var(--text-primary); }
    .dp-nav-item.active { border-left-color: #d4845c; color: #d4845c; background: #d4845c11; }

    /* --- Settings Page Professional Styling --- */
    .s-sidebar { width: auto; min-width: 170px; background: #13151b; padding: 8px 6px; overflow-y: auto; flex-shrink: 0; }
    .theme-light .s-sidebar { background: #f0f2f5; border-right: 1px solid #e2e8f0; }
    .theme-light .s-tab { color: #4a5568; }
    .theme-light .s-tab:hover { background: #e8ebf0; color: #1a1a2e; }
    .theme-light .s-tab.active { background: #d4845c15; color: #d4845c; }
    /* Auth/PIN screens: explicit theme overrides keep hard refresh first paint consistent. */
    #authScreen { background: linear-gradient(135deg, #0f1117, #1a1d24) !important; }
    .theme-light #authScreen { background: linear-gradient(135deg, #f0f2f5, #e2e8f0) !important; }
    .theme-light #authScreen > div > div:first-child { background: #ffffff !important; box-shadow: 0 20px 60px rgba(0,0,0,0.12) !important; }
    .theme-light #authScreen input,
    .theme-light #authScreen select { background: #ffffff !important; color: #1a1a2e !important; border-color: #e2e8f0 !important; }
    .theme-light #authScreen .langBtn:not([data-lang="nl"]) { background: #f3f4f6 !important; color: #4a5568 !important; border-color: #e2e8f0 !important; }
    .theme-light #authScreen #authPassToggle { background: linear-gradient(135deg,#edf0f3,#e2e8f0) !important; }
    .theme-light #authScreen #authEyeSvg { stroke: #4a5568 !important; }
    .theme-light #authScreen h1,
    .theme-light #authScreen h2,
    .theme-light #authScreen label { color: #1a1a2e !important; }
    .theme-light #authScreen p,
    .theme-light #authScreen .t-small { color: #4a5568 !important; }
    .theme-light #loginScreen { background: linear-gradient(135deg, #f0f2f5, #e2e8f0) !important; }
    .theme-light #loginScreen > div { background: #ffffff !important; box-shadow: 0 20px 60px rgba(0,0,0,0.12) !important; }
    .theme-light #loginScreen #employeeSelect,
    .theme-light #loginScreen #pinInput { background: #ffffff !important; color: #1a1a2e !important; border: 1px solid #e2e8f0 !important; }
    .theme-light #loginScreen .dp-input-lg { background: #f0f2f5 !important; color: #1a1a2e !important; border: 1px solid #e2e8f0 !important; }
    .theme-light #loginScreen .dp-input-lg:hover { background: #e8ebf0 !important; }
    .theme-light #loginScreen .dp-input-lg:active { background: #d4845c !important; color: #fff !important; border-color: #d4845c !important; }
    .theme-light #loginScreen button[onclick="clearPin()"] { background: #e8eaed !important; color: #4a5568 !important; border: 1px solid #cbd5e0 !important; }
    .theme-light #loginScreen label,
    .theme-light #loginScreen h1 { color: #1a1a2e !important; }
    .theme-light #loginScreen p { color: #4a5568 !important; }
    /* Dropdown options — browser-rendered popup negeert soms var(), dus expliciet */
    .theme-light #loginScreen #employeeSelect option { background: #ffffff !important; color: #1a1a2e !important; }
    /* Info-box onderaan: meer contrast voor leesbaarheid */
    .theme-light #loginScreen > div > div:last-of-type { background: #f0f2f5 !important; border: 1px solid #e2e8f0 !important; }
    .theme-light #loginScreen > div > div:last-of-type > div { color: #4a5568 !important; }
    .theme-light #loginScreen > div > div:last-of-type button { color: #b5623a !important; }
    /* PIN-inlogscherm: eenvoudig scrollbaar. align-items:flex-start (op de
       #loginScreen inline-stijl) + overflow-y:auto zorgt dat de kaart bovenaan
       begint en je normaal naar onder scrolt — de top (logo) blijft altijd
       zichtbaar. Geen schaal-/compactie-trucs meer (die raakten niets van de POS,
       maar we houden het bewust simpel). */
    .s-tab { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 12px; background: transparent; border: none; border-left: 3px solid transparent; border-radius: 0 8px 8px 0; color:var(--text-secondary); font-size: 12px; font-weight: 600; cursor: pointer; text-align: left; margin-bottom: 1px; transition: all .15s; white-space: nowrap; }
    .s-tab:hover { background:var(--bg-secondary); color:var(--text-primary); }
    .s-tab.active { border-left-color: #d4845c; color: #d4845c; background: #d4845c11; font-weight: 700; }
    .s-tab-icon { width: 18px; text-align: center; flex-shrink: 0; font-size: 13px; }
    .s-content { flex: 1; padding: 28px 32px; overflow-y: auto; }
    .s-panel-title { font-size: 18px; font-weight: 800; color:var(--text-primary); margin: 0 0 4px; letter-spacing: -0.3px; }
    .s-panel-desc { font-size: 13px; color:var(--text-muted); margin: 0 0 24px; line-height: 1.5; }
    .s-section { margin-bottom: 28px; }
    .s-section-title { font-size: 14px; font-weight: 700; color:var(--text-primary); margin: 0 0 6px; display: flex; align-items: center; gap: 8px; }
    .s-section-desc { font-size: 12px; color:var(--text-muted); margin: 0 0 12px; line-height: 1.5; }
    .s-card { background:var(--bg-secondary); border: 1px solid var(--border-light); border-radius: 12px; padding: 16px; margin-bottom: 10px; }
    .s-card-hover { cursor: pointer; transition: border-color .15s, background .15s; }
    .s-card-hover:hover { border-color: #d4845c44; background:var(--bg-secondary); }
    .s-row { display: flex; align-items: center; justify-content: space-between; }
    .s-row-stack { display: flex; flex-direction: column; gap: 8px; }
    .s-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .s-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; }
    /* Compacte schakelaars: kleiner dan voorheen (44x24) zodat er meer op een
       scherm past, maar nog altijd groot genoeg om met een vinger te raken. */
    .s-toggle { width: 38px; height: 21px; border-radius: 11px; cursor: pointer; position: relative; transition: background .2s; flex-shrink: 0; }
    .s-toggle-dot { width: 15px; height: 15px; background: white; border-radius: 50%; position: absolute; top: 3px; transition: left .2s; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
    .s-toggle-on { background: #10b981; }
    .s-toggle-on .s-toggle-dot { left: 20px; }
    .s-toggle-off { background:var(--bg-hover); }
    .s-toggle-off .s-toggle-dot { left: 3px; }
    .s-badge { font-size: 10px; padding: 3px 8px; border-radius: 6px; font-weight: 700; display: inline-block; }
    .s-badge-green { background: #10b98122; color: #10b981; }
    .s-badge-yellow { background: #f59e0b22; color: #f59e0b; }
    .s-badge-red { background: #ef444422; color: #ef4444; }
    .s-badge-gray { background: #6b728022; color:var(--text-muted); }
    .s-divider { height: 1px; background:var(--bg-tertiary); margin: 24px 0; }
    .s-btn { padding: 10px 16px; border: none; border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; transition: opacity .15s; }
    .s-btn:hover { opacity: 0.85; }
    .s-btn-primary { background: linear-gradient(135deg, #d4845c, #c27548); color: white; }
    .s-btn-success { background: linear-gradient(135deg, #10b981, #059669); color: white; }
    .s-btn-outline { background:var(--bg-tertiary); border: 1px solid var(--border-color); color:var(--text-primary); }
    .s-btn-danger { background:var(--bg-tertiary); border: 1px solid #ef444466; color: #ef4444; }
    .s-btn-block { width: 100%; }
    .s-info-box { padding: 12px 14px; background:var(--bg-input); border-radius: 10px; border: 1px solid var(--border-light); font-size: 12px; color:var(--text-secondary); line-height: 1.6; }
    .s-info-box-accent { border-left: 3px solid #d4845c; }
    .s-warn-box { padding: 10px 14px; background: #f59e0b11; border: 1px solid #f59e0b33; border-radius: 8px; }
    .s-form-group { margin-bottom: 12px; }
    .s-form-label { display: block; font-size: 11px; font-weight: 600; color:var(--text-secondary); margin-bottom: 4px; }
    .s-check-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background:var(--bg-secondary); border-radius: 8px; cursor: pointer; }
    .s-check-row input[type=checkbox] { width: 18px; height: 18px; accent-color: #d4845c; flex-shrink: 0; }
    .s-link-card { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background:var(--bg-secondary); border: 1px solid var(--border-light); border-radius: 12px; cursor: pointer; transition: border-color .15s; margin-bottom: 10px; }
    .s-link-card:hover { border-color: #d4845c44; }
    .s-link-card-title { font-size: 13px; font-weight: 700; color:var(--text-primary); }
    .s-link-card-desc { font-size: 11px; color:var(--text-secondary); margin-top: 2px; }
    .s-link-card-arrow { font-size: 18px; color:var(--text-muted); }
    .s-footer { text-align: center; padding: 20px 16px 8px; border-top: 1px solid #2d3139; margin-top: 12px; }
    .s-inner-tabs { display: flex; gap: 0; border-bottom: 2px solid #2d3139; margin-bottom: 20px; }
    .s-inner-tab { padding: 10px 20px; background: none; border: none; border-bottom: 3px solid transparent; color:var(--text-secondary); font-size: 14px; font-weight: 600; cursor: pointer; transition: all .15s; }
    .s-inner-tab.active, .s-inner-tab:hover { border-bottom-color: #d4845c; color: #d4845c; }
    /* --- Systeem-paneel: segment-tabs + compacte kaarten -----------------
       De Systeem-pagina was een lange scroll (beveiliging, e-mail, layout,
       downloads, gevarenzone onder elkaar). Nu staat elk onderwerp in een
       eigen tab, en vloeien de kaarten in kolommen zodat een tab in een
       schermvulling past zonder scrollen. */
    .sys-tabs { display: flex; gap: 4px; flex-wrap: wrap; margin: 0 0 18px; padding: 4px; background:var(--bg-secondary); border: 1px solid var(--border-light); border-radius: 12px; }
    .sys-tab { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 14px; background: transparent; border: none; border-radius: 9px; color:var(--text-secondary); font-size: 12.5px; font-weight: 700; cursor: pointer; white-space: nowrap; transition: background .15s, color .15s; }
    .sys-tab:hover { background:var(--bg-hover); color:var(--text-primary); }
    .sys-tab.active { background: linear-gradient(135deg, #d4845c, #c27548); color: #fff; box-shadow: 0 2px 8px rgba(212,132,92,.32); }
    .sys-tab-ico { font-size: 14px; line-height: 1; }
    .sys-pane { animation: sysFade .18s ease; }
    @keyframes sysFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
    .sys-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; align-items: start; }
    .sys-grid-wide { grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); }
    #sPanelSysteem .s-card { padding: 12px 14px; margin-bottom: 0; }
    #sPanelSysteem .s-section { margin-bottom: 20px; }
    #sPanelSysteem .s-panel-desc { margin-bottom: 14px; }
    #sysDownloadsList { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 10px; align-items: start; }
    #sysDownloadsList .s-card { margin-bottom: 0 !important; }
    /* Instelling met keuzelijst eronder: label + select op één regel */
    .sys-sub { display: flex; align-items: center; gap: 10px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--border-color); }
    .sys-sub label { font-size: 12px; font-weight: 600; color:var(--text-secondary); white-space: nowrap; }
    .sys-sub select { flex: 1; }
    /* v94c: Nav item alignment fix — !important overrides inline styles */
    .nav-item {
        display: flex !important; align-items: center !important; gap: 10px !important; 
        width: 100%; padding: 10px 14px; background: transparent; border: none;
        border-left: 3px solid transparent; border-radius: 0 8px 8px 0;
        color:var(--text-secondary); font-size: 13px; font-weight: 600; cursor: pointer;
        text-align: left; margin-bottom: 1px; white-space: nowrap;
        overflow: hidden; text-overflow: ellipsis; line-height: 20px;
        box-sizing: border-box;
    }
    .nav-item svg {
        width: 20px !important; height: 20px !important; 
        min-width: 20px !important; max-width: 20px !important;
        flex-shrink: 0 !important; flex-grow: 0; display: block;
    }
    .nav-item:hover { background:var(--bg-secondary); color:var(--text-primary); }
    .nav-item.active { border-left-color: #d4845c; color: #d4845c; background: #d4845c11; font-weight: 700; }
    .nav-badge {
        margin-left: auto; padding: 2px 7px; border-radius: 10px;
        background: #ef4444; color: white; font-size: 10px; font-weight: 700;
        min-width: 18px; text-align: center; flex-shrink: 0;
    }
    .nav-group-items { padding-left: 0 !important; margin-left: 0 !important; }
    .nav-group-items .nav-item { padding-left: 14px; }
    .nav-group-header {
        display: flex; align-items: center; justify-content: space-between;
        padding: 6px 14px; cursor: pointer;
    }
    .dp-icon-btn {
        width: 22px; height: 22px; border-radius: 4px; border: 1px solid var(--border-color);
        background:var(--bg-tertiary); color:var(--text-primary); font-size: 14px; cursor: pointer;
        display: flex; align-items: center; justify-content: center; padding: 0; flex-shrink: 0;
    }
    .dp-badge {
        padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700;
    }
    .dp-section-title { font-size: 16px; font-weight: 700; color:var(--text-primary); margin-bottom: 4px; }
    .dp-hint { font-size: 12px; color:var(--text-muted); margin-bottom: 16px; }

    /* CSS Variables for theming */
    :root {
        --text-primary: #e4e4e7;
        --text-secondary: #9ca3af;
        --text-muted: #6b7280;
        --bg-base: #1a1d24;
        --bg-card: #22252f;
        --bg-elev: #2a2d37;
        --bg-input: #2d3139;
        --border: #3d4149;
        --brand: #d4845c;
        --success: #10b981;
        --warning: #f59e0b;
        --danger: #ef4444;
        --info: #3b82f6;
    }
    /* Light-mode overrides — moeten NA de :root hierboven komen, anders winnen de dark-waardes
       van deze declaratie van de eerdere .theme-light overrides in styles.css. Zelfde specificity,
       laatste wint. Zonder dit blijven o.a. --bg-input en --bg-card donker in light mode. */
    .theme-light {
        --text-primary: #1a1a2e;
        --text-secondary: #4a5568;
        --text-muted: #5b6675;
        --bg-base: #f8f9fa;
        --bg-card: #ffffff;
        --bg-elev: #f1f3f5;
        --bg-input: #ffffff;
        --border: #e2e8f0;
    }
    /* Light-mode: fix elementen met hardcoded donkere inline bg/kleur.
       #mainApp .app-container heeft specificity (1,1,0); wij moeten matchen met minstens
       dezelfde specificity, dus `.theme-light #mainApp .app-container`. */
    .theme-light #mainApp,
    .theme-light #mainApp .app-container,
    .theme-light .app-container { background: #f0f2f5 !important; }

    /* ═══ DREAMPOS RESPONSIVE OVERRIDES — v45 ═══ */
    /* Added ON TOP of styles.css — does not replace it */

    /* Tables grid: groter op groot scherm */
    .tables-grid {
        display: grid !important;
        grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
        gap: 10px !important;
    }
    @media (min-width: 1200px) {
        .tables-grid {
            grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
            gap: 12px !important;
        }
    }
    @media (min-width: 1600px) {
        .tables-grid {
            grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
            gap: 14px !important;
        }
    }
    /* Tafels section neemt meer ruimte in op home */
    #tablesSection {
        min-height: 60vh;
    }

    /* Mobile sidebar backdrop */
    .sidebar-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: var(--z-sidebar-backdrop); }
    #mobileMenuBtn { display: none !important; }

    /* --- MENU OVERLAY: FULL SCREEN + OPTIMIZED LAYOUT v92 --- */
    /* z-index 9999: moet boven #mainApp (z:9000) staan, anders zijn settings/payment/reservation modals onzichtbaar */
    .menu-overlay {
        padding: 0 !important;
        z-index: 9999 !important;
    }
    .menu-modal {
        width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-width: 100% !important;
        max-height: 100% !important;
        border-radius: 0 !important;
        margin: 0 !important;
    }
    /* v92: Compact header */
    .menu-modal-header {
        padding: 12px 20px !important;
    }
    .menu-modal-title {
        font-size: 18px !important;
    }
    /* v92: Optimized 3-column grid — more space for items */
    .menu-modal-content {
        flex: 1;
        min-height: 0;
        grid-template-columns: 160px 1fr 320px !important;
        gap: 12px !important;
        padding: 12px 16px !important;
    }
    /* v92: Categories compacter */
    .menu-categories {
        gap: 4px !important;
    }
    .menu-category-item {
        padding: 10px 14px !important;
        font-size: 13px !important;
        border-radius: 8px !important;
    }
    /* v92: Items grid — meer items per rij */
    .menu-items-grid {
        grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)) !important;
        gap: 10px !important;
    }
    /* v92: Item cards compacter */
    .menu-item-card {
        padding: 12px !important;
        border-radius: 10px !important;
        gap: 4px !important;
    }
    .menu-item-name {
        font-size: 14px !important;
    }
    .menu-item-description {
        font-size: 11px !important;
        min-height: 0 !important;
        margin-bottom: 6px !important;
        line-height: 1.3 !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .menu-item-price {
        font-size: 17px !important;
    }
    .menu-item-footer {
        margin-top: auto;
    }
    /* v92: Search bar compacter */
    .menu-search-input {
        padding: 10px 44px 10px 14px !important;
        font-size: 13px !important;
        border-radius: 8px !important;
    }
    .menu-items-area {
        gap: 10px !important;
    }
    /* Cart column rechts */
    .menu-modal-content > div:last-child {
        width: 320px;
        min-width: 320px;
        flex-shrink: 0;
    }

    /* SIDEBAR RECHTS — alleen op Home pagina via .has-sidebar */
    .content-grid { display: block; position: relative; }
    .main-column { width: 100%; }
    #posSidebarCol { display: none; }
    .content-grid.has-sidebar { display: grid !important; grid-template-columns: 1fr 300px !important; gap: 20px !important; align-items: start; }
    .content-grid.has-sidebar > #posSidebarCol { display: flex !important; flex-direction: column !important; gap: 16px !important; position: sticky; top: 16px; max-height: calc(100vh - 100px); overflow-y: auto; }
    /* Verberg resize handle als sidebar niet actief */
    .content-grid:not(.has-sidebar) > .pos-resize-handle { display: none !important; }
    #posSidebarCol > .section { background:var(--bg-secondary); border-radius: 12px; padding: 14px 16px; border: 1px solid var(--border-light); }
    #notificationsContainer { max-height: 300px; overflow-y: auto; }
    #reservationsList { max-height: 400px; overflow-y: auto; }

    /* ═══ TABLET — max 1024px ═══ */
    @media (max-width: 1024px) {
        #mainApp {
            --mobile-system-gap: env(safe-area-inset-bottom, 0px);
            --mobile-nav-height: 56px;
            --mobile-bottom-nav-total: calc(var(--mobile-nav-height) + var(--mobile-system-gap));
        }
        .content-grid, .content-grid.has-sidebar { display: block !important; }
        .sidebar-column, #posSidebarCol { display: none !important; }
        /* Rechterkolom is hier verborgen -> de sleepgreep heeft niets meer te slepen en
           zweeft anders als een losse verticale lijn midden over het zaalplan. */
        .pos-resize-handle { display: none !important; }
        .menu-modal { width: 100vw !important; height: 100vh !important; height: 100dvh !important; border-radius: 0 !important; }
        .menu-modal-content { grid-template-columns: 120px 1fr 280px !important; gap: 8px !important; padding: 8px 10px !important; }
        .menu-categories { width: 120px; min-width: 120px; }
        .menu-items-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important; gap: 8px !important; }
        .content { padding: 16px; }
        #reportsSection [style*="grid-template-columns: repeat(4"] { grid-template-columns: repeat(2, 1fr) !important; }
        #reportsSection [style*="grid-template-columns: 2fr 1fr"] { grid-template-columns: 1fr !important; }
        #mainApp .sidebar { bottom: var(--mobile-system-gap) !important; }
        #mainApp .main-content { bottom: var(--mobile-system-gap) !important; }

        /* Instellingen op gsm/tablet: zelfde patroon als de POS-zijbalk.
           De pagina's blijven verticaal en verschijnen via een compacte optieknop. */
        #settingsNavBtn {
            display: inline-flex !important;
            align-items: center !important;
            justify-content: center !important;
            gap: 6px !important;
            min-width: 42px !important;
            height: 40px !important;
            padding: 0 10px !important;
            border: 1px solid var(--border-color) !important;
            border-radius: 8px !important;
            background: var(--bg-tertiary) !important;
            color: var(--text-primary) !important;
            font-size: 12px !important;
            font-weight: 700 !important;
        }
        #settingsModalInner .settings-layout { position: relative !important; }
        #settingsModalInner .s-sidebar {
            position: absolute !important;
            z-index: 5 !important;
            top: 0 !important;
            bottom: 0 !important;
            left: 0 !important;
            width: min(300px, 82vw) !important;
            min-width: min(300px, 82vw) !important;
            display: flex !important;
            flex-direction: column !important;
            gap: 4px !important;
            padding: 10px !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            max-height: none !important;
            border-right: 1px solid var(--border-color) !important;
            border-bottom: none !important;
            background: var(--bg-secondary) !important;
            box-shadow: 12px 0 28px rgba(0,0,0,.28) !important;
            transform: translateX(-105%) !important;
            transition: transform .2s ease !important;
        }
        #settingsModalInner.settings-nav-open .s-sidebar { transform: translateX(0) !important; }
        #settingsModalInner .s-sidebar .settings-tab,
        #settingsModalInner .s-sidebar .s-tab {
            width: 100% !important;
            min-width: 0 !important;
            min-height: 46px !important;
            flex: 0 0 auto !important;
            justify-content: flex-start !important;
            text-align: left !important;
            white-space: normal !important;
            padding: 10px 12px !important;
            border-left: 3px solid transparent !important;
            border-bottom: none !important;
            border-radius: 8px !important;
            font-size: 13px !important;
        }
        #settingsNavBackdrop {
            display: none;
            position: absolute;
            z-index: 4;
            inset: 0;
            background: rgba(0,0,0,.48);
        }
        #settingsModalInner.settings-nav-open #settingsNavBackdrop { display: block; }
        #settingsModalInner .s-content {
            width: 100% !important;
            padding: 16px !important;
        }
        #settingsModalInner .settings-header-spacer { display: none !important; }
        #settingsModalInner .settings-header-actions {
            margin-left: auto !important;
            flex: 0 0 auto !important;
        }
        #settingsCloseBtn {
            order: 99;
            flex: 0 0 40px !important;
            width: 40px !important;
            height: 40px !important;
            margin-left: 0 !important;
        }
    }

    /* Tablet landscape kan breder zijn dan 1024px. Houd de vaste instellingenknop
       boven de systeem/home-indicator op touch tablets zonder de desktoplayout te raken. */
    @media (hover: none) and (pointer: coarse) and (min-width: 769px) {
        #mainApp {
            --tablet-system-gap: env(safe-area-inset-bottom, 0px);
        }
        #mainApp .sidebar {
            bottom: var(--tablet-system-gap) !important;
        }
        #mainApp .main-content {
            bottom: var(--tablet-system-gap) !important;
        }
        #sidebarSettingsFixed {
            flex-shrink: 0 !important;
        }
    }

    /* ═══ MOBILE — max 768px ═══ */
    @media (max-width: 768px) {
        #mainApp {
            --mobile-nav-height: 56px;
            --mobile-system-gap: env(safe-area-inset-bottom, 0px);
            --mobile-bottom-nav-total: calc(var(--mobile-nav-height) + var(--mobile-system-gap));
            --mobile-action-safe-bottom: calc(var(--mobile-bottom-nav-total) + 14px);
        }
        /* Sidebar wordt vaste bottom-nav: 5 gelijke knoppen, geen scroll */
        .sidebar, #mainApp .sidebar {
            position: fixed !important; left: 0 !important; right: 0 !important;
            top: auto !important; bottom: 0 !important;
            width: 100% !important; height: var(--mobile-bottom-nav-total) !important;
            transform: none !important;
            display: flex !important; flex-direction: row !important;
            padding: 0 0 var(--mobile-system-gap) 0 !important;
            border-right: none !important; border-top: 1px solid var(--border-color) !important;
            box-shadow: 0 -1px 8px rgba(0,0,0,0.22) !important;
            z-index: 1000 !important;
            overflow: hidden !important;
            box-sizing: border-box !important;
        }
        .sidebar.sidebar-open, #mainApp .sidebar.sidebar-open { transform: none !important; }
        /* Verberg sidebar-onderdelen die niet horen in een bottom-bar */
        .sidebar .logo,
        #mainApp .sidebar .logo,
        .sidebar > div[style*="padding:4px 10px"],
        #mainApp .sidebar > div[style*="padding:4px 10px"],
        #sidebarSearchInput, #sidebarSearchResults,
        #sidebarSettingsFixed > div:last-child {
            display: none !important;
        }
        /* Verberg alleen gegroepeerde desktopnavigatie; actieve modules blijven bereikbaar. */
        .sidebar .nav-group, #mainApp .sidebar .nav-group {
            display: none !important;
        }
        /* Nav-area: horizontaal scrollbare modulebalk. Module-state blijft de bron van waarheid. */
        #sidebarNavScroll {
            flex: 1 1 auto !important;
            display: grid !important;
            grid-auto-flow: column !important;
            grid-auto-columns: 72px !important;
            grid-template-columns: none !important;
            overflow-x: auto !important;
            overflow-y: hidden !important;
            height: var(--mobile-nav-height) !important; min-height: var(--mobile-nav-height) !important;
            padding: 0 !important; margin: 0 !important;
            scrollbar-width: none !important;
            -webkit-overflow-scrolling: touch;
        }
        #sidebarNavScroll::-webkit-scrollbar { display: none !important; }
        #sidebarNavScroll .nav-item {
            min-width: 72px !important;
        }
        /* Settings blijft vaste actie rechts */
        #sidebarSettingsFixed {
            flex: 0 0 64px !important;
            margin: 0 !important; padding: 0 !important;
            border-top: none !important; border-left: 1px solid var(--border-light) !important;
            display: flex !important; align-items: stretch !important;
            height: var(--mobile-nav-height) !important;
            min-height: var(--mobile-nav-height) !important;
        }
        #sidebarSettingsFixed > .nav-item {
            width: 100% !important; height: 100% !important;
            background: transparent !important; border: none !important;
            border-radius: 0 !important; margin: 0 !important;
        }
        /* Nav-items: icoon boven, klein label eronder, vullen kolom */
        .sidebar .nav-item, #mainApp .sidebar .nav-item {
            flex-direction: column !important;
            gap: 2px !important;
            padding: 4px 2px !important;
            margin: 0 !important;
            font-size: 9px !important; font-weight: 600 !important;
            border-left: none !important;
            border-bottom: 3px solid transparent !important;
            border-radius: 0 !important;
            white-space: nowrap !important;
            min-width: 0 !important; width: 100% !important;
            text-align: center !important;
            line-height: 1.1 !important;
            justify-content: center !important;
            overflow: hidden !important;
        }
        .sidebar .nav-item.active, #mainApp .sidebar .nav-item.active {
            border-left-color: transparent !important;
            border-bottom-color: #d4845c !important;
            background: transparent !important;
        }
        .sidebar .nav-item svg, #mainApp .sidebar .nav-item svg {
            width: 20px !important; height: 20px !important;
        }
        .sidebar .nav-item span, #mainApp .sidebar .nav-item span {
            display: block !important;
            font-size: 9px !important;
            overflow: hidden !important; text-overflow: ellipsis !important;
            max-width: 100% !important;
        }
        /* Hamburger en backdrop niet meer nodig */
        #mobileMenuBtn { display: none !important; }
        .sidebar-backdrop, .sidebar-backdrop.active { display: none !important; }
        /* Oude bottom-nav (init.js) verbergen — sidebar IS de bottom-nav nu */
        #mobileBottomNav { display: none !important; }
        /* Main content boven de bottom-bar */
        #mainApp .main-content { left: 0 !important; bottom: var(--mobile-bottom-nav-total) !important; }
        #paymentModal .menu-modal,
        #orderDetailModal .menu-modal,
        .menu-overlay .menu-modal {
            max-height: calc(100dvh - var(--mobile-action-safe-bottom)) !important;
            margin-bottom: var(--mobile-action-safe-bottom) !important;
        }
        #paymentModal .menu-modal > div:last-child {
            padding-bottom: calc(16px + var(--mobile-bottom-nav-total)) !important;
        }
        .pos-resize-handle { display: none; }
        .header { padding: 0 10px; }
        .header-title { font-size: 15px; }
        #headerClock { margin-right: 8px; }
        #clockTime { font-size: 17px !important; }
        #clockDate { font-size: 10px !important; }
        .content { padding: 12px; }
        .content-grid, .content-grid.has-sidebar { display: block !important; }
        .sidebar-column, #posSidebarCol { display: none !important; }
        .section-header { flex-direction: column; align-items: flex-start; gap: 8px; }
        .section-title { font-size: 17px; }
        [style*="grid-template-columns: repeat(4, 1fr)"],
        [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
        [style*="grid-template-columns: repeat(3, 1fr)"],
        [style*="grid-template-columns:repeat(3,1fr)"],
        #shiftSummaryCards { grid-template-columns: 1fr !important; gap: 8px !important; }
        [style*="grid-template-columns: repeat(2, 1fr)"],
        [style*="grid-template-columns:repeat(2,1fr)"],
        [style*="grid-template-columns: 2fr 1fr"],
        [style*="grid-template-columns:2fr 1fr"],
        [style*="grid-template-columns: 1fr 1fr"],
        [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; gap: 8px !important; }
        [style*="grid-template-columns:2fr 1fr 1fr"],
        [style*="grid-template-columns: 2fr 1fr 1fr"],
        [style*="grid-template-columns:1fr 1fr 1fr"],
        [style*="grid-template-columns: 1fr 1fr 1fr"] { grid-template-columns: 1fr !important; gap: 8px !important; }
        /* v94b: PIN pad ALTIJD 3 kolommen, ook op klein scherm */
        #loginScreen [style*="grid-template-columns: repeat(3"],
        #loginScreen [style*="grid-template-columns:repeat(3"],
        .pin-pad-grid { grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; }
        #loginScreen .dp-input-lg { padding: 12px; font-size: 18px; }
        #loginScreen { padding: 12px; }
        #loginScreen > div { padding: 24px !important; max-width: 340px !important; }
        [style*="grid-template-columns: repeat(5, 1fr)"],
        [style*="grid-template-columns:repeat(5,1fr)"],
        #businessTypeSelector { grid-template-columns: repeat(2, 1fr) !important; gap: 6px !important; }
        [style*="grid-template-columns:repeat(auto-fill"],
        [style*="grid-template-columns: repeat(auto-fill"],
        #activeOrdersGrid, #hotelRoomsGrid, #adminStats { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: 8px !important; }
        .menu-overlay { padding: 0 !important; }
        .menu-modal { width: 100vw !important; height: 100vh !important; height: 100dvh !important; border-radius: 0 !important; max-width: 100% !important; }
        .menu-modal-header { padding: 10px 12px; }
        .menu-modal-title { font-size: 15px; }
        .menu-modal-content { flex-direction: column !important; }
        .menu-categories {
            width: 100% !important; min-width: 100% !important; flex-direction: row !important; display: flex !important;
            overflow-x: auto !important; overflow-y: hidden !important; border-right: none !important;
            border-bottom: 1px solid #3d4149 !important; padding: 8px !important; gap: 6px !important;
            max-height: 52px !important; flex-shrink: 0 !important;
        }
        .menu-items-area { padding: 10px; flex: 1; min-height: 0; overflow-y: auto; }
        .menu-items-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important; gap: 8px !important; }
        /* Cart column full width on mobile */
        .menu-modal-content > div:last-child {
            width: 100% !important; min-width: 0 !important;
            max-height: 45vh; border-radius: 0 !important;
        }
        #authScreen > div { width: 95% !important; max-width: 380px !important; }
        #loginScreen > div { width: 95% !important; max-width: 380px !important; padding: 24px !important; }
        #settingsModalInner {
            position: fixed !important; top: 0 !important; right: 0 !important; left: 0 !important; bottom: 0 !important;
            width: 100vw !important; height: 100vh !important; height: 100dvh !important;
            max-width: 100% !important; max-height: 100% !important; border-radius: 0 !important; resize: none !important;
        }
        #settingsModalInner > div:nth-child(2) > div:first-child {
            width: 100% !important; min-width: 0 !important; flex-direction: row !important; display: flex !important;
            overflow-x: auto !important; overflow-y: hidden !important; border-right: none !important;
            border-bottom: 1px solid #2d3139 !important; padding: 6px !important; gap: 4px !important;
            flex-shrink: 0 !important; max-height: 50px !important;
        }
        #settingsModalInner .settings-tab, #settingsModalInner .s-tab { white-space: nowrap !important; padding: 6px 10px !important; font-size: 11px !important; border-left: none !important; border-radius: 6px !important; flex-shrink: 0 !important; }
        #settingsModalInner .s-tab-icon { font-size: 11px !important; width: auto !important; }
        #settingsModalInner > div:nth-child(2) { flex-direction: column !important; }
        #settingsModalInner > div:nth-child(2) > div:last-child { padding: 16px !important; }
        #settingsModalInner {
            min-width: 0 !important;
            min-height: 0 !important;
            overflow: hidden !important;
        }
        #settingsModalInner::after { display: none !important; }
        #settingsModalInner .menu-modal-header {
            min-height: 54px !important;
            padding: 8px 10px !important;
            gap: 8px !important;
            cursor: default !important;
        }
        #settingsModalInner .menu-modal-title {
            font-size: 16px !important;
            min-width: 0 !important;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
        }
        #settingsThemeToggle {
            max-width: 104px !important;
            min-height: 40px !important;
            padding: 6px 8px !important;
            overflow: hidden !important;
            text-overflow: ellipsis !important;
            white-space: nowrap !important;
        }
        #settingsModalInner > div:nth-child(2) {
            flex: 1 1 auto !important;
            min-height: 0 !important;
            flex-direction: column !important;
            overflow: hidden !important;
        }
        #settingsModalInner > div:nth-child(2) > div:first-child {
            max-height: none !important;
            min-height: 54px !important;
            padding: 6px !important;
            scroll-snap-type: x proximity;
            -webkit-overflow-scrolling: touch;
        }
        #settingsModalInner > div:nth-child(2) > div:first-child::-webkit-scrollbar { display: none; }
        #settingsModalInner .settings-tab,
        #settingsModalInner .s-tab {
            width: auto !important;
            min-width: max-content !important;
            min-height: 42px !important;
            white-space: nowrap !important;
            padding: 8px 12px !important;
            font-size: 12px !important;
            border-left: none !important;
            border-bottom: 3px solid transparent !important;
            border-radius: 8px !important;
            flex-shrink: 0 !important;
            scroll-snap-align: start;
        }
        #settingsModalInner .settings-tab.active,
        #settingsModalInner .s-tab.active {
            border-bottom-color: #d4845c !important;
        }
        #settingsModalInner > div:nth-child(2) > div:last-child {
            flex: 1 1 auto !important;
            min-height: 0 !important;
            padding: 14px !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch;
        }
        #settingsModalInner .s-panel-title { font-size: 18px !important; margin-bottom: 4px !important; }
        #settingsModalInner .s-panel-desc { font-size: 12px !important; margin-bottom: 16px !important; }
        #settingsModalInner .s-section { margin-bottom: 18px !important; }
        #settingsModalInner .s-section,
        #settingsModalInner .s-card,
        #settingsModalInner .s-link-card {
            border-radius: 8px !important;
        }
        #settingsModalInner .s-grid-2,
        #settingsModalInner .s-grid-3,
        #settingsModalInner .sys-grid,
        #settingsModalInner #sysDownloadsList,
        #settingsModalInner .s-business-address-grid,
        #settingsModalInner #shiftSummaryCards,
        #settingsModalInner [style*="grid-template-columns"] {
            grid-template-columns: 1fr !important;
            gap: 10px !important;
        }
        #settingsModalInner .s-row,
        #settingsModalInner .s-link-card {
            align-items: flex-start !important;
            gap: 10px !important;
        }
        #settingsModalInner .s-row {
            flex-wrap: wrap !important;
        }
        #settingsModalInner .s-toggle {
            margin-left: auto !important;
        }
        #settingsModalInner .dp-input,
        #settingsModalInner input,
        #settingsModalInner select,
        #settingsModalInner textarea {
            max-width: 100% !important;
            box-sizing: border-box !important;
        }
        #settingsModalInner button {
            max-width: 100% !important;
            white-space: normal !important;
        }
        #settingsModalInner .s-btn,
        #settingsModalInner .s-btn-block {
            width: 100% !important;
        }
        #publicWebsiteUrl {
            min-width: 0 !important;
            width: 100% !important;
            flex-basis: 100% !important;
        }
        #settingsModalInner .u-auto-1g,
        #settingsModalInner .u-flex-g8-wrap {
            display: grid !important;
            grid-template-columns: 1fr !important;
            gap: 8px !important;
        }
        #settingsModalInner .u-grid-row-5col {
            grid-template-columns: 44px 1fr !important;
            align-items: center !important;
        }
        /* Deze regels staan bewust na de oude horizontale tab-stijlen. */
        #settingsModalInner .settings-layout > .s-sidebar {
            position: absolute !important;
            top: 0 !important;
            bottom: 0 !important;
            left: 0 !important;
            width: min(300px, 82vw) !important;
            min-width: min(300px, 82vw) !important;
            min-height: 0 !important;
            max-height: none !important;
            display: flex !important;
            flex-direction: column !important;
            overflow-x: hidden !important;
            overflow-y: auto !important;
            padding: 10px !important;
            gap: 4px !important;
            border-right: 1px solid var(--border-color) !important;
            border-bottom: none !important;
        }
        #settingsModalInner .settings-layout > .s-sidebar .settings-tab {
            width: 100% !important;
            min-width: 0 !important;
            min-height: 46px !important;
            flex-shrink: 0 !important;
            white-space: normal !important;
            padding: 10px 12px !important;
            border-left: 3px solid transparent !important;
            border-bottom: none !important;
            text-align: left !important;
        }
        #setupWizard > div { max-width: 100% !important; padding: 16px !important; margin: 16px auto !important; }
    }

    /* ═══ SMALL PHONE — max 480px ═══ */
    /* Instellingen als uitschuifmenu op gsm en tablet-portret. Grens 1024 = dezelfde
       waarde als SETTINGS_COMPACT_MAX in settings.js; lopen die uit elkaar, dan zet de
       CSS de zijbalk vast terwijl de JS er een lade van maakt (of omgekeerd). Stond op
       1280: dat trok ook brede kassaschermen in de gsm-weergave. */
    @media (max-width: 1024px) {
        #settingsNavBtn { display:inline-flex !important; }
        #settingsModalInner .menu-modal-header { position:relative !important; padding-right:58px !important; }
        #settingsModalInner .settings-header-spacer { display:none !important; }
        #settingsModalInner .menu-modal-title { flex:1 1 auto !important; text-align:left !important; margin-left:10px !important; }
        #settingsModalInner .settings-header-actions { flex:0 0 auto !important; margin-left:auto !important; }
        #settingsCloseBtn {
            position:absolute !important; z-index:8 !important; top:50% !important; right:10px !important;
            transform:translateY(-50%) !important; width:40px !important; height:40px !important; margin:0 !important;
        }
        #settingsModalInner .settings-layout { position:relative !important; }
        #settingsModalInner .settings-layout > .s-sidebar {
            position:absolute !important; z-index:6 !important; inset:0 auto 0 0 !important;
            width:min(310px,84vw) !important; min-width:min(310px,84vw) !important;
            height:100% !important; min-height:0 !important; max-height:none !important;
            display:flex !important; flex-flow:column nowrap !important; align-items:stretch !important;
            justify-content:flex-start !important; gap:4px !important; padding:10px !important;
            overflow-x:hidden !important; overflow-y:auto !important;
            border-right:1px solid var(--border-color) !important; border-bottom:0 !important;
            background:var(--bg-secondary) !important; box-shadow:12px 0 28px rgba(0,0,0,.3) !important;
            transform:translateX(-105%) !important;
        }
        #settingsModalInner.settings-nav-open .settings-layout > .s-sidebar { transform:translateX(0) !important; }
        #settingsModalInner .settings-layout > .s-sidebar > .settings-tab,
        #settingsModalInner .settings-layout > .s-sidebar > .s-tab {
            display:flex !important; align-items:center !important; justify-content:flex-start !important;
            flex:0 0 46px !important; width:100% !important; min-width:0 !important; max-width:none !important;
            height:46px !important; min-height:46px !important; margin:0 !important; padding:10px 12px !important;
            white-space:normal !important; text-align:left !important;
            border-left:3px solid transparent !important; border-bottom:0 !important; border-radius:8px !important;
            scroll-snap-align:none !important;
        }
        #settingsModalInner .settings-layout > .s-sidebar > .settings-tab span,
        #settingsModalInner .settings-layout > .s-sidebar > .s-tab span { display:block !important; width:100% !important; }
        #settingsModalInner .settings-layout > .s-content { width:100% !important; min-width:0 !important; flex:1 1 auto !important; }
    }

    @media (max-width: 480px) {
        .content { padding: 8px; }
        .section-title { font-size: 15px; }
        .header-title { font-size: 13px; }
        #clockTime { font-size: 15px !important; }
        [style*="grid-template-columns: repeat(2, 1fr)"],
        [style*="grid-template-columns:repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
        #loginScreen [style*="grid-template-columns"] { grid-template-columns: repeat(3, 1fr) !important; }
        #loginScreen .dp-input-lg { padding: 10px; font-size: 16px; }
        #wizStep1 [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
        .menu-items-grid { grid-template-columns: repeat(2, 1fr) !important; }
    }

    /* --- LANDSCAPE --- */
    @media (max-height: 500px) and (orientation: landscape) {
        .header { height: 42px; min-height: 42px; }
        .content { padding: 8px; }
    }

    /* --- KORTE VENSTERS: PIN-inlogkaart compacter maken zodat het hele
       inlogblok (tot en met de 'Inloggen'-knop) binnen beeld valt zonder
       scrollen, ook in een klein desktop-venster. Hoogte-gebaseerd, want
       de breedte kan ruim zijn terwijl het venster laag is. --- */
    @media (max-height: 780px) {
        #loginScreen { padding: 10px 0 !important; align-items: center !important; }
        #loginScreen > div { padding: 22px 30px !important; }
        #loginScreen > div > div:first-child { margin-bottom: 14px !important; }
        #loginScreen > div > div:first-child > div:first-child {
            width: 56px !important; height: 56px !important; font-size: 30px !important; margin-bottom: 8px !important;
        }
        #loginScreen #pinLoginTitle { font-size: 19px !important; margin-bottom: 4px !important; }
        #loginScreen .u-auto-1f { margin-bottom: 12px !important; }
        #loginScreen #employeeSelect, #loginScreen #pinInput { padding: 9px !important; }
        #loginScreen #pinInput { font-size: 20px !important; }
        #loginScreen .dp-input-lg { padding: 11px !important; font-size: 18px !important; }
        #loginScreen button[style*="padding: 18px"] { padding: 11px !important; }
        #loginScreen [style*="grid-template-columns: repeat(3"] { gap: 7px !important; margin-bottom: 12px !important; }
        #loginScreen button[style*="padding: 14px"] { padding: 11px !important; }
        #loginScreen > div > div:last-of-type { margin-top: 10px !important; padding: 9px !important; }
    }
    @media (max-height: 620px) {
        #loginScreen > div { padding: 16px 26px !important; }
        #loginScreen > div > div:first-child { margin-bottom: 8px !important; }
        #loginScreen > div > div:first-child > div:first-child {
            width: 44px !important; height: 44px !important; font-size: 24px !important; margin-bottom: 6px !important;
        }
        #loginScreen > div > div:first-child > p { display: none !important; }
        #loginScreen .u-auto-1f { margin-bottom: 8px !important; }
        #loginScreen #pinInput { font-size: 18px !important; }
        #loginScreen .dp-input-lg { padding: 8px !important; font-size: 16px !important; }
        #loginScreen button[style*="padding: 18px"] { padding: 8px !important; }
        #loginScreen [style*="grid-template-columns: repeat(3"] { gap: 6px !important; margin-bottom: 8px !important; }
        #loginScreen button[style*="padding: 14px"] { padding: 9px !important; }
        #loginScreen > div > div:last-of-type { display: none !important; }
    }

    /* --- LARGE DESKTOP --- */
    @media (min-width: 1440px) {
        .menu-modal-content { grid-template-columns: 170px 1fr 340px !important; }
        .menu-items-grid { grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)) !important; }
    }
    @media (min-width: 1800px) {
        .menu-items-grid { grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)) !important; }
    }

    /* --- PRINT --- */
    @media print {
        .sidebar, .header, #mobileMenuBtn, #versionBanner { display: none !important; }
        .main-content { margin: 0; }
        .content { padding: 0; overflow: visible; }
    }

    /* --- TOUCH --- */
    @media (hover: none) and (pointer: coarse) {
        .nav-item { padding: 11px 16px; min-height: 44px; }
        button, .order-type-tab, select, input { min-height: 44px; }
    }
