*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:#f6f8fb}a{color:inherit}
.app-shell{min-height:100vh;display:flex}.sidebar{width:232px;background:#0f1c2e;color:#fff;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;padding:22px 10px}.side-brand{height:64px;padding:0 12px 18px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:18px}.side-brand img{width:105px;height:auto;display:block}.navitem{height:48px;border-radius:9px;display:flex;align-items:center;gap:14px;padding:0 14px;margin:3px 0;text-decoration:none;font-weight:650;color:#e9eef7}.navitem.active{background:#1261e8}.navitem.mutednav{opacity:.92}.side-footer{margin-top:auto;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:14px;color:#fff;font-weight:650}.side-footer small{opacity:.7}.content{margin-left:232px;flex:1;padding:26px 32px;max-width:1500px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.topbar h1{font-size:28px;margin:0;font-weight:800}.btn{border:0;border-radius:9px;padding:12px 18px;background:#e9edf3;color:#172033;text-decoration:none;font-weight:750;cursor:pointer}.btn.primary{background:#1261e8;color:#fff}.stats{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:22px}.stat{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:16px;display:flex;align-items:center;gap:12px;text-decoration:none;min-height:82px}.stat.selected{box-shadow:inset 0 -2px 0 #1261e8}.stat b{display:block;font-size:22px}.stat small{display:block;color:#667085;margin-top:2px}.staticon{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;font-size:11px}.staticon.all{background:#e7ebf0;color:#5f6b7a}.staticon.new{background:#dbeafe;color:#2563eb}.staticon.working{background:#ffedd5;color:#ea580c}.staticon.waiting{background:#ede9fe;color:#7c3aed}.staticon.ready{background:#dcfce7;color:#16a34a}.staticon.picked_up{background:#e5e7eb;color:#4b5563}.filters{display:flex;gap:12px;margin-bottom:14px}.searchbox{background:#fff;border:1px solid #dfe5ec;border-radius:9px;display:flex;align-items:center;gap:8px;padding:0 14px;flex:1;max-width:620px;color:#667085;font-size:23px}.searchbox input{border:0;outline:0;width:100%;font-size:15px;padding:13px 0;background:transparent}.filters select{border:1px solid #dfe5ec;border-radius:9px;background:#fff;padding:0 16px;font:inherit;color:#172033;min-width:180px}.card{background:#fff;border:1px solid #e1e6ed;border-radius:11px;box-shadow:0 2px 7px #00000008;padding:18px}.tablehead{display:flex;align-items:center;justify-content:space-between;padding:0 6px 14px}.tablehead h2{margin:0;font-size:20px}.tablehead span{color:#667085;font-size:13px}.table{width:100%}.row{display:grid;grid-template-columns:1.25fr 1.35fr 1fr 150px;gap:18px;align-items:center;padding:16px 10px;border-top:1px solid #edf0f4;text-decoration:none}.row.head{font-size:11px;text-transform:uppercase;color:#667085;font-weight:800;padding-top:8px;padding-bottom:10px}.repairrow:hover{background:#f8fafc}.row strong{display:block;font-size:15px}.row small{display:block;color:#667085;margin-top:3px}.badge{font-style:normal;display:inline-block;border-radius:7px;padding:6px 10px;font-size:12px;font-weight:750}.badge.new{background:#dbeafe;color:#1d4ed8}.badge.working{background:#ffedd5;color:#c2410c}.badge.waiting{background:#ede9fe;color:#6d28d9}.badge.waiting_parts{background:#fef3c7;color:#b45309}.badge.ready{background:#dcfce7;color:#15803d}.badge.picked_up{background:#e5e7eb;color:#374151}.actions{display:flex;gap:8px}.action{width:38px;height:38px;border:1px solid #dfe5ec;border-radius:8px;display:grid;place-items:center;color:#172033;background:#fff;font-size:16px}.empty{text-align:center;padding:50px;color:#667085}.flash{padding:13px 16px;border-radius:9px;margin-bottom:15px}.flash.success{background:#dcfce7;color:#166534}.flash.error{background:#fee2e2;color:#991b1b}
.formcard,.detail{max-width:850px;margin:0 auto;background:#fff;border:1px solid #e1e6ed;border-radius:12px;padding:24px}.formcard h1,.detail h1{margin-top:0}.muted{color:#667085}label{display:block;font-weight:700;margin:17px 0}input,textarea{width:100%;margin-top:7px;border:1px solid #d5dbe3;border-radius:8px;padding:12px;font:inherit}textarea{resize:vertical}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.actions{margin-top:22px;display:flex;gap:10px}.detailtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detailtop h1{margin:2px 0 0}.info{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:18px}.info small{display:block;color:#667085;text-transform:uppercase;font-size:11px;font-weight:800;margin-bottom:5px}.info strong{display:block;font-size:17px}.info p{white-space:pre-wrap;margin:0}.statusbuttons{display:flex;gap:9px;flex-wrap:wrap}.statusbtn{border:0;border-radius:8px;padding:11px 14px;font-weight:700;cursor:pointer;opacity:.55}.statusbtn.active{opacity:1;box-shadow:0 0 0 3px #fff,0 0 0 5px #1261e8}.delete{margin-top:20px;border:0;background:none;color:#b42318;cursor:pointer}
@media(max-width:900px){.sidebar{width:70px;padding:18px 8px}.side-brand{padding:0 5px 15px}.side-brand img{width:58px}.navitem{justify-content:center;padding:0;font-size:20px}.navitem span,.side-footer{display:none}.content{margin-left:70px;padding:20px 16px}.stats{grid-template-columns:repeat(3,1fr)}.row{grid-template-columns:1.3fr 1fr 130px}.row.head span:last-child,.repairrow .actions{display:none}}
@media(max-width:600px){.sidebar{display:none}.content{margin-left:0;padding:14px 10px}.topbar h1{font-size:23px}.topbar .btn{padding:10px 12px}.stats{grid-template-columns:1fr 1fr;gap:8px}.stat{padding:11px;min-height:68px}.stat b{font-size:18px}.filters{display:grid;grid-template-columns:1fr}.searchbox{max-width:none}.filters select{height:46px}.card{padding:12px}.row{grid-template-columns:1fr auto;gap:8px;padding:13px 5px}.row>:nth-child(2){display:block;font-size:13px}.row>:nth-child(3){grid-column:2;grid-row:1;align-self:center}.row.head>:nth-child(2){display:none}.row.head{grid-template-columns:1fr auto}.repairrow .actions{display:none}.grid,.info{grid-template-columns:1fr}.actions{flex-direction:column}.actions .btn{width:100%}.detailtop{align-items:flex-start}.formcard,.detail{padding:16px}.brand img{width:70px}}

.settingrow{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #edf0f4}.settingrow span{color:#667085}.settingrow strong{font-weight:700}

select{width:100%;margin-top:7px;border:1px solid #d5dbe3;border-radius:8px;padding:12px;font:inherit;background:#fff}.bonline{display:grid;grid-template-columns:1fr 90px 150px;gap:8px;margin-bottom:8px}.bonview{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf0f4}.bonview small{display:block;color:#667085;margin-top:3px}.bonsummary{text-align:right;margin-top:20px}@media(max-width:600px){.bonline{grid-template-columns:1fr 70px 120px}}

.topbar>.actions{display:flex;align-items:center;gap:8px}.topbar>.actions form{margin:0}.topbar>.actions .delete{margin:0}

.finance-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.finance-card{background:#fff;border:1px solid #e1e6ed;border-radius:11px;padding:20px;box-shadow:0 2px 7px #00000008}
.finance-card span{display:block;color:#667085;font-size:14px;font-weight:700}
.finance-card strong{display:block;font-size:25px;margin:9px 0 4px}
.finance-card small{color:#667085}
.finance-card-wide{margin-bottom:16px}
.finance-note p{margin-bottom:0;color:#667085}
@media(max-width:1100px){.finance-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.finance-grid{grid-template-columns:1fr 1fr}.finance-card{padding:14px}.finance-card strong{font-size:19px}.finance-card-wide .row{grid-template-columns:1fr auto}.finance-card-wide .row>:nth-child(2),.finance-card-wide .row>:nth-child(3){display:none}}

.excel-link{display:inline-block;margin-top:10px;font-size:12px;font-weight:750;color:#1261e8;text-decoration:none}
.excel-link:hover{text-decoration:underline}
@media(max-width:600px){.topbar{gap:8px}.topbar .btn{font-size:12px}}

.range-export{margin-bottom:16px}
.range-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:16px 0 8px}
.range-form label{min-width:180px;font-weight:700}
.range-form input{display:block;width:100%;box-sizing:border-box;margin-top:6px;border:1px solid #d5dbe3;border-radius:8px;padding:11px;font:inherit;background:#fff}
@media(max-width:600px){.range-form{display:grid;grid-template-columns:1fr}.range-form label{min-width:0}}

/* V19: mobiele navigatie */
@media (max-width:700px){
  .app-shell{display:flex;flex-direction:column;min-height:100vh}
  .sidebar{position:sticky;top:0;z-index:100;width:100%;height:auto;min-height:0;padding:8px 10px 9px;box-sizing:border-box;background:#0f1c2e;box-shadow:0 2px 10px rgba(0,0,0,.18)}
  .side-brand{height:38px;display:flex;align-items:center;padding:0 4px 6px;border-bottom:1px solid rgba(255,255,255,.10);margin-bottom:5px}
  .side-brand img{width:72px;height:auto;max-height:34px;object-fit:contain;object-position:left center}
  .sidebar nav{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px 0 3px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sidebar nav::-webkit-scrollbar{display:none}
  .sidebar .navitem{flex:0 0 auto;min-height:40px;padding:8px 11px;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:13px;line-height:1}
  .sidebar .navitem span{display:inline}
  .sidebar .navitem.active{background:#1769e8;color:#fff}
  .side-footer{display:none}
  .content{width:100%;min-width:0;box-sizing:border-box;padding:16px 14px 30px}
  .topbar{flex-wrap:wrap}
}

.receiptrow{cursor:pointer}
.receiptrow:hover{background:#f8fafc}
.paymentcheck{display:flex;justify-content:flex-start;align-items:center}
.paymentcheck form{margin:0}
.eurocheck{width:36px;height:36px;border:0;border-radius:9px;background:#e6e9ee;color:#6b7280;font-size:20px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.eurocheck.confirmed{background:#d9f7e4;color:#159447;box-shadow:inset 0 0 0 1px #b7e9ca}
.eurocheck:active{transform:scale(.94)}
@media(max-width:700px){
  .receipts .table{}
}
@media(max-width:600px){
  .receiptrow{grid-template-columns:1.3fr .8fr auto}
  .receiptrow>span:nth-child(2){display:none}
  .receiptrow>span:nth-child(3){display:block}
  .receiptrow>span:nth-child(4){display:none}
  .receiptrow>span:nth-child(5){display:flex}
}

.backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.backup-state{display:flex;align-items:center;gap:10px;padding:13px;border-radius:10px;margin:12px 0}
.backup-state.ok{background:#e9f9ef;color:#157a3b}
.backup-state.bad{background:#fff0f0;color:#b42318}
.backup-dot{width:11px;height:11px;border-radius:50%;background:currentColor;display:inline-block}
.backup-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px;padding:13px 0;border-top:1px solid #edf0f4}
.backup-row small{display:block;color:#667085;margin-top:3px}
@media(max-width:700px){.backup-grid{grid-template-columns:1fr}.backup-row{grid-template-columns:1fr auto}.backup-row form{grid-column:1/-1}.backup-row form .btn{width:100%}}

.tapstatus{display:inline-flex;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;font-size:23px}
.tapstatus.approved{color:#159447}.tapstatus.failed{color:#d92d20}.tapstatus.pending{color:#98a2b3}
@media(max-width:600px){.receiptrow{grid-template-columns:1.2fr auto auto}.receiptrow>span:nth-child(2),.receiptrow>span:nth-child(3),.receiptrow>span:nth-child(4){display:none}.receiptrow>span:nth-child(5),.receiptrow>span:nth-child(6){display:flex}}

.repair-total{font-size:24px}
.repair-cost-list{margin-top:8px}
.repair-cost-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid #edf0f4}
.repair-cost-row small{display:block;color:#667085;margin-top:3px}
.repair-cost-form{display:grid;grid-template-columns:1fr 100px 150px auto;gap:8px;margin-top:14px}
.repair-cost-form input{border:1px solid #d5dbe3;border-radius:8px;padding:10px;font:inherit;min-width:0}
.icon-delete{border:0;background:#fff0f0;color:#b42318;border-radius:7px;width:34px;height:34px;font-size:20px;cursor:pointer}
.linked-bon{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid #edf0f4;color:inherit;text-decoration:none}
.prefill-note{padding:10px 12px;border-radius:8px;background:#eef6ff;color:#175cd3;margin:10px 0 14px}
@media(max-width:700px){.repair-cost-form{grid-template-columns:1fr 80px 120px}.repair-cost-form .btn{grid-column:1/-1}.repair-cost-row{grid-template-columns:1fr auto auto}}
@media(max-width:480px){.repair-cost-form{grid-template-columns:1fr 85px}.repair-cost-form input:nth-child(3){grid-column:1/-1}.repair-total{font-size:20px}}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid2 label{min-width:0}@media(max-width:700px){.grid2{grid-template-columns:1fr}}

/* V42: duidelijke mobiele navigatie en betere mobiele weergave */
.mobile-header,.mobile-overlay{display:none}
@media(max-width:700px){
  .mobile-header{
    position:sticky;top:0;z-index:1000;
    height:58px;background:#0f1c2e;color:#fff;
    display:flex;align-items:center;justify-content:space-between;
    padding:7px 12px;box-shadow:0 2px 9px rgba(0,0,0,.22)
  }
  .mobile-brand img{display:block;width:76px;height:40px;object-fit:contain;object-position:left center}
  .mobile-menu-btn{
    border:1px solid rgba(255,255,255,.25);background:#1769e8;color:#fff;
    border-radius:9px;padding:9px 13px;font:700 14px inherit;cursor:pointer
  }
  .mobile-menu-btn span{margin-left:5px}
  .mobile-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:1090
  }
  body.mobile-menu-open .mobile-overlay{display:block}
  .sidebar{
    position:fixed;left:-285px;top:0;bottom:0;z-index:1100;
    width:270px!important;height:100vh!important;
    padding:22px 12px!important;
    transition:left .2s ease;overflow-y:auto;
    box-shadow:4px 0 18px rgba(0,0,0,.28)
  }
  body.mobile-menu-open .sidebar{left:0}
  .sidebar .side-brand{height:58px;padding:0 10px 14px;margin-bottom:16px}
  .sidebar .side-brand img{width:105px}
  .sidebar nav{display:block;overflow:visible;padding:0}
  .sidebar .navitem{
    width:100%;height:48px;min-height:48px;
    justify-content:flex-start;padding:0 14px;
    font-size:15px;gap:14px;margin:4px 0
  }
  .sidebar .navitem span{display:inline}
  .sidebar .side-footer{display:block;margin-top:20px}
  .content{margin-left:0!important;width:100%;padding:14px 10px 32px}
  .topbar{align-items:center}
  .topbar h1{font-size:22px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{min-width:0}
  .row{grid-template-columns:1.25fr .9fr auto}
  .row.head{grid-template-columns:1fr auto}
  .row.head span:nth-child(2){display:block}
  .repairrow .actions{display:none}
  .info{grid-template-columns:1fr}
  .detailtop{display:flex;flex-direction:column;gap:12px}
  .detailtop>.actions{width:100%}
  .detailtop>.actions .btn,.detailtop>.actions form{width:100%}
  .detailtop>.actions form .btn{width:100%}
  .actions{gap:8px}
  .formcard,.detail{width:100%;max-width:none;padding:15px}
}

/* V46: mobiele kop/menu en duidelijke datum in reparatie-overzicht */
@media(max-width:700px){
  .mobile-header{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:58px!important;
    z-index:5000!important;
    display:flex!important;
    visibility:visible!important;
  }
  .mobile-menu-btn{
    position:relative;
    z-index:5002;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-width:112px;
    min-height:42px;
    font-size:16px!important;
  }
  .mobile-header + .content,
  .content{padding-top:76px!important}
  .repairrow .repair-date{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    white-space:nowrap;
  }
  .repairrow .repair-date small{
    display:block;
    font-size:12px;
    line-height:1.2;
    color:#667085;
    margin-bottom:2px;
  }
}

/* V53: mobiele reparatielijst — vaste 2x2 indeling */
@media (max-width:700px){
  .table .row.repairrow{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:18px!important;
    row-gap:8px!important;
    align-items:center!important;
  }
  .table .row.repairrow > span:nth-child(1){
    grid-column:1!important;grid-row:1!important;
  }
  .table .row.repairrow > span:nth-child(3){
    grid-column:2!important;grid-row:1!important;
    text-align:left!important;
  }
  .table .row.repairrow > span:nth-child(4){
    grid-column:1!important;grid-row:2!important;
    justify-self:start!important;
  }
  .table .row.repairrow > span:nth-child(2){
    grid-column:2!important;grid-row:2!important;
    justify-self:start!important;
    text-align:left!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
  }
  .table .row.repairrow > span:nth-child(5){display:none!important}

  .table .row.head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:18px!important;
    row-gap:3px!important;
  }
  .table .row.head > span:nth-child(1){grid-column:1!important;grid-row:1!important}
  .table .row.head > span:nth-child(3){grid-column:2!important;grid-row:1!important}
  .table .row.head > span:nth-child(4){grid-column:1!important;grid-row:2!important}
  .table .row.head > span:nth-child(2){grid-column:2!important;grid-row:2!important;display:block!important}
  .table .row.head > span:nth-child(5){display:none!important}

  .repair-date small{
    display:block!important;
    font-size:12px!important;
    line-height:1.2!important;
    color:#667085!important;
    margin:0 0 2px!important;
  }
}

/* V53: menu button must remain above every mobile layer */
@media (max-width:700px){
  .mobile-header{z-index:10000!important;pointer-events:auto!important}
  .mobile-menu-btn{
    z-index:10002!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  .mobile-overlay{z-index:1000!important}
  .sidebar{z-index:9000!important}
}

/* V71: mobile menu is CSS-only, so it cannot fail because of JavaScript. */
.mobile-menu-toggle{display:none!important}

@media(max-width:700px){
  .mobile-menu-btn{
    position:relative!important;
    z-index:10003!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:112px!important;
    min-height:42px!important;
    padding:9px 13px!important;
    box-sizing:border-box!important;
    cursor:pointer!important;
    user-select:none!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
  }

  .mobile-overlay{
    display:none!important;
    position:fixed!important;
    inset:0!important;
    z-index:10001!important;
    background:rgba(0,0,0,.42)!important;
  }

  .mobile-menu-toggle:checked ~ .mobile-overlay{
    display:block!important;
  }

  .mobile-menu-toggle:checked ~ .app-shell .sidebar{
    left:0!important;
  }

  .sidebar{
    z-index:10002!important;
    pointer-events:auto!important;
    transition:left .2s ease!important;
  }

  .mobile-menu-toggle:checked ~ .mobile-header .mobile-menu-btn{
    background:#0f57c9!important;
  }
}

/* V72: the sidebar was still hidden by the older max-600px rule.
   When the mobile menu is opened it must explicitly become visible. */
@media (max-width:700px){
  .mobile-menu-toggle:checked ~ .app-shell .sidebar{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    left:0!important;
    pointer-events:auto!important;
  }

  .mobile-menu-toggle:checked ~ .app-shell .sidebar .navitem{
    display:flex!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  .mobile-menu-toggle:checked ~ .app-shell .sidebar nav{
    display:block!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
}

.pin-status{font-size:.82rem;font-weight:600;margin:6px 10px 8px;color:#98a2b3}
.pin-status.connected{color:#12b76a}
.pin-status.disconnected{color:#f04438}

/* V119: sidebar/logo polish + mobile responsiveness */
.side-brand{padding:16px 16px 7px!important;display:flex;justify-content:center;align-items:center}
.side-brand img{max-width:148px!important;width:88%!important;height:auto!important;display:block;object-fit:contain}
.sidebar nav{padding-top:7px!important}
.sidebar .nav-overview{margin-top:5px}
.sidebar nav{display:flex;flex-direction:column}
.sidebar .nav-settings{margin-top:auto}
.bonline input,.docline input,.docline select{font-size:16px}
button,.btn,input,select,textarea{touch-action:manipulation}
button:disabled,.btn:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){
  .content{padding:12px!important}
  .formcard,.card{padding:14px!important;border-radius:12px}
  .formcard h1{font-size:1.45rem;margin-top:0}
  .grid2{grid-template-columns:1fr!important}
  input,select,textarea,.btn,button{font-size:16px;min-height:44px}
  .bonline{display:grid!important;grid-template-columns:1fr 90px!important;gap:8px!important;padding:10px 0;border-bottom:1px solid #e5e7eb}
  .bonline input[name="description[]"]{grid-column:1/-1}
  .bonline input[name="price[]"]{min-width:0}
  .receipt-line-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
  .receipt-line-actions .btn{width:100%}
  .actions{gap:8px}
  .actions .btn{min-height:46px}
  .mobile-brand img{max-height:42px;width:auto}
  .mobile-header{min-height:58px}
}

/* V138: duidelijke klantzoeker bij Nieuwe reparatie */
.customer-search-wrap{
  position:relative;
  z-index:50;
}
.customer-search-wrap #customerSearch{
  width:100%;
  box-sizing:border-box;
}
.customer-search-wrap #customerSearch.customer-selected{
  border-color:#238636;
  box-shadow:0 0 0 2px rgba(35,134,54,.12);
}
.customer-suggestions{
  display:none;
  position:absolute;
  left:0;
  right:0;
  top:100%;
  margin-top:4px;
  background:#fff;
  border:1px solid #cfd6df;
  border-radius:10px;
  box-shadow:0 10px 28px rgba(0,0,0,.18);
  max-height:310px;
  overflow-y:auto;
  z-index:20000;
}
.customer-suggestion{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  width:100%;
  min-height:56px;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid #edf0f3;
  background:#fff;
  color:#111;
  text-align:left;
  cursor:pointer;
}
.customer-suggestion:last-child{border-bottom:0}
.customer-suggestion:hover,
.customer-suggestion:focus{
  background:#f3f6fa;
  outline:none;
}
.customer-suggestion strong{
  font-size:15px;
  line-height:1.25;
}
.customer-suggestion small{
  display:block;
  margin-top:3px;
  font-size:12px;
  color:#667085;
  line-height:1.3;
}
.customer-search-message{
  padding:12px;
  color:#667085;
  font-size:14px;
}
.customer-search-message.error{color:#b42318}
@media(max-width:700px){
  .customer-suggestions{
    position:fixed;
    left:10px;
    right:10px;
    top:150px;
    max-height:55vh;
    z-index:25000;
  }
  .customer-suggestion{
    min-height:64px;
    padding:12px 14px;
  }
}

.save-product-check{display:flex!important;align-items:center!important;gap:6px!important;font-size:13px!important;color:#344054!important;white-space:nowrap}
.save-product-check input{width:auto!important;min-height:auto!important;margin:0!important}
@media(max-width:700px){.save-product-check{white-space:normal!important;min-height:40px}}

/* V149 product/dienst autocomplete */
.product-search-wrap{position:relative;z-index:60;min-width:240px}
.product-search-wrap>input{width:100%;box-sizing:border-box}
.product-suggestions{display:none;position:absolute;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #cfd6df;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.18);max-height:300px;overflow-y:auto;z-index:21000}
.product-suggestion{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border:0;border-bottom:1px solid #edf0f3;background:#fff;color:#111;text-align:left;cursor:pointer}
.product-suggestion:last-child{border-bottom:0}.product-suggestion:hover,.product-suggestion:focus{background:#f3f6fa;outline:none}
.product-suggestion strong{font-size:14px}.product-suggestion small{margin-top:3px;color:#667085;font-size:12px}
.product-search-message{padding:12px;color:#667085;font-size:13px}.product-search-message.error{color:#b42318}
@media(max-width:700px){.product-search-wrap{width:100%}.product-suggestions{position:fixed;left:10px;right:10px;top:150px;max-height:55vh}}

/* V151 stable live product results */
.live-product-result{
 display:flex;flex-direction:column;align-items:flex-start;width:100%;
 padding:11px 12px;border:0;border-bottom:1px solid #edf0f3;
 background:#fff;color:#111;text-align:left;cursor:pointer;touch-action:manipulation;
}
.live-product-result:last-child{border-bottom:0}
.live-product-result:hover,.live-product-result:focus{background:#f3f6fa;outline:none}
.live-product-result strong{font-size:14px}
.live-product-result small{margin-top:3px;color:#667085;font-size:12px}

/* V154: native browser product suggestions; avoids disappearing custom popup */
.line-product-search{min-width:0}

/* V155: persistent product search popup */
.product-search-wrap{position:relative;z-index:80;min-width:0}
.product-results{
 display:none;position:absolute;left:0;right:0;top:100%;margin-top:4px;
 background:#fff;border:1px solid #cfd6df;border-radius:10px;
 box-shadow:0 10px 28px rgba(0,0,0,.18);max-height:320px;overflow-y:auto;
 z-index:30000;
}
.persistent-product-result{
 display:flex;flex-direction:column;align-items:flex-start;width:100%;
 padding:11px 12px;border:0;border-bottom:1px solid #edf0f3;
 background:#fff;color:#111;text-align:left;cursor:pointer;
}
.persistent-product-result:last-child{border-bottom:0}
.persistent-product-result:hover{background:#f3f6fa}
.persistent-product-result small{margin-top:3px;color:#667085;font-size:12px}
@media(max-width:700px){
 .product-results{position:fixed;left:10px;right:10px;top:150px;max-height:55vh}
}


/* V158: compacter reparatie-overzicht */
.repair-overview-card{padding:12px 14px}
.repair-overview-card .tablehead{padding:0 4px 8px}
.repair-overview-card .tablehead h2{font-size:18px}
.repair-overview-card .row{
  padding:9px 8px;
  gap:12px;
  min-height:0;
}
.repair-overview-card .row.head{
  padding-top:5px;
  padding-bottom:7px;
}
.repair-overview-card .row strong{font-size:14px}
.repair-overview-card .row small{margin-top:1px}
.repair-overview-card .badge{padding:5px 8px}

@media(max-width:600px){
  .repair-overview-card{padding:9px 10px}
  .repair-overview-card .row{padding:8px 4px;gap:6px}
}

.finance-export-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px}

/* V166 settings menu */
.settings-menu{margin-bottom:18px}
.settings-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.settings-menu-item{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid #d9dee7;border-radius:10px;text-decoration:none;color:inherit;background:#fff}
.settings-menu-item:hover,.settings-menu-item.active{border-color:#9aa6b2;background:#f7f8fa}
.settings-menu-item span{font-size:12px;color:#667085}
.settings-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.settings-subnav a{padding:8px 11px;border:1px solid #d9dee7;border-radius:8px;background:#fff;text-decoration:none;color:inherit;font-size:14px}
@media(max-width:760px){.settings-menu-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.settings-menu-grid{grid-template-columns:1fr}}

/* V172 web updater */
.version-badge{background:#fff;border:1px solid #d9dee7;border-radius:10px;padding:10px 14px}
.version-badge strong{color:#c40000;font-size:18px;margin-left:4px}
.update-status-card{border-left:4px solid #c40000}
.update-spinner{font-size:26px;display:inline-block;animation:k69spin 1s linear infinite}
.update-spinner.hidden{display:none}
@keyframes k69spin{to{transform:rotate(360deg)}}
.update-notice{margin-top:12px;padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;font-size:13px}
.update-upload-form,.rollback-form,.retention-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.update-upload-form label,.rollback-form label,.retention-form label{flex:1;min-width:220px}
.settings-subnav a.active{font-weight:700;border-color:#c40000}
@media(max-width:700px){
  .update-upload-form,.rollback-form,.retention-form{display:grid;grid-template-columns:1fr}
  .update-upload-form .btn,.rollback-form .btn,.retention-form .btn{width:100%}
}

/* V178 voorbeeldoffertes */
.quote-template-line{display:grid;grid-template-columns:minmax(240px,2.5fr) 90px 130px 150px minmax(150px,1fr) auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid #e5e7eb}
.quote-template-line label{margin:0}
@media(max-width:900px){.quote-template-line{grid-template-columns:1fr 1fr}.quote-template-line label:first-of-type{grid-column:1/-1}}
@media(max-width:600px){.quote-template-line{grid-template-columns:1fr}.quote-template-line label:first-of-type{grid-column:auto}}

/* V180 document images + quote-template button */
.quote-template-use{white-space:nowrap;min-width:150px;text-align:center;display:inline-flex;justify-content:center}
.document-image-section{margin-top:18px;padding-top:14px;border-top:1px solid #e5e7eb}
.document-image-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.inline-check{display:inline-flex!important;align-items:center;gap:6px;margin-top:6px;font-size:13px}
.inline-check input{width:auto!important}
@media(max-width:700px){.document-image-grid{grid-template-columns:1fr}}
.deposit-summary{display:grid;grid-template-columns:1fr auto;gap:8px 18px;margin-top:12px;padding-top:12px;border-top:1px solid #d9dee7;font-size:16px}.deposit-summary strong:last-child{font-size:20px}.deposit-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e5e7eb}.deposit-row div{display:flex;flex-direction:column;gap:3px}@media(max-width:700px){.deposit-row{grid-template-columns:1fr auto}}

/* V183: mobile navigation on Offertes/Facturen */
@media(max-width:700px){
  .documents-topbar{
    display:block;
    margin-bottom:18px;
  }
  .documents-topbar>div:first-child{
    margin-bottom:14px;
  }
  .documents-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    margin-top:0;
    width:100%;
  }
  .documents-actions .btn{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal;
    padding:12px 8px;
  }
  .documents-actions .btn:last-child{
    grid-column:1 / -1;
  }
}

/* V184: add quote/template lines to Products */
.inline-product-add{margin:0}
.btn.compact{padding:7px 10px;font-size:12px;white-space:nowrap}
.bonview:has(.inline-product-add){grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}
.quote-template-line{grid-template-columns:minmax(220px,2.3fr) 80px 125px 135px minmax(130px,1fr) minmax(170px,1.2fr) auto}
.quote-template-line .save-product-check{margin:0;display:flex;align-items:center;gap:7px;font-size:12px}
.quote-template-line .save-product-check input{width:auto;margin:0}
@media(max-width:900px){
 .quote-template-line{grid-template-columns:1fr 1fr}
 .quote-template-line .save-product-check{grid-column:1/-1}
}
@media(max-width:600px){
 .bonview:has(.inline-product-add){grid-template-columns:1fr auto}
 .inline-product-add{grid-column:1/-1}
 .inline-product-add .btn{width:100%}
}

/* V186: mobile quotation/invoice detail + easy preview */
.document-preview-btn{white-space:nowrap}
@media(max-width:700px){
  .document-detail-topbar{
    display:block;
    margin-bottom:18px;
  }
  .document-detail-topbar>div:first-child{
    width:100%;
    margin-bottom:14px;
  }
  .document-detail-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:10px;
    width:100%;
    margin-top:0;
  }
  .document-detail-actions>.btn,
  .document-detail-actions>form,
  .document-detail-actions>form>.btn,
  .document-detail-actions>form>.eurocheck{
    min-width:0;
    width:100%;
    box-sizing:border-box;
  }
  .document-detail-actions>.btn,
  .document-detail-actions>form>.btn{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    white-space:normal;
    padding:12px 8px;
    min-height:48px;
  }
  .document-detail-actions>form{
    margin:0;
  }
  .document-detail-actions .eurocheck{
    min-height:48px;
    border-radius:9px;
  }
  .document-detail-actions .document-preview-btn{
    grid-column:1 / -1;
    font-size:16px;
    white-space:nowrap;
  }
  .document-detail-topbar h1{
    overflow-wrap:anywhere;
  }
}

/* V188 — global mobile interface audit/fix.
   Prevent top action buttons from being pushed/clipped off the right side on ALL pages. */
@media(max-width:700px){
  .topbar{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
    width:100% !important;
    min-width:0 !important;
  }
  .topbar > *{
    min-width:0 !important;
    max-width:100% !important;
  }
  .topbar > .actions,
  .topbar .actions{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    width:100% !important;
    margin:0 !important;
  }
  .topbar .actions > a.btn,
  .topbar .actions > button.btn,
  .topbar .actions > form{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    margin:0 !important;
  }
  .topbar .actions > form > .btn,
  .topbar .actions > form > button{
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  .topbar .actions .btn{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:48px !important;
    padding:11px 8px !important;
    white-space:normal !important;
    text-align:center !important;
    overflow-wrap:anywhere !important;
  }

  /* Generic cards/tables must not force the complete page wider than the phone. */
  .card, .panel, main, .container, .content{
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  .table-wrap{
    max-width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}
@media(max-width:390px){
  .topbar > .actions,
  .topbar .actions{
    grid-template-columns:1fr !important;
  }
}

/* V189 — keep all mobile page content below the fixed K69 header.
   A later historical .content{padding:12px!important} rule accidentally removed
   the older 76px top clearance. */
@media(max-width:700px){
  .content{
    padding-top:82px !important;
    padding-right:12px !important;
    padding-bottom:32px !important;
    padding-left:12px !important;
  }
  .content > :first-child{
    margin-top:0 !important;
  }
}

/* V192: consistent button hierarchy */
.btn.selected-tab{background:#dbe7f7;color:#123b73;box-shadow:inset 0 0 0 1px #b9cce6}

/* V194: shared PIN status + manual double-check */
.invoice-payment-check{display:flex;align-items:center;gap:9px}
.document-detail-actions>.tapstatus{align-self:center;justify-self:center}
.deposit-row{grid-template-columns:minmax(210px,1fr) auto auto auto auto auto auto auto;gap:9px}
@media(max-width:900px){
  .deposit-row{grid-template-columns:minmax(0,1fr) auto auto}
  .deposit-row form,.deposit-row>a.btn{width:100%}
}
@media(max-width:600px){
  .deposit-row{grid-template-columns:1fr auto}
  .deposit-row .tapstatus{justify-self:end}
  .deposit-row form,.deposit-row>a.btn{grid-column:auto}
}

/* V195 — rustige mobiele documentacties */
.mobile-document-actions{display:none}
@media(max-width:700px){
 .document-detail-actions{display:none!important}
 .mobile-document-actions{display:block;margin:12px 0 18px}
 .mobile-payment-card,.mobile-more-actions{background:#fff;border:1px solid #dfe3ea;border-radius:18px;padding:16px;margin-bottom:11px}
 .mobile-payment-head{display:flex;justify-content:space-between;gap:10px;font-size:1.12rem}
 .mobile-payment-sub{color:#687386;margin:3px 0 12px}
 .mobile-pin-state{display:flex;align-items:center;gap:9px;padding:8px 0 13px;font-weight:700}
 .mobile-payment-buttons,.mobile-main-actions,.mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
 .mobile-payment-buttons form,.mobile-more-grid form{margin:0}
 .mobile-payment-buttons .btn,.mobile-main-actions .btn,.mobile-more-grid .btn{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;text-align:center}
 .primary-mobile{background:#1769e8!important;color:#fff!important;border-color:#1769e8!important}
 .mobile-main-actions{margin-bottom:11px}
 .mobile-more-actions{padding:0;overflow:hidden}
 .mobile-more-actions summary{cursor:pointer;list-style:none;padding:17px;text-align:center;font-weight:800}
 .mobile-more-actions summary::-webkit-details-marker{display:none}
 .mobile-more-grid{padding:0 11px 11px}
 .mobile-deposit-card{padding:15px!important;gap:9px!important}
 .mobile-deposit-card>div:first-child{grid-column:1/-1}
}

/* V196 — oude actieknoppen op mobiel echt volledig verbergen */
@media(max-width:700px){
  .document-detail-topbar > .document-detail-actions,
  .document-detail-topbar .actions.document-detail-actions{
    display:none !important;
    visibility:hidden !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .document-detail-topbar{
    align-items:flex-start;
  }
  .mobile-document-actions{
    display:block !important;
    clear:both;
  }
  .mobile-payment-card{
    margin-top:0;
  }
}

/* V198 — Agenda */
.agenda-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-align:center}
.agenda-nav div{display:flex;flex-direction:column;gap:3px}
.agenda-nav small{color:#687386}
.agenda-view-switch{display:flex;gap:8px;margin:10px 0 14px}
.agenda-desktop-week{background:#fff;border:1px solid #dfe3ea;border-radius:16px;overflow:hidden}
.agenda-week-head{display:grid;grid-template-columns:64px repeat(4,1fr);border-bottom:1px solid #dfe3ea}
.agenda-week-head>div{padding:10px;border-left:1px solid #edf0f4;display:flex;flex-direction:column;text-align:center}
.agenda-grid{display:grid;grid-template-columns:64px repeat(4,1fr);height:960px}
.agenda-times{display:grid;grid-template-rows:repeat(32,30px);background:#fafbfc}
.agenda-times>div{font-size:11px;color:#687386;padding:3px 6px;border-bottom:1px solid #f1f3f6}
.agenda-times>div.hour{border-bottom-color:#d9dee7;font-weight:700}
.agenda-day-column{position:relative;display:grid;grid-template-rows:repeat(32,30px);border-left:1px solid #e3e7ed}
.agenda-slot{display:block;border-bottom:1px solid #f0f2f5}
.agenda-slot.hour{border-bottom-color:#d7dce4}
.agenda-slot:hover{background:#f7faff}
.agenda-event{position:absolute;left:4px;right:4px;z-index:2;background:#eaf2ff;border-left:4px solid #1769e8;border-radius:7px;padding:5px 7px;text-decoration:none;color:#142033;overflow:hidden;box-sizing:border-box}
.agenda-event strong,.agenda-event small{display:block}
.agenda-event small{font-size:11px}
.agenda-mobile{display:none}
.agenda-sync-note{margin:12px 0;padding:12px;border-radius:10px;background:#f5f7fa;color:#566276;font-size:13px}
.agenda-quarter-grid{margin-top:14px;border-top:1px solid #e4e8ee}
.agenda-quarter-grid>a{display:grid;grid-template-columns:1fr auto;padding:9px 5px;text-decoration:none;color:inherit;border-bottom:1px solid #eef1f4}
.agenda-quarter-grid>a.hour{border-top:1px solid #cfd6df;font-weight:700}
.mobile-agenda-item-wrap{border-bottom:1px solid #edf0f4;padding:3px 0 8px}
.mobile-agenda-item{display:flex;justify-content:space-between;align-items:center;gap:10px;text-decoration:none;color:inherit;padding:10px 4px}
.mobile-agenda-item span:first-child{display:flex;flex-direction:column;gap:3px}
.agenda-copy-mini{display:inline-block;margin-left:4px;text-decoration:none;font-size:12px;color:#1769e8}
.mobile-week-list{display:flex;flex-direction:column;gap:10px}
.agenda-mobile-day h2{margin-top:0}
@media(max-width:700px){
 .agenda-desktop-week{display:none}
 .agenda-mobile{display:block}
 .agenda-view-switch{display:grid;grid-template-columns:1fr 1fr}
 .agenda-mobile-days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
 .agenda-mobile-days .btn{padding:8px 4px;font-size:12px;line-height:1.25}
 .agenda-nav{grid-template-columns:42px 1fr 42px}
}

.address-lookup-status{display:block;min-height:20px;margin:4px 0 10px}

/* V208 — agenda reistijd */
.agenda-travel-box{margin:14px 0;padding:14px;border:1px solid #dfe3ea;border-radius:14px;background:#f8fafc}
.agenda-travel-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.travel-result{margin-top:10px;padding:10px 12px;border-radius:9px;background:#eef6ff}
.travel-result.error{background:#fff1f1}
.agenda-travel-event{position:absolute;left:7px;right:7px;z-index:1;background:#fff4d6;border-left:4px solid #e6a700;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:700;box-sizing:border-box;overflow:hidden}

/* V210 agenda customer search */
.agenda-customer-search{position:relative}
.agenda-customer-results{display:none;position:absolute;left:0;right:0;z-index:40;background:#fff;border:1px solid #d8dee8;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.14);max-height:310px;overflow:auto}
.agenda-customer-results.open{display:block}
.agenda-customer-hit{display:block;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f4;padding:12px 14px;color:#172033}
.agenda-customer-hit:last-child{border-bottom:0}
.agenda-customer-hit strong,.agenda-customer-hit small{display:block}
.agenda-customer-hit small{margin-top:3px;color:#6c7585;font-weight:400}
.agenda-selected-customer{margin:6px 0 12px;color:#667085}
.agenda-no-results{padding:14px;color:#6c7585}

/* V211 — travel conflict warning */
.agenda-travel-conflict{margin:14px 0;padding:14px;border:1px solid #efb4b4;border-radius:12px;background:#fff1f1;display:flex;flex-direction:column;gap:9px}
.agenda-travel-conflict .btn{align-self:flex-start}

.agenda-diag-btn{display:block;margin:10px 0;width:100%;box-sizing:border-box;text-align:center}
.diag-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.diag-row{display:grid;grid-template-columns:36px 1fr;gap:10px;padding:12px;border:1px solid #dfe4eb;border-radius:12px}.diag-status{font-size:24px;font-weight:800;text-align:center}.diag-ok{background:#edf9f0}.diag-ok .diag-status{color:#159447}.diag-fail{background:#fff0f0}.diag-fail .diag-status{color:#c93838}.diag-detail{font-size:.9em;margin-top:4px;word-break:break-word;color:#606a78}

/* V216 settings > agenda */
.agenda-settings-list{display:flex;flex-direction:column;gap:8px}
.agenda-settings-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #e1e5eb;border-radius:12px}
.agenda-settings-row small{display:block;color:#687386;margin-top:3px}
@media(max-width:700px){.agenda-settings-row{grid-template-columns:1fr}.agenda-settings-row .btn{width:100%;box-sizing:border-box;text-align:center}}

/* V217 raw routing diagnostics */
.router-debug{margin-top:10px}.router-debug summary{cursor:pointer;font-weight:700}
.router-debug-label{font-weight:700;margin-top:10px}
.router-debug code,.router-debug pre{display:block;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:#f6f7f9;border:1px solid #e0e4e9;border-radius:8px;padding:9px;margin-top:5px;font-size:.78rem;max-height:340px;overflow:auto}

/* V220 visual agenda blocks */
.agenda-event.agenda-draggable{cursor:grab;overflow:visible}.agenda-event.agenda-draggable:active{cursor:grabbing}
.agenda-event.agenda-draggable>a{display:block;color:inherit;text-decoration:none;height:100%;overflow:hidden}
.agenda-resize-handle{position:absolute;left:10px;right:10px;bottom:-4px;height:10px;cursor:ns-resize;border-radius:8px;background:rgba(0,0,0,.18)}
.mobile-travel-block{background:#fff1c7;border-left:5px solid #e3a91b;border-radius:12px;padding:10px 12px;margin:8px 0 4px;display:flex;justify-content:space-between;gap:8px}
.mobile-appointment-block{background:#e7f0ff;border-left:5px solid #2876d7;border-radius:12px;margin:0 0 10px;overflow:hidden}
.mobile-appointment-block .mobile-agenda-item{margin:0;background:transparent;border:0}
.mobile-agenda-actions{display:flex;justify-content:space-between;align-items:center;padding:0 12px 9px}
.agenda-drag-hint{font-size:.78rem;color:#6d7787}

/* V221 — mobiele sleepgrepen, zonder lang indrukken */
.mobile-block-main{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:stretch}
.mobile-move-handle{
  border:0;border-left:1px solid rgba(0,0,0,.08);background:#d8e8ff;
  font-size:1.55rem;font-weight:800;touch-action:none;color:#1b4e8e;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.mobile-resize-handle{
  display:block;width:100%;height:20px;border:0;touch-action:none;position:relative;
  background:linear-gradient(to bottom,transparent 6px,rgba(20,50,90,.30) 6px,rgba(20,50,90,.30) 10px,transparent 10px);
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.mobile-resize-handle[data-label]:not([data-label=""])::after{
  content:attr(data-label);position:absolute;right:10px;bottom:16px;
  background:#10243a;color:#fff;padding:4px 7px;border-radius:7px;font-size:.75rem;
}
body.agenda-dragging-mobile{overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.mobile-appointment-block{transition:transform .08s linear}
.mobile-appointment-block .mobile-agenda-item{min-width:0}
@media(min-width:701px){.mobile-move-handle,.mobile-resize-handle{display:none}}

/* V223 — mobiele agenda op echte tijdlijn */
.agenda-mobile-timeline{display:grid;grid-template-columns:68px 1fr;gap:8px;position:relative;margin-top:12px}
.agenda-mobile-time-axis{position:relative;height:1344px}
.agenda-mobile-time-label{position:absolute;left:0;right:0;height:42px;font-size:.9rem;color:#687386;padding-top:4px;box-sizing:border-box}
.agenda-mobile-time-label.hour{font-weight:800;color:#1d2635}
.agenda-mobile-timeline-body{position:relative;height:1344px;border-left:1px solid #dde2e8}
.agenda-mobile-slot{position:absolute;left:0;right:0;height:42px;border-top:1px solid #e7eaf0;text-decoration:none;color:#687386;box-sizing:border-box}
.agenda-mobile-slot.hour{border-top:2px solid #d7dce4}
.agenda-mobile-slot span{position:absolute;right:8px;top:8px;font-size:1.1rem}
.agenda-mobile-positioned{position:absolute;left:8px;right:8px;z-index:4;margin:0;overflow:hidden}
.agenda-mobile-positioned-travel{position:absolute;left:8px;right:8px;z-index:3;margin:0;box-sizing:border-box;overflow:hidden}
.agenda-mobile-positioned .mobile-agenda-actions{padding-bottom:4px}
.agenda-mobile-positioned .mobile-resize-handle{position:absolute;left:0;right:0;bottom:0}

/* V224 — nette scheiding tussen reistijd en afspraak */
.agenda-mobile-positioned-travel{
  border-radius:10px;
  padding:4px 10px;
  min-height:0;
  line-height:1.05;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.agenda-mobile-positioned-travel strong,
.agenda-mobile-positioned-travel span{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.agenda-mobile-positioned{
  border-radius:10px;
}
.agenda-mobile-positioned .mobile-block-main{
  height:100%;
}
.agenda-mobile-positioned .mobile-agenda-item{
  min-height:0;
  padding-top:5px;
  padding-bottom:5px;
}
.agenda-mobile-positioned .mobile-agenda-actions{
  display:none;
}
.agenda-mobile-positioned .mobile-resize-handle{
  height:12px;
}

/* V225 — mobiel rustiger en afspraak betrouwbaar aanklikbaar */
.agenda-mobile-positioned-travel{
  left:10px; right:10px;
  padding:2px 9px;
  min-height:18px;
  border-radius:8px;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px;
  font-size:.78rem;
  line-height:1;
}
.agenda-mobile-positioned-travel .travel-time{
  font-weight:800;
  white-space:nowrap;
}
.agenda-mobile-positioned-travel .travel-mode{
  text-align:right;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.agenda-mobile-positioned{
  left:10px; right:10px;
  border-radius:8px;
  overflow:hidden;
  box-shadow:none;
}
.agenda-mobile-positioned .mobile-block-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) 48px;
  height:100%;
}
.agenda-mobile-positioned .mobile-agenda-edit-link{
  position:relative;
  z-index:8;
  display:flex;
  width:100%;
  height:100%;
  min-height:0;
  box-sizing:border-box;
  padding:5px 9px;
  align-items:flex-start;
  text-decoration:none;
  color:inherit;
  background:transparent;
  touch-action:manipulation;
}
.agenda-mobile-positioned .mobile-event-text{
  display:block;
  min-width:0;
  width:100%;
}
.agenda-mobile-positioned .mobile-event-text strong,
.agenda-mobile-positioned .mobile-event-text small{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  line-height:1.05;
}
.agenda-mobile-positioned .mobile-event-text strong{
  font-size:.86rem;
}
.agenda-mobile-positioned .mobile-event-text small{
  margin-top:3px;
  font-size:.72rem;
}
.agenda-mobile-positioned .mobile-move-handle{
  position:relative;
  z-index:9;
  width:48px;
  min-width:48px;
  height:100%;
  border:0;
  border-left:1px solid rgba(0,0,0,.08);
  border-radius:0;
  touch-action:none;
}
.agenda-mobile-positioned .mobile-resize-handle{
  position:absolute;
  z-index:10;
  left:8px;
  right:56px;
  bottom:0;
  width:auto;
  height:8px;
  padding:0;
  background:linear-gradient(to bottom,transparent 2px,rgba(20,50,90,.30) 2px,rgba(20,50,90,.30) 5px,transparent 5px);
  touch-action:none;
}

/* V226 — betrouwbare Android touch zones */
.agenda-mobile-positioned{pointer-events:auto!important}
.agenda-mobile-positioned .mobile-block-main{position:relative;z-index:20}
.agenda-mobile-positioned .mobile-agenda-edit-link{
  pointer-events:auto!important;cursor:pointer;-webkit-tap-highlight-color:rgba(40,118,215,.15)
}
.agenda-mobile-positioned .mobile-move-handle{
  pointer-events:auto!important;cursor:ns-resize;min-height:30px
}
.agenda-mobile-positioned .mobile-resize-handle{
  pointer-events:auto!important;cursor:ns-resize;height:10px
}
.agenda-mobile-slot{z-index:1}

/* V227 — soepel mobiel slepen */
.agenda-mobile-positioned .mobile-move-handle{
  touch-action:none!important;
  -webkit-user-select:none;
  user-select:none;
  min-width:52px;
}
.agenda-mobile-positioned .mobile-resize-handle{
  touch-action:none!important;
  -webkit-user-select:none;
  user-select:none;
  height:18px!important;            /* grotere onzichtbare raakzone */
  bottom:-4px!important;
  background:linear-gradient(to bottom,
    transparent 6px,
    rgba(20,50,90,.34) 6px,
    rgba(20,50,90,.34) 10px,
    transparent 10px)!important;
}
.agenda-mobile-drag-active,
.agenda-mobile-resize-active{
  z-index:50!important;
  opacity:.94;
  box-shadow:0 8px 22px rgba(0,0,0,.18)!important;
}
.agenda-mobile-drag-active{
  transition:none!important;
}
body.agenda-dragging-mobile{
  overscroll-behavior:none;
  touch-action:none;
}

/* V228 — mobiel alleen verplaatsen, geen duur-sleepgreep */
.mobile-resize-handle{display:none!important}
.agenda-mobile-positioned{transition:transform .05s linear, top .10s ease-out}

.agenda-time-mode,.agenda-confirm-actions{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0}.agenda-time-mode label,.agenda-confirm-actions label{display:flex;align-items:center;gap:8px}

/* V231 — gelijke radio-knoppen voor Exacte tijd / Tussen */
.agenda-time-mode input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  min-height:22px!important;
  margin:0;
  border:2px solid #7b8491;
  border-radius:50%;
  background:#fff;
  display:inline-grid;
  place-content:center;
  box-sizing:border-box;
}
.agenda-time-mode input[type="radio"]::before{
  content:"";
  width:12px;
  height:12px;
  border-radius:50%;
  transform:scale(0);
  transition:transform .08s ease-in-out;
  background:#1677f2;
}
.agenda-time-mode input[type="radio"]:checked{
  border-color:#1677f2;
}
.agenda-time-mode input[type="radio"]:checked::before{
  transform:scale(1);
}
.agenda-time-mode label{
  font-size:1rem;
  font-weight:700;
  gap:9px;
}

.settings-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkline{display:flex!important;align-items:center;gap:10px}.checkline input{width:auto!important}.google-calendar-status{margin-top:16px;padding:14px;border-radius:12px;background:#f3f6fa}@media(max-width:700px){.settings-two-col{grid-template-columns:1fr}}

.agenda-google-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.agenda-google-buttons form{margin:0}

/* V239: alleen mobiel slepen uit */
@media (max-width: 760px){.mobile-move-handle{display:none!important}.mobile-appointment-block{touch-action:auto!important}}

/* V240 desktop agenda polish */
@media (min-width: 761px){
  .agenda-week-grid{overflow:visible}
  .agenda-day-column{min-width:0;overflow:hidden}
  .agenda-draggable{
    box-sizing:border-box;
    overflow:hidden;
    cursor:grab;
    z-index:2;
  }
  .agenda-draggable:hover{z-index:5}
  .agenda-draggable.is-dragging{
    cursor:grabbing;
    z-index:20;
    opacity:.88;
    pointer-events:none;
  }
  .agenda-draggable .appointment-title,
  .agenda-draggable .appointment-meta{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .agenda-travel-block{
    box-sizing:border-box;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    z-index:1;
  }
}
