/* Kamera-skanning v2 – merkenøytral. Farger fra v15-tokens med reserveverdier (Buddy: bytt tokenverdiene, ikke denne filen). */
/* ---------- knappen ved feltet: ikonknapp festet inni feltet ---------- */
.blv-cs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;min-width:44px;padding:8px 14px;border-radius:10px;border:0;background:var(--blv-primary,#0d4a57);color:var(--blv-on-primary,#fff);font-weight:600;font-size:14px;line-height:1.2;font-family:inherit;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;box-sizing:border-box;flex:none;margin:0;text-transform:none;letter-spacing:0}
.blv-cs-btn:hover{background:var(--blv-primary-h,#093843)}
.blv-cs-btn:active{transform:scale(.97)}
.blv-cs-btn:focus-visible{outline:3px solid var(--blv-primary-h,#093843);outline-offset:2px}
.blv-cs-btn svg{flex:none;display:block}
.blv-cs-btn--in{width:44px;height:44px;padding:0;gap:0}
/* feltet: <span class="blv-cs-field"><input …>{knapp}</span> – knappen ligger inni feltets høyre kant, alltid på samme linje */
.blv-cs-field{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0;max-width:100%;box-sizing:border-box}
.blv-cs-field.blv-cs-field.blv-cs-field>input,#blv-pane#blv-pane .blv-cs-field.blv-cs-field>input,#blv-pane#blv-pane .v4-scan .blv-cs-field.blv-cs-field>input{flex:1 1 auto;min-width:0;width:100%;max-width:100%;margin:0;box-sizing:border-box;padding-right:58px!important}
.blv-cs-field>.blv-cs-btn--in{position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:1}
.blv-cs-field>.blv-cs-btn--in:active{transform:translateY(-50%) scale(.95)}
.blv-cs-field--block{margin-top:8px}
.blv-cs-field--block>input.kscan{margin-top:0!important}
/* eldre markup */
.blv-cs-row{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;margin:8px 0}
.blv-cs-row>input{flex:1 1 auto;min-width:0}
@media (prefers-reduced-motion:reduce){.blv-cs-btn:active,.blv-cs-field>.blv-cs-btn--in:active{transform:translateY(-50%)}.blv-cs-btn:active{transform:none}}

/* ---------- kameraarket: <dialog> i top layer, fullskjerm svart på mobil ---------- */
html.blv-cs-lock,html.blv-cs-lock body{overflow:hidden!important}
.blv-cs.blv-cs{position:fixed!important;inset:0!important;left:0!important;top:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0;background:#000!important;color:#fff;overflow:hidden!important;z-index:2147483000;box-sizing:border-box;font-family:inherit;transform:none!important;display:block;outline:none;-webkit-text-size-adjust:100%}
.blv-cs.blv-cs:not([open]):not(.is-div){display:none}
.blv-cs *,.blv-cs *::before,.blv-cs *::after{box-sizing:border-box}
.blv-cs::backdrop{background:rgba(6,10,18,.72)}
.blv-cs .blv-cs__v{position:absolute!important;inset:0!important;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;object-fit:cover!important;display:block!important;background:#000;border:0!important;transform:none!important;pointer-events:none}
/* sikteramme: sentrert, ~80 % bredde, 3:1 (1D-strekkode), dempet område utenfor */
.blv-cs__ov{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.blv-cs__vf{position:absolute;left:50%;top:46%;width:80%;max-width:560px;aspect-ratio:3/1;transform:translate(-50%,-50%);border-radius:18px;box-shadow:0 0 0 200vmax rgba(0,0,0,.55);outline:2px solid rgba(255,255,255,.35);outline-offset:-2px;transition:outline-color .15s,box-shadow .15s}
@supports not (aspect-ratio:1){.blv-cs__vf{height:26vw;max-height:187px}}
.blv-cs__c{position:absolute;width:30px;height:30px;border:0 solid #fff;transition:border-color .15s}
.blv-cs__c--tl{left:-2px;top:-2px;border-top-width:5px;border-left-width:5px;border-top-left-radius:18px}
.blv-cs__c--tr{right:-2px;top:-2px;border-top-width:5px;border-right-width:5px;border-top-right-radius:18px}
.blv-cs__c--bl{left:-2px;bottom:-2px;border-bottom-width:5px;border-left-width:5px;border-bottom-left-radius:18px}
.blv-cs__c--br{right:-2px;bottom:-2px;border-bottom-width:5px;border-right-width:5px;border-bottom-right-radius:18px}
.blv-cs__line{position:absolute;left:7%;right:7%;top:50%;height:2px;margin-top:-1px;border-radius:2px;background:var(--blv-danger,#ef4444);box-shadow:0 0 10px 1px rgba(239,68,68,.75);animation:blvCsLine 1.6s ease-in-out infinite alternate}
@keyframes blvCsLine{from{transform:translateY(-14px)}to{transform:translateY(14px)}}
.blv-cs__flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
/* treff: grønn ramme + blink */
.blv-cs.is-ok .blv-cs__vf{outline:4px solid #22c55e;outline-offset:-4px;box-shadow:0 0 0 200vmax rgba(0,0,0,.6),0 0 0 6px rgba(34,197,94,.35)}
.blv-cs.is-ok .blv-cs__c{border-color:#22c55e}
.blv-cs.is-ok .blv-cs__line{display:none}
.blv-cs.is-ok .blv-cs__flash{animation:blvCsFlash .45s ease-out}
@keyframes blvCsFlash{0%{opacity:.55}100%{opacity:0}}
.blv-cs.is-ok .blv-cs__st{color:#bbf7d0;font-weight:600}
.blv-cs.is-err .blv-cs__line{display:none}
.blv-cs.is-err .blv-cs__vf{outline-color:rgba(255,255,255,.2)}
/* toppfelt med trygg sone */
.blv-cs__top{position:absolute;left:0;right:0;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 18px max(16px,env(safe-area-inset-left));background:linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,0))}
.blv-cs .blv-cs__h{margin:0;padding:0;font-size:17px;line-height:1.3;font-weight:600;color:#fff;letter-spacing:0;text-transform:none;font-family:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.blv-cs button{font-family:inherit;-webkit-tap-highlight-color:transparent;margin:0;text-transform:none;letter-spacing:0;box-shadow:none}
.blv-cs .blv-cs__x{flex:none;min-height:44px;min-width:64px;padding:8px 18px;border-radius:999px;border:0;background:rgba(255,255,255,.18);color:#fff;font-weight:600;font-size:15px;line-height:1.2;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
/* bunnfelt: hint, lys, skriv nummeret */
.blv-cs__bot{position:absolute;left:0;right:0;bottom:0;z-index:2;display:grid;gap:14px;justify-items:center;padding:28px max(16px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.78) 38%)}
.blv-cs .blv-cs__st{margin:0;max-width:420px;font-size:15px;line-height:1.45;text-align:center;color:#fff;min-height:1.45em;font-weight:500}
.blv-cs.is-err .blv-cs__st{background:#fff;color:#7a1610;border-radius:14px;padding:12px 14px;text-align:left;font-weight:500;width:100%}
.blv-cs .blv-cs__dbg{margin:0;font:12px/1.35 ui-monospace,Menlo,monospace;color:#cbd5e1;text-align:center;max-width:100%;overflow-wrap:anywhere}
.blv-cs__acts{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;width:100%}
.blv-cs .blv-cs__b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;min-width:48px;padding:10px 18px;border-radius:999px;border:1.5px solid rgba(255,255,255,.55);background:rgba(255,255,255,.14);color:#fff;font-weight:600;font-size:15px;line-height:1.2;cursor:pointer}
.blv-cs .blv-cs__b[hidden],.blv-cs [hidden]{display:none!important}
.blv-cs .blv-cs__b[aria-pressed="true"]{background:#fde68a;color:#1c1917;border-color:#fde68a}
.blv-cs .blv-cs__b--g{background:#fff;color:#0b0f17;border-color:#fff}
.blv-cs .blv-cs__x:focus-visible,.blv-cs .blv-cs__b:focus-visible,.blv-cs .blv-cs__tap:focus-visible{outline:3px solid #7dd3fc;outline-offset:2px}
.blv-cs .blv-cs__tap{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:3;min-height:56px;padding:14px 22px;border-radius:999px;border:0;background:#fff;color:#0b0f17;font-weight:600;font-size:16px;cursor:pointer;max-width:86%}
/* reduced motion */
@media (prefers-reduced-motion:reduce){.blv-cs__line{animation:none!important}.blv-cs.is-ok .blv-cs__flash{animation:none!important}.blv-cs__vf,.blv-cs__c{transition:none}}
.blv-cs.is-rm .blv-cs__line,.blv-cs.is-rm .blv-cs__flash{animation:none!important}
/* desktop/nettbrett på tvers: sentrert modal ~480 px */
@media (min-width:700px) and (min-height:560px){
 .blv-cs.blv-cs{inset:0!important;left:0!important;right:0!important;top:0!important;bottom:0!important;width:480px!important;height:min(680px,calc(100% - 64px))!important;margin:auto!important;border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
 .blv-cs.is-div{box-shadow:0 0 0 100vmax rgba(6,10,18,.72),0 30px 80px rgba(0,0,0,.5)}
 .blv-cs__top{padding:14px 16px 18px}
 .blv-cs__bot{padding:28px 18px 20px}
 .blv-cs__vf{width:84%}
}
/* plassering i verksted-tavla (kroker) */
.v4-scan--recv{margin-top:12px}
.v4-scan .blv-cs-field>input{min-height:52px}
.v4-scan>.v4-scan__i{z-index:2}
