:root{--k:#144862;--kl:#e8f0f5;--lijn:#cdd4da;--grijs:#606870;--fout:#b00020;--foutbg:#fdecee;--goed:#107c41;--goedbg:#e6f4ea;--rand:#b7cad8;--geel:#fff4d6;--geeltxt:#785000;--oranje:#ffe2c2;--uit:#969ea6;--hover:#1f5c7a}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#1b1f23;font:15px/1.35 Lato,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
[hidden]{display:none!important}
a{color:var(--k)}
#testbalk{background:#d68000;color:#fff;text-align:center;font-weight:700;font-size:13px;padding:4px 8px;letter-spacing:.03em}
header{background:var(--k);color:#fff;padding:8px 12px 8px;position:relative;z-index:15}
.kb{display:flex;align-items:center;gap:8px}
.logo{display:flex;align-items:center;gap:8px;background:none;border:0;color:#fff;font-weight:700;font-size:16px;padding:0;min-height:44px;flex:1;text-align:left}
.logo img{border-radius:50%;border:2px solid #fff;background:#fff}
.wie{background:none;border:0;color:#fff;min-height:44px;padding:2px 4px;display:flex;align-items:center;gap:6px;max-width:46%;font-size:16px}
.wie b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wie span{font-size:12px;opacity:.8}
.tabs{display:flex;gap:4px;margin-top:8px}
.tabs button{flex:1;min-width:0;min-height:44px;background:var(--k);color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:6px;font-size:14px;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tabs button{font-weight:700}
.tabs button.actief{background:#fff;color:var(--k)}
.menu{position:absolute;z-index:20;top:100%;left:12px;width:320px;max-width:calc(100% - 24px);background:#fff;color:#1b1f23;border:1px solid var(--lijn);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.25);padding:8px;display:grid;gap:6px}
.menu .knop{width:100%}
.waas{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:10}
main{padding:12px 12px 40px}
h2{font-size:20px;margin:10px 0 2px}
.modus{font-size:17px;font-weight:700;margin:4px 0 0;padding-bottom:6px;border-bottom:2px solid #000}
.sub{color:var(--grijs);margin:2px 0 8px}.sub.rood{color:var(--fout)}
.uitleg{color:var(--grijs);font-size:14px;margin:6px 0}
.melding{border-radius:6px;padding:10px 12px;margin:8px 0;background:var(--kl);color:var(--k);white-space:pre-line}
.melding.fout{background:var(--foutbg);color:var(--fout)}.melding.goed{background:var(--goedbg);color:var(--goed)}
.scaninfo{color:var(--grijs);font-size:13px;margin:4px 0}
.rij{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.rij>*{flex:1 1 0;min-width:0}
.veld{display:flex;flex-direction:column;gap:2px;min-width:0}
.veld>span{font-size:13px;color:var(--grijs);font-weight:700}
.invoer{position:relative;display:flex}
input,select{width:100%;min-height:48px;border:1px solid var(--rand);border-radius:6px;padding:8px 10px;background:#fff;font-size:16px;min-width:0}
input:focus,select:focus{outline:2px solid var(--k);border-color:var(--k)}
.invoer input{padding-right:42px}
.invoer input::placeholder{font-size:14px}
.typ{position:absolute;right:2px;top:2px;bottom:2px;width:42px;border:0;background:var(--kl);border-radius:5px;color:var(--k);padding:0;display:flex;align-items:center;justify-content:center}
td>.voorb{display:block}
.knop{min-height:48px;border-radius:6px;border:1px solid var(--k);background:#fff;color:var(--k);padding:6px 14px;font-weight:700}
.knop.vol{background:var(--k);color:#fff}.knop.groen{background:var(--goed);border-color:var(--goed);color:#fff}
.knop.rood{background:var(--fout);border-color:var(--fout);color:#fff}.knop.klein{min-height:40px;padding:4px 10px;font-weight:400}
.knop:disabled{opacity:.5;cursor:default}
.knoppen{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.titel{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.titel h2{flex:1;min-width:60%}
table{width:100%;border-collapse:collapse;margin-top:6px}
th{text-align:left;font-size:12px;letter-spacing:.03em;padding:6px 4px;border-bottom:2px solid #000}
td{padding:8px 4px;border-bottom:1px solid var(--lijn);vertical-align:top}
.r{text-align:right}.c{text-align:center}
td.loc,.locg{font-weight:700;white-space:nowrap}
.locg{font-size:20px}
.naam{display:block;overflow-wrap:anywhere}
.ean{font-size:13px;color:var(--k);text-decoration:underline;background:none;border:0;padding:4px 0;min-height:32px;cursor:pointer;text-align:left}
.klein{font-size:13px;color:var(--grijs)}
.vak{width:64px;min-height:44px;border:1px solid #000;border-radius:2px;background:#fff;font-size:17px;font-weight:700;padding:0 6px}
input.vak{text-align:center;padding:0;font-size:17px;font-weight:700}
tr.gewijzigd td{background:var(--geel)}
tr.open:not(.bewerk) td{border-bottom:0}
.bewerk td{border-top:0;padding-top:0}
.bewerk .knoppen{justify-content:flex-end;align-items:center;margin:0}
.pm{width:48px;min-height:48px;border:1px solid var(--k);background:#fff;color:var(--k);border-radius:6px;font-size:22px;padding:0}
.ok{width:56px;min-height:48px;border:0;border-radius:6px;background:var(--uit);color:#fff;font-size:20px;font-weight:700}
.ok.aan{background:var(--goed)}.ok.slot{background:#fff;border:2px dashed var(--uit);color:var(--uit);font-size:13px}
.voorb{flex:1;font-size:14px}.voorb.af{color:var(--fout)}.voorb.in{color:var(--goed)}
.openbalk{display:flex;align-items:center;gap:8px;background:var(--geel);color:var(--geeltxt);border-radius:6px;padding:6px 10px;margin:8px 0;position:sticky;bottom:8px;z-index:5;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.openbalk span{flex:1}
.pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0}
.chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0}
.chips .knop{flex:0 0 auto;min-height:40px;font-weight:400}
.chips .knop.aan{background:var(--k);color:#fff}
.waarsch{color:var(--fout);font-weight:700;margin:6px 0}
.kaart{border:1px solid var(--rand);border-radius:8px;padding:10px;margin:8px 0;position:relative;background:#fff}
.kaart b{display:block}
.balk{height:8px;background:var(--kl);border-radius:4px;margin-top:6px;overflow:hidden}.balk i{display:block;height:100%;background:var(--goed)}
.pick{border:1px solid var(--lijn);border-radius:8px;padding:8px;margin:8px 0}
.pick.actief{background:var(--goedbg);border-color:var(--goed)}.pick.tekort{background:var(--oranje);border-color:#d68000}
.pick .onder{display:flex;align-items:center;gap:6px;margin-top:6px}
.pick .onder{flex-wrap:wrap;justify-content:flex-end}
.pick .onder .lc{flex:1 1 130px;min-width:0}
.ctl{display:flex;gap:6px;align-items:center;flex:none}
.tekortblok{margin-top:8px;display:grid;gap:6px}
.inlog{max-width:360px;margin:12px auto;display:grid;gap:10px}
.inlogkop{display:flex;align-items:center;gap:10px;color:var(--k);font-weight:700;font-size:18px}.inlogkop img{border-radius:50%;border:2px solid var(--k)}
td.r .ctl{display:inline-flex}
.samenv{background:var(--kl);border-radius:6px;padding:10px 12px;white-space:pre-line;margin:8px 0}
.log td{font-size:14px}
.chk{display:flex;align-items:center;gap:10px;min-height:48px}.chk input{width:24px;min-height:24px}
.sugg{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.laden{color:var(--grijs)}
.smal-weg{display:table-cell}
/* Aantal bij Inboeken: − [aantal] + en de knop; op de pc compact in plaats van over de hele breedte */
.teller{display:flex;gap:6px;flex-wrap:nowrap}
.teller .pm{flex:none;width:48px;height:48px}
.teller input{flex:none;width:64px;height:48px;text-align:center;font-weight:700;font-size:20px;padding:0}
.aantalrij{flex-wrap:nowrap}.aantalrij>.veld{flex:0 0 auto}.aantalrij>.knop{flex:1 1 auto;min-height:48px}
@media (min-width:600px){.aantalrij>.knop{flex:0 0 auto;min-width:200px}}
/* Voorraadlijst: vaste kolommen; het aantal staat midden boven − + ✓ (zoals Power Apps) */
table.vrd{table-layout:fixed}
.vrd .k-loc{width:108px}.vrd .k-aantal{width:76px}
.vrd td.loc{white-space:normal;overflow-wrap:anywhere}
@media (min-width:600px){
  .vrd .k-loc{width:200px}.vrd .k-aantal{width:176px}
  .vrd th.r,.vrd td.r{text-align:center}
  .vrd .bewerk .ctl{width:168px;justify-content:center}
  .vrd .bewerk .ok{width:48px}
}
@media (min-width:600px){.alleen-smal{display:none}}
@media (max-width:599px){.smal-weg{display:none}.tabs{gap:3px}.tabs button{font-size:11px;letter-spacing:-.3px;padding:0}.logo{font-size:14px}h2{font-size:18px}.locg{font-size:18px}}
@media (min-width:600px){main{padding:16px 32px 40px}header{padding:8px 32px}}
/* Pc (breed scherm): grotere letters en een strakke lijst, zoals de Power Apps-versie */
@media (min-width:900px){
  body{font-size:17px}
  .logo{font-size:20px}.wie{font-size:18px}
  .tabs button{font-size:16px;min-height:42px}
  .veld>span{font-size:14px}
  input,select{font-size:17px}.invoer input::placeholder{font-size:16px}
  h2{font-size:24px}.sub{font-size:15px}.scaninfo,.uitleg{font-size:15px}
  th{font-size:13px}
  td{padding:7px 6px;vertical-align:middle}
  .naam{line-height:1.25}
  .ean{display:block;font-size:15px;min-height:0;padding:0}
  .vak{min-height:38px;font-size:18px}
  .log td,.klein{font-size:15px}
}
