/* WEnovo 6.3.0 - fase 1: zelfstandige mobiele app, echte camera en lokale QR-scanner. */
.phase1-camera-viewport{position:relative;display:grid;place-items:center;min-height:260px;margin:16px 0;border-radius:18px;overflow:hidden;background:#0d1012;border:1px solid rgba(255,255,255,.12)}
.phase1-camera-viewport video{display:block;width:100%;max-height:58vh;object-fit:cover;background:#090b0d}
.phase1-camera-viewport:not(.active) video{min-height:260px}
.phase1-camera-guide{position:absolute;inset:12%;border:2px solid rgba(255,255,255,.78);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.16);pointer-events:none}
.phase1-camera-guide.qr{inset:18%;border-width:3px;border-color:#f4d44d}
.phase1-camera-status.success{border-color:#82c996;background:#eff9f1}.phase1-camera-status.warning{border-color:#f0c164;background:#fff8e7}.phase1-camera-status.error{border-color:#e29393;background:#fff0f0}
.camera-controls{align-items:center;flex-wrap:wrap}.camera-fallback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.camera-native-button{border-color:#d1b13a;background:#fffaf0}
.camera-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:14px 0}.camera-preview{margin:0;border:1px solid #dfe2e5;border-radius:14px;overflow:hidden;background:#fff}.camera-preview img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.camera-preview figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px}.camera-preview figcaption b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}
.scan-manual-button{align-self:end;margin-bottom:1px}.phase1-article-result{margin-top:18px;border:1px solid #dfe2e5;border-radius:18px;padding:18px;background:#fff}.phase1-article-head{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center}.phase1-article-head>img{width:110px;height:90px;object-fit:contain;border-radius:12px;background:#f4f5f5}.phase1-article-head h2{margin:4px 0 6px}.scan-stock{min-width:120px;padding:12px;text-align:center;border-radius:14px;background:#edf7ef}.scan-stock b{display:block;font-size:1.7rem}.scan-stock span{font-size:.73rem;color:#4f5b52}.article-spec-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.article-spec-grid span{padding:10px;border-radius:12px;background:#f5f6f6}.article-spec-grid small,.article-spec-grid b{display:block}.article-spec-grid small{color:#667076;margin-bottom:4px}
.mobile-drawing-list{margin:18px 0}.mobile-drawing-list h3{margin-bottom:10px}.mobile-drawing-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:12px;margin:8px 0;border:1px solid #dfe2e5;border-radius:13px;text-decoration:none;color:inherit;background:#fbfcfc}.mobile-drawing-card:hover{border-color:#b59a2f}.mobile-drawing-card span b,.mobile-drawing-card span small{display:block}.mobile-drawing-card small{color:#6d7477;margin-top:3px}.drawing-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#f2e9bd;font-size:1.25rem}
.mobile-bottom-nav{position:fixed;z-index:95;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:rgba(21,25,28,.96);box-shadow:0 16px 38px rgba(0,0,0,.3);backdrop-filter:blur(12px)}.mobile-bottom-nav button{display:grid;place-items:center;gap:2px;min-height:52px;border:0;border-radius:13px;background:transparent;color:#fff}.mobile-bottom-nav button span{font-size:1.2rem}.mobile-bottom-nav button small{font-size:.68rem}.mobile-bottom-nav button.scan{background:#d8bc4b;color:#17191b}.wenovo-mobile-app-mode body{padding-bottom:88px}.wenovo-mobile-app-mode .content{padding-bottom:100px}
.mobile-app-link-card{display:grid;grid-template-columns:1fr 126px;gap:18px;align-items:center;max-width:560px;margin:14px auto 0;padding:16px;border:1px solid #dfe2e5;border-radius:16px;background:#fff}.mobile-app-link-card h3{margin:4px 0 8px}.mobile-app-link-card p{margin:0 0 8px}.mobile-app-link-card code{display:block;overflow-wrap:anywhere;font-size:.72rem}.mobile-app-link-card img{width:126px;height:126px;border-radius:8px}.mobile-app-link-loading{grid-column:1/-1;color:#6b7377}.warning-text{color:#9a5b00!important}
.standalone-mobile-login{min-height:100vh;background:#111518}.mobile-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(340px,.95fr)}.mobile-login-brand{display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,7vw,100px);color:#fff;background:radial-gradient(circle at 15% 15%,rgba(216,188,75,.2),transparent 42%),linear-gradient(145deg,#14191c,#242a2e)}.mobile-login-brand h1{max-width:700px;margin:18px 0;font-size:clamp(2rem,5vw,4.4rem);line-height:1.02}.mobile-login-brand p{max-width:640px;color:#d3d7d9;font-size:1.05rem;line-height:1.6}.mobile-login-features{display:grid;gap:10px;margin-top:28px;color:#f2e7b1}.mobile-login-panel{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(22px,6vw,80px);background:#f1f3f3}.mobile-login-panel .login-card{width:100%;max-width:520px;margin:0 auto}.mobile-install-card{max-width:520px;margin:0 auto;padding:16px;border-radius:16px;background:#fff;border:1px solid #dfe2e5}.mobile-install-card p{margin:6px 0 12px}.mobile-network-note{max-width:520px;margin:0 auto;color:#626b6f;font-size:.78rem}.login-error{margin-top:12px;padding:10px;border-radius:10px;background:#fff0f0;color:#8c2525}.development-login{margin-top:16px}.development-login summary{cursor:pointer;font-weight:700}.development-account-list{display:grid;gap:7px;margin-top:10px}.development-account{display:flex;align-items:center;gap:10px;width:100%;padding:9px;border:1px solid #dfe2e5;border-radius:12px;background:#fff;text-align:left}.development-account span b,.development-account span small{display:block}.development-account small{color:#687176}.development-avatar{display:grid!important;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:#1c2225;color:#fff;font-size:.72rem}
@media(max-width:900px){.mobile-login-shell{grid-template-columns:1fr}.mobile-login-brand{padding:42px 24px 32px}.mobile-login-brand h1{font-size:2.25rem}.mobile-login-panel{padding:24px 16px 100px}.phase1-article-head{grid-template-columns:82px 1fr}.phase1-article-head>img{width:82px;height:72px}.scan-stock{grid-column:1/-1}.article-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.camera-fallback-grid{grid-template-columns:1fr}.phase1-camera-viewport{min-height:220px}.phase1-camera-viewport:not(.active) video{min-height:220px}.article-spec-grid{grid-template-columns:1fr 1fr}.mobile-drawing-card{grid-template-columns:38px 1fr}.mobile-drawing-card>strong{grid-column:2}.mobile-app-link-card{grid-template-columns:1fr}.mobile-app-link-card img{width:150px;height:150px}.modal{padding-bottom:90px}.camera-controls .button{flex:1 1 42%}}
@media(min-width:901px){.mobile-bottom-nav{display:none!important}}
.phase3-scan-placements{margin:16px 0;padding:14px;border-radius:14px;background:#f2f5f7}.phase3-scan-placements h3{margin:0 0 6px}.phase3-scan-placements>p{margin:0 0 10px;color:#657076}.scan-placement{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid #dce2e5}.scan-placement div{display:grid;gap:2px}.scan-placement span{font-size:.78rem;color:#657076}
@media(max-width:620px){.scan-placement{align-items:stretch;flex-direction:column}.scan-placement .button{width:100%}}

/* WEnovo 6.8.0 - mobiel menu blijft volledig bereikbaar tijdens scrollen. */
@media(max-width:760px){.sidebar{height:calc(100dvh - var(--topbar));max-height:calc(100dvh - var(--topbar));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(110px + env(safe-area-inset-bottom));justify-content:flex-start}.sidebar nav{flex:0 0 auto}.sidebar .help-card{margin-top:18px;flex:0 0 auto}.mobile-bottom-nav{position:fixed!important;transform:translateZ(0);will-change:transform}.sidebar.open{box-shadow:18px 0 36px rgba(0,0,0,.25)}}

/* WEnovo 6.9.2 - camerawerkruimte: betrouwbare native camera, live camera en QR-scan. */
.phase1-hidden-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;opacity:0!important;pointer-events:none!important}
.phase1-camera-backdrop{padding:18px!important;align-items:center!important}
.phase1-camera-modal{width:min(1040px,100%)!important;max-height:min(94dvh,980px)!important;padding:0!important;overflow:hidden!important;border-radius:24px!important}
.phase1-camera-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:min(94dvh,980px);background:#f4f6f7;color:#171b1e}
.phase1-camera-shell>.phase1-camera-heading{padding:24px 26px 18px;background:#fff;border-bottom:1px solid #e1e5e7}
.phase1-camera-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.phase1-camera-heading h2{margin:4px 0 7px;font-size:28px;letter-spacing:-.025em}
.phase1-camera-heading p{margin:0;max-width:720px;color:#5c666c;line-height:1.5}
.phase1-capability-badge{display:inline-flex;align-items:center;flex:0 0 auto;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:850;white-space:nowrap}
.phase1-capability-badge.available{background:#e8f7ee;color:#16734a}.phase1-capability-badge.native{background:#fff4db;color:#805a00}
.phase1-camera-shell>.phase1-primary-actions,.phase1-camera-shell>.phase1-live-card,.phase1-camera-shell>.phase1-camera-status,.phase1-camera-shell>.phase1-camera-details,.phase1-camera-shell>.phase1-manual-lookup,.phase1-camera-shell>.phase1-scan-result{margin-left:26px;margin-right:26px}
.phase1-camera-shell>.phase1-primary-actions{margin-top:20px}
.phase1-camera-shell>.phase1-scan-result,.phase1-camera-shell>.phase1-camera-details{margin-bottom:20px}
.phase1-camera-shell{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.phase1-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.phase1-action-card{appearance:none;border:1px solid #d6dde0;border-radius:18px;background:#fff;padding:15px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;color:#171b1e;box-shadow:0 5px 18px rgba(20,27,31,.045);cursor:pointer;transition:.16s}
.phase1-action-card:hover,.phase1-action-card:focus-visible{border-color:#f39a62;box-shadow:0 10px 24px rgba(20,27,31,.09);transform:translateY(-1px);outline:none}
.phase1-action-card.primary{border-color:#f0a06f;background:#fff9f5}
.phase1-action-card .phase1-action-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#f0f2f3;font-size:22px}
.phase1-action-card.primary .phase1-action-icon{background:#ffe8d9}
.phase1-action-card>span:nth-child(2){display:grid;gap:3px;min-width:0}.phase1-action-card b{font-size:15px}.phase1-action-card small{color:#68737a;line-height:1.35}.phase1-action-card strong{font-size:12px;color:#d95a0b;white-space:nowrap}
.phase1-live-card{margin-top:14px;border:1px solid #dce1e4;border-radius:18px;background:#fff;overflow:hidden}
.phase1-live-card>header{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px 15px;background:#f9fafb;border-bottom:1px solid #e5e8ea}
.phase1-live-card>header>div{display:grid;gap:3px}.phase1-live-card>header span{color:#68737a;font-size:12px;line-height:1.4}
.phase1-live-card.collapsed>:not(header){display:none!important}
.phase1-live-card.unavailable{border-style:dashed}.phase1-live-card.unavailable>header{border-bottom:0}
.phase1-native-explanation{display:flex;gap:10px;align-items:flex-start;padding:0 15px 15px;color:#566168}.phase1-native-explanation>span{font-size:18px}.phase1-native-explanation p{margin:0;line-height:1.5;font-size:13px}
.phase1-camera-viewport{margin:0!important;border-radius:0!important;border:0!important;min-height:330px!important;background:#0b0f11!important}
.phase1-camera-viewport:not(.active) video{min-height:330px!important;opacity:0}
.phase1-camera-viewport.active .phase1-camera-placeholder{display:none}
.phase1-camera-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;color:#fff;text-align:center;pointer-events:none}.phase1-camera-placeholder>span{font-size:36px}.phase1-camera-placeholder small{color:#b9c1c5}
.phase1-camera-guide{inset:11%!important}.phase1-camera-guide.qr{inset:17%!important}
.phase1-live-controls{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;background:#fff;border-top:1px solid #e5e8ea}
.phase1-camera-status{margin-top:14px;padding:12px 14px;border:1px solid #dce1e4;border-radius:14px;background:#fff;color:#435057;line-height:1.45;font-size:13px}
.phase1-camera-status.success{border-color:#8fd1a6;background:#eff9f2;color:#17633e}.phase1-camera-status.warning{border-color:#efc66f;background:#fff8e8;color:#785600}.phase1-camera-status.error{border-color:#e49a9a;background:#fff1f1;color:#8d2727}.phase1-camera-status.busy{border-color:#9bc7dd;background:#eef7fb;color:#245b74}
.phase1-camera-details{display:grid;gap:15px;margin-top:14px;padding:16px;border:1px solid #dce1e4;border-radius:18px;background:#fff}
.phase1-preview-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.phase1-preview-heading>div{display:grid;gap:2px}.phase1-preview-heading span{color:#68737a;font-size:12px}.phase1-preview-heading>#phase1PhotoCount{padding:5px 9px;border-radius:999px;background:#eef1f2;color:#4f5b61;font-weight:750;white-space:nowrap}
.camera-preview-grid{margin:0!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))!important}.camera-preview{box-shadow:none!important}.camera-preview figcaption{min-height:44px}.camera-preview .icon-btn{flex:0 0 auto}
.phase1-manual-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:14px;padding:15px;border:1px solid #dce1e4;border-radius:18px;background:#fff}.phase1-manual-lookup .field{margin:0}
.phase1-scan-result:empty{display:none}.phase1-scan-result:not(:empty){margin-top:14px}.phase1-scan-result .phase1-article-result{margin-top:0}
.phase1-camera-footer{position:sticky;bottom:0;z-index:3;display:flex;justify-content:flex-end;gap:10px;padding:14px 26px calc(14px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #dce1e4;box-shadow:0 -8px 24px rgba(20,27,31,.07);backdrop-filter:blur(9px)}
.phase1-camera-footer .button{min-width:140px}
.phase1-camera-modal .modal-close{z-index:8;top:14px;right:14px}
.manual-media-actions .manual-camera-button{display:inline-flex;align-items:center;justify-content:center}

@media(max-width:760px){
  .phase1-camera-backdrop{padding:0!important;align-items:stretch!important}
  .phase1-camera-modal{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;margin:0!important}
  .phase1-camera-shell{height:100dvh;max-height:100dvh;padding-top:env(safe-area-inset-top)}
  .phase1-camera-shell>.phase1-camera-heading{padding:20px 18px 14px;padding-right:58px}
  .phase1-camera-heading{display:grid;gap:10px}.phase1-camera-heading h2{font-size:24px}.phase1-capability-badge{justify-self:start}
  .phase1-camera-shell>.phase1-primary-actions,.phase1-camera-shell>.phase1-live-card,.phase1-camera-shell>.phase1-camera-status,.phase1-camera-shell>.phase1-camera-details,.phase1-camera-shell>.phase1-manual-lookup,.phase1-camera-shell>.phase1-scan-result{margin-left:14px;margin-right:14px}
  .phase1-camera-shell>.phase1-primary-actions{margin-top:14px}
  .phase1-primary-actions{grid-template-columns:1fr;gap:9px}
  .phase1-action-card{grid-template-columns:42px minmax(0,1fr);padding:13px}.phase1-action-card .phase1-action-icon{width:42px;height:42px}.phase1-action-card strong{grid-column:2;justify-self:start}
  .phase1-live-card{order:4}.phase1-photo-shell.live-unavailable .phase1-live-card,.phase1-scanner-shell.live-unavailable .phase1-live-card{margin-top:10px}
  .phase1-camera-viewport,.phase1-camera-viewport:not(.active) video{min-height:250px!important;max-height:44dvh!important}
  .phase1-live-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.phase1-live-controls .button{width:100%;min-width:0}
  .phase1-manual-lookup{grid-template-columns:1fr;padding:13px}.phase1-manual-lookup .button{width:100%}
  .phase1-camera-details{padding:13px}.camera-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .phase1-camera-footer{padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1.3fr}.phase1-camera-footer .button{min-width:0;width:100%}
  .phase1-camera-modal .modal-close{position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px}
  .phase1-article-result{padding:14px!important}.phase1-article-head{grid-template-columns:64px 1fr!important;gap:10px!important}.phase1-article-head>img{width:64px!important;height:58px!important}.article-spec-grid{grid-template-columns:1fr 1fr!important}.phase1-article-result .button-row{display:grid;grid-template-columns:1fr}.phase1-article-result .button-row .button{width:100%}
  .manual-media-actions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}.manual-media-actions .button{width:100%;justify-content:center}
}

@media(max-width:420px){.camera-preview-grid{grid-template-columns:1fr!important}.article-spec-grid{grid-template-columns:1fr!important}.phase1-live-controls{grid-template-columns:1fr}.phase1-camera-heading p{font-size:14px}}

/* Prevent implicit CSS-grid rows from overlapping camera action cards. */
.phase1-camera-shell{display:block!important}
.phase1-camera-shell>.phase1-camera-footer{margin-top:18px}
.phase1-scan-result .scan-result{display:grid;gap:6px;line-height:1.5;padding:12px 0}
.phase1-camera-heading{padding-right:52px}
.phase1-primary-actions>.selected-files-v9,.manual-media-actions>.selected-files-v9{display:none!important}
