@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@400;600&display=swap');

:root{
  --bg:#061120;--bg2:#0a1830;--panel:rgba(14,31,55,.82);--panel2:#0f2039;--line:#1d3656;
  --text:#edf6ff;--muted:#89a0bd;--blue:#32c7ff;--blue2:#168bff;--gold:#ffd426;
  --green:#35dda0;--red:#ff6b75;--orange:#ffad45;--radius:18px;--shadow:0 22px 60px rgba(0,0,0,.32);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-y:auto}body{margin:0;min-height:100vh;background:
radial-gradient(circle at 8% 5%,rgba(30,145,255,.16),transparent 28%),radial-gradient(circle at 82% 15%,rgba(255,212,38,.08),transparent 20%),linear-gradient(180deg,#071321 0%,#07111f 45%,#050d18 100%);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.55}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 82%)}a{color:var(--blue);text-decoration:none}a:hover{color:#91e7ff}h1,h2,h3,h4{font-family:"Space Grotesk",Inter,sans-serif;line-height:1.12;margin-top:0}code,.mono{font-family:"JetBrains Mono",monospace;color:#8fe6ff}

/* nav */
.scan-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px clamp(18px,4vw,54px);background:rgba(5,14,27,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(95,170,230,.13)}
.scan-nav-logo{display:flex;align-items:center;gap:10px;font-family:"Space Grotesk";font-weight:700;color:#fff;font-size:1.08rem}.scan-nav-logo img{width:42px;height:42px;object-fit:contain;filter:drop-shadow(0 3px 14px rgba(50,199,255,.2))}.scan-nav-logo span{color:var(--gold)}
.scan-nav-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.scan-nav-links a{padding:9px 11px;border-radius:10px;color:#a8bbd2;font-size:.9rem;font-weight:600}.scan-nav-links a:hover,.scan-nav-links a.actief{background:rgba(50,199,255,.09);color:#fff}.scan-nav-gebruiker{font-size:.82rem;color:var(--muted);padding:0 7px}.scan-nav-uitloggen{color:#ff9ca3!important}.scan-login-link{border:1px solid var(--line);background:#0d1d33}.scan-cta-link{background:linear-gradient(135deg,var(--gold),#f4a800)!important;color:#111a27!important}

/* public landing */
.public-shell{overflow-x:hidden;overflow-y:auto}.hero{max-width:1240px;margin:auto;padding:70px clamp(20px,5vw,70px) 54px;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(380px,.97fr);gap:54px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid rgba(50,199,255,.2);border-radius:999px;background:rgba(50,199,255,.06);color:#a9eaff;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 14px var(--green)}
.hero h1{font-size:clamp(2.6rem,5vw,5.25rem);letter-spacing:-.055em;margin:20px 0 20px;max-width:780px}.hero h1 .accent{color:var(--gold)}.hero p{max-width:680px;color:#9eb2cc;font-size:clamp(1rem,1.5vw,1.18rem);margin:0 0 28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:12px;font-weight:800}.btn-primary{background:linear-gradient(135deg,var(--gold),#ffae18);color:#08111c;box-shadow:0 10px 30px rgba(255,196,30,.16)}.btn-primary:hover{color:#08111c;transform:translateY(-1px)}.btn-secondary{border:1px solid var(--line);color:#e9f4ff;background:rgba(10,28,48,.55)}.hero-visual{position:relative}.hero-visual:before{content:"";position:absolute;inset:12% 8%;border-radius:50%;background:radial-gradient(circle,rgba(48,174,255,.22),transparent 65%);filter:blur(24px)}.hero-logo{display:block;position:relative;width:100%;max-width:610px;margin:auto;filter:drop-shadow(0 24px 35px rgba(0,0,0,.45))}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.metric{padding:16px;border:1px solid rgba(76,145,201,.16);border-radius:14px;background:rgba(8,24,43,.55)}.metric strong{display:block;color:#fff;font-size:1.2rem}.metric span{font-size:.76rem;color:var(--muted)}
.section{max-width:1240px;margin:auto;padding:54px clamp(20px,5vw,70px)}.section-head{max-width:720px;margin-bottom:28px}.section-head h2{font-size:clamp(1.8rem,3.5vw,3rem);letter-spacing:-.035em;margin-bottom:10px}.section-head p{color:var(--muted);margin:0}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-card{position:relative;padding:25px;border:1px solid rgba(78,145,200,.17);border-radius:20px;background:linear-gradient(145deg,rgba(15,34,61,.86),rgba(8,22,40,.76));box-shadow:0 14px 35px rgba(0,0,0,.16);overflow:hidden}.feature-card:after{content:"";position:absolute;width:110px;height:110px;right:-45px;top:-45px;border-radius:50%;background:rgba(50,199,255,.08)}.feature-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:rgba(50,199,255,.1);color:var(--blue);font-size:1.25rem;margin-bottom:20px}.feature-card h3{font-size:1.12rem;margin-bottom:8px}.feature-card p{margin:0;color:var(--muted);font-size:.92rem}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;counter-reset:flow}.flow-step{padding:22px 18px;border-radius:18px;border:1px solid var(--line);background:rgba(11,29,50,.65)}.flow-step:before{counter-increment:flow;content:counter(flow);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#111;font-weight:900;margin-bottom:16px}.flow-step h3{font-size:1rem;margin-bottom:6px}.flow-step p{margin:0;color:var(--muted);font-size:.86rem}.product-callout{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;padding:32px;border:1px solid rgba(255,212,38,.18);border-radius:26px;background:linear-gradient(135deg,rgba(255,212,38,.06),rgba(15,40,70,.82))}.device-placeholder{min-height:280px;border-radius:22px;border:1px dashed rgba(121,175,220,.3);background:radial-gradient(circle at 50% 40%,rgba(50,199,255,.18),transparent 45%),#08172a;display:grid;place-items:center;text-align:center;padding:28px;color:#91a7c2}.device-placeholder strong{color:#fff}.site-footer{border-top:1px solid rgba(78,145,200,.12);padding:28px;text-align:center;color:#7087a4;font-size:.84rem}

/* admin */
.page-wrap{max-width:1420px;margin:0 auto;padding:28px clamp(16px,3vw,42px) 50px}.pagina-titel{font-family:"Space Grotesk";font-size:clamp(1.55rem,3vw,2.25rem);font-weight:700;margin:30px 28px 5px}.pagina-sub{color:var(--muted);margin:0 28px 22px}.scanner-subnav{display:flex;gap:7px;flex-wrap:wrap;margin:0 28px 24px}.scanner-subnav a{color:#8ea6c3;padding:7px 10px;border-radius:9px;font-size:.86rem;font-weight:600}.scanner-subnav a:hover,.scanner-subnav a.actief{background:rgba(50,199,255,.1);color:#dff8ff}.scanner-header{position:relative}.scanner-card,.scanner-form,.scanner-melding{margin:0 28px 24px;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(15,32,56,.94),rgba(10,24,43,.9));box-shadow:var(--shadow)}.scanner-melding{padding:13px 16px;border-color:rgba(50,199,255,.35);background:rgba(50,199,255,.08)}.scan-fout{border-color:rgba(255,107,117,.35)!important;background:rgba(255,107,117,.09)!important;color:#ffd8dc}.scan-succes{border-color:rgba(53,221,160,.35)!important;background:rgba(53,221,160,.08)!important;color:#c8ffe9}
.scanner-form label,.field label{display:block;color:#91a6bf;font-size:.8rem;font-weight:700;margin:12px 0 6px}.scanner-form input[type=text],.scanner-form input[type=email],.scanner-form input[type=password],.scanner-form input[type=number],.scanner-form input[type=file],.scanner-form textarea,.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid #244463;border-radius:10px;background:#08172a;color:#fff;outline:none}.scanner-form input:focus,.scanner-form textarea:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(50,199,255,.08)}.scanner-checkbox-lijst{display:flex;gap:10px 18px;flex-wrap:wrap}.scanner-checkbox-lijst label{margin:3px 0;color:#d6e4f5;font-weight:500}.scanner-btn,.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;padding:10px 16px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#04111f;font-weight:800;cursor:pointer}.scanner-btn:hover,.admin-btn:hover{filter:brightness(1.08)}.scanner-btn.klein{padding:6px 10px;margin:0;background:#17304d;color:#dcecff;font-size:.76rem}
.table-shell{margin:0 28px 30px;overflow:auto;border:1px solid var(--line);border-radius:16px;background:rgba(10,25,44,.7)}.scanner-tabel{width:calc(100% - 56px);border-collapse:collapse;margin:0 28px 32px;min-width:760px}.table-shell .scanner-tabel{width:100%;margin:0}.scanner-tabel th,.scanner-tabel td{padding:12px 14px;border-bottom:1px solid rgba(40,70,103,.55);text-align:left;font-size:.84rem}.scanner-tabel th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#7892b0;background:#0a1a2e;position:sticky;top:0}.scanner-tabel tr:hover td{background:rgba(50,199,255,.025)}.scanner-online{color:var(--green);font-weight:700}.scanner-offline{color:var(--red);font-weight:700}.scanner-status-actief{color:var(--green);font-weight:700}.scanner-status-inactief{color:var(--red);font-weight:700}.scanner-zacht{color:var(--muted);font-size:.8rem}.scanner-badge,.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:.7rem;font-weight:800;letter-spacing:.02em;background:#18304a;color:#b8cae0}.badge.online,.scanner-badge.online,.scanner-badge.actief{background:rgba(53,221,160,.12);color:var(--green)}.badge.offline,.scanner-badge.offline,.scanner-badge.inactief{background:rgba(255,107,117,.12);color:var(--red)}.badge.sleep{background:rgba(255,173,69,.13);color:var(--orange)}.badge.update{background:rgba(255,212,38,.13);color:var(--gold)}.badge.current{background:rgba(50,199,255,.11);color:#7de0ff}.badge.critical{background:rgba(255,107,117,.14);color:#ff9aa3}
.admin-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin:0 28px 26px}.admin-card{grid-column:span 4;padding:20px;border:1px solid var(--line);border-radius:16px;background:rgba(12,29,50,.82)}.admin-card.wide{grid-column:span 8}.admin-card.full{grid-column:1/-1}.admin-kpi{font-family:"Space Grotesk";font-size:1.75rem;font-weight:700}.admin-label{font-size:.78rem;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.hint{color:var(--muted);font-size:.78rem;margin-top:5px}.tablewrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:820px}.admin-table th,.admin-table td{padding:11px 12px;border-bottom:1px solid rgba(43,75,108,.45);text-align:left;font-size:.82rem;white-space:nowrap}.admin-table th{color:#7992ae;text-transform:uppercase;letter-spacing:.055em;font-size:.68rem}.small{font-size:.75rem;color:var(--muted)}

/* login */
.scan-login-body{display:grid;place-items:center;padding:24px}.login-shell{width:min(980px,100%);display:grid;grid-template-columns:1.05fr .95fr;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:rgba(9,23,42,.9);box-shadow:0 30px 80px rgba(0,0,0,.42)}.login-brand{padding:38px;background:radial-gradient(circle at 50% 20%,rgba(50,199,255,.15),transparent 40%),#08162a;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:min(100%,400px);margin:auto}.login-brand p{color:var(--muted);text-align:center;max-width:420px;margin:10px auto 0}.scan-login-kaart{padding:50px 42px;display:flex;flex-direction:column;justify-content:center}.scan-login-kaart h1{font-size:2rem;margin-bottom:8px}.scan-login-kaart .login-intro{color:var(--muted);margin-bottom:22px}.scan-login-kaart label{display:block;font-size:.8rem;color:#91a6bf;margin:14px 0 6px;font-weight:700}.scan-login-kaart input{width:100%;padding:12px;border-radius:10px;border:1px solid #244463;background:#07172a;color:#fff}.scan-login-kaart button{width:100%;margin-top:20px;padding:12px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--gold),#ffad16);color:#111827;font-weight:900;cursor:pointer}.back-link{display:inline-block;margin-top:16px;color:var(--muted);font-size:.84rem}
.scan-footer{text-align:center;padding:30px;color:#6f87a4;font-size:.8rem}.scan-footer a{color:#9fdff3}

@media(max-width:980px){.hero{grid-template-columns:1fr;padding-top:48px}.hero-visual{order:-1;max-width:520px;margin:auto}.hero h1{text-align:center}.hero p{margin-left:auto;margin-right:auto;text-align:center}.hero .eyebrow{display:flex;width:max-content;margin:auto}.hero-actions{justify-content:center}.hero-metrics{max-width:650px;margin:30px auto 0}.feature-grid{grid-template-columns:1fr 1fr}.flow{grid-template-columns:1fr 1fr}.product-callout{grid-template-columns:1fr}.admin-card,.admin-card.wide{grid-column:span 6}}
@media(max-width:720px){.scan-nav{position:relative;align-items:flex-start}.scan-nav-links{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.scan-nav-gebruiker{display:none}.feature-grid,.flow{grid-template-columns:1fr}.hero-metrics{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{padding:22px}.login-brand img{max-width:260px}.scan-login-kaart{padding:30px 24px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.admin-card,.admin-card.wide{grid-column:1/-1}.pagina-titel,.pagina-sub,.scanner-subnav,.scanner-form,.scanner-melding,.admin-grid,.table-shell{margin-left:16px;margin-right:16px}}

body > h3{margin:24px 28px 12px;font-size:1.05rem}

/* gebruikers & klantportaal */
.credential-box{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;border-color:rgba(255,212,38,.35);background:linear-gradient(135deg,rgba(255,212,38,.09),rgba(50,199,255,.06))}.credential-box strong{width:100%;color:var(--gold);font-family:"Space Grotesk"}.credential-box span{color:#dcecff}.credential-box small{width:100%;color:var(--muted)}.password-code{display:inline-block;padding:5px 8px;border-radius:8px;background:#06111f;border:1px solid #2b4563;color:#fff;user-select:all}.access-list{display:grid;gap:9px;margin-top:16px;color:#bad0e8;font-size:.88rem}.access-list span:nth-child(-n+4){color:#c9ffea}.action-row{display:flex;gap:7px;align-items:center}.action-row form{margin:0}.card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.account-layout{display:grid;grid-template-columns:minmax(250px,.32fr) minmax(0,.68fr);gap:18px;margin:0 28px 30px}.account-layout .scanner-card{margin:0}.account-profile{text-align:center}.profile-orb{width:72px;height:72px;margin:4px auto 14px;display:grid;place-items:center;border-radius:22px;background:linear-gradient(145deg,var(--blue),var(--blue2));color:#04111f;font-family:"Space Grotesk";font-weight:800;font-size:2rem;box-shadow:0 14px 35px rgba(22,139,255,.2)}.account-profile h2{margin-bottom:4px}.account-profile>p{margin:0;color:var(--muted)}.profile-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;text-align:left}.profile-meta span{padding:12px;border:1px solid var(--line);border-radius:12px;background:#08172a;color:#d8e7f7;font-size:.82rem}.profile-meta b{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.customer-hero{margin:28px 28px 24px;padding:28px 30px;border:1px solid rgba(50,199,255,.18);border-radius:24px;background:radial-gradient(circle at 88% 20%,rgba(50,199,255,.18),transparent 30%),linear-gradient(135deg,rgba(15,36,63,.94),rgba(7,20,37,.95));display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:var(--shadow)}.customer-hero h1{font-size:clamp(1.8rem,4vw,3rem);margin:14px 0 8px}.customer-hero p{margin:0;color:var(--muted);max-width:650px}.customer-hero img{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 12px 25px rgba(50,199,255,.16))}.customer-kpis .admin-card{grid-column:span 4}.customer-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 28px 26px}.device-card{padding:22px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(150deg,rgba(15,35,61,.94),rgba(7,20,37,.9));box-shadow:0 18px 45px rgba(0,0,0,.2)}.device-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.device-card h2{margin:12px 0 5px;font-size:1.35rem}.device-card code{font-size:.75rem}.device-signal{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(50,199,255,.09);color:var(--blue);font-size:1.6rem}.device-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px}.device-stats span{padding:11px 12px;border:1px solid rgba(42,72,104,.55);border-radius:11px;background:rgba(5,17,31,.48);font-size:.8rem;color:#d9e7f7}.device-stats b{display:block;color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.device-stats em{font-style:normal}.update-text{color:var(--gold)}.ok-text{color:var(--green)}.empty-state{grid-column:1/-1;text-align:center;padding:42px}.empty-state strong{font-family:"Space Grotesk";font-size:1.25rem}.empty-state p{color:var(--muted);margin-bottom:0}
@media(max-width:980px){.account-layout{grid-template-columns:1fr}.customer-card-grid{grid-template-columns:1fr}.device-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.account-layout,.customer-card-grid,.customer-hero{margin-left:16px;margin-right:16px}.customer-hero{padding:22px}.customer-hero img{width:78px;height:78px}.device-stats{grid-template-columns:1fr}.customer-kpis .admin-card{grid-column:1/-1}.action-row{flex-wrap:wrap}.user-admin-grid .admin-card{grid-column:1/-1}.profile-meta{grid-template-columns:1fr}}
