:root{
  --bg:#0a1020;--panel:#101a2e;--panel2:#141f35;--border:#263653;
  --text:#ecf1f8;--muted:#9fb0c9;--green:#4ade80;--red:#fb7185;--amber:#fbbf24;
  --blue:#60a5fa;--shadow:0 18px 50px rgba(0,0,0,.18)
}
*{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;overflow-x:hidden}
button,input,select,textarea{font:inherit}
a{color:inherit;text-decoration:none}
.layout{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}
.sidebar{background:#0d1628;border-right:1px solid var(--border);padding:22px 16px;position:sticky;top:0;height:100vh;z-index:30}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:17px;padding:4px 8px 24px;min-width:0}
.brand-mark{width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:linear-gradient(135deg,#4ade80,#22c55e);display:grid;place-items:center;color:#072613;font-weight:900}
.brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mobile-nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);color:var(--text);cursor:pointer;padding:0;place-items:center}
.mobile-nav-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nav{display:flex;flex-direction:column;gap:5px}
.nav a{padding:10px 11px;border-radius:9px;color:#afbdd2}
.nav a:hover,.nav a.active{background:#17243a;color:#fff}
.sidebar-footer{position:absolute;left:16px;right:16px;bottom:20px;color:var(--muted);font-size:12px}
.sidebar-footer form{margin-top:8px}
main{padding:30px;min-width:0;max-width:1600px;width:100%}
.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}
.topbar h1{margin:0;font-size:27px;line-height:1.18}
.sub{color:var(--muted);margin-top:6px;line-height:1.5}
.actions{display:flex;gap:9px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--panel2);color:#fff;border-radius:9px;padding:9px 13px;font-weight:650;cursor:pointer;min-height:39px}
.btn:hover{border-color:#3b4e71}.btn.primary{background:var(--green);color:#082314;border-color:transparent}.btn.danger{background:#351825;border-color:#6a2c42;color:#ffb8c6}.btn.sm{padding:6px 9px;font-size:12px;min-height:32px}
.grid{display:grid;gap:16px}.grid.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.dashboard-lower{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.grid.domains-layout{grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr)}
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;box-shadow:var(--shadow);min-width:0}.metric-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.metric{font-size:30px;font-weight:800;margin-top:9px}.metric small{font-size:13px;color:var(--muted);font-weight:500}.good{color:var(--green)}.bad{color:var(--red)}.warn{color:var(--amber)}
.section{margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.section h2,.card h2{font-size:17px}.section h2{margin:0}.card-title{margin:0 0 14px;font-size:17px}
table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid rgba(38,54,83,.7);vertical-align:top}tr:last-child td{border-bottom:0}.table-wrap{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-wrap:anywhere}.muted{color:var(--muted)}
.badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:750;border:1px solid var(--border);white-space:nowrap}.badge.good{background:#10291c;border-color:#245e3b}.badge.bad{background:#321924;border-color:#743145}.badge.warn{background:#332812;border-color:#765918}.badge.neutral{background:#182236;color:#bac7da}
.dns-summary{display:grid;gap:9px;min-width:280px;max-width:560px}
.dns-record-block{background:#0c1628;border:1px solid rgba(48,65,95,.85);border-radius:10px;padding:10px 11px;min-width:0}
.dns-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dns-record-kind{font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:var(--text)}
.dns-record-name{margin-top:2px;color:var(--muted);font-size:10px}
.dns-values{display:grid;gap:6px;margin-top:8px}
.dns-record-value{display:block;margin:0;background:#091221;border:1px solid rgba(38,54,83,.75);border-radius:7px;padding:7px 8px;color:#dce7f6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.dns-record-empty{color:var(--muted);font-size:11px;font-style:italic}
.dns-checked{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 0;color:var(--muted);font-size:11px;line-height:1.4}
.dns-checked-label{font-weight:700;color:#b8c5d8}
.flash{padding:11px 13px;border-radius:10px;margin-bottom:16px;border:1px solid;line-height:1.45}.flash.success{background:#10291c;border-color:#245e3b;color:#b9f6cb}.flash.error{background:#321924;border-color:#743145;color:#ffc0cd}.flash.info{background:#14243a;border-color:#2d527d;color:#c5e0ff}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field.full{grid-column:1/-1}.field label{display:block;color:var(--muted);font-size:12px;margin:0 0 6px}.field input,.field select,.field textarea{width:100%;max-width:100%;background:#0b1425;color:#fff;border:1px solid #30415f;border-radius:9px;padding:10px 11px;outline:none;min-height:42px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#5b7bae}.field textarea{min-height:100px;resize:vertical}
.kv{display:grid;grid-template-columns:180px minmax(0,1fr);gap:8px 14px}.kv div:nth-child(odd){color:var(--muted)}
.progress{height:9px;border-radius:999px;background:#1b2940;overflow:hidden}.progress>span{display:block;height:100%;background:var(--green)}
.alert-item{display:grid;grid-template-columns:85px minmax(0,1fr) auto;gap:14px;align-items:start;padding:13px 0;border-bottom:1px solid var(--border)}.alert-item:last-child{border:0}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(430px,100%);background:var(--panel);border:1px solid var(--border);border-radius:17px;padding:26px;box-shadow:var(--shadow)}.auth-card h1{margin:0 0 5px}.auth-card p{color:var(--muted);margin:0 0 20px}.auth-card .field{margin-bottom:14px}.auth-card .btn{width:100%}
.empty{padding:28px;text-align:center;color:var(--muted)}
hr{border:0;border-top:1px solid var(--border);margin:18px 0}
.source-status-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.source-status-form select{background:#0b1425;color:#fff;border:1px solid #30415f;border-radius:7px;padding:6px;max-width:100%}
.upload-card{max-width:720px}
.mt-20{margin-top:20px}.mt-14{margin-top:14px}.mt-12{margin-top:12px}

@media(max-width:1100px){
  .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.dashboard-lower{grid-template-columns:1fr}
}

@media(max-width:760px){
  .layout{display:block;min-height:100dvh}
  .sidebar{height:auto;min-height:0;position:sticky;top:0;border-right:0;border-bottom:1px solid var(--border);padding:11px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;background:rgba(13,22,40,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .brand{padding:0;font-size:16px;gap:10px}
  .brand-mark{width:32px;height:32px;flex-basis:32px;border-radius:9px}
  .mobile-nav-toggle{display:grid}
  .nav{display:none;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:12px 0 3px}
  .sidebar.menu-open .nav{display:grid}
  .nav a{padding:11px 12px;background:#111c30;border:1px solid transparent}
  .nav a.active{border-color:#2d4164;background:#17243a}
  .sidebar-footer{display:none;position:static;grid-column:1/-1;padding:12px 0 3px;margin-top:6px;border-top:1px solid var(--border)}
  .sidebar.menu-open .sidebar-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .sidebar-footer form{margin:0}
  main{padding:18px 14px 28px;max-width:none}
  .topbar{display:block;margin-bottom:18px}
  .topbar h1{font-size:24px}
  .sub{font-size:13px;margin-top:5px}
  .actions{margin-top:12px;width:100%}
  .topbar>.actions .btn{flex:1 1 auto}
  .form-grid,.grid.two,.grid.domains-layout,.grid.dashboard-lower{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .grid.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .grid{gap:12px}
  .card{padding:15px;border-radius:13px}
  .metric{font-size:26px;margin-top:6px}
  .section{margin-top:14px}
  .section-head{margin-bottom:8px}
  .kv{grid-template-columns:1fr;gap:4px}
  .kv div:nth-child(odd){margin-top:9px;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.kv div:first-child{margin-top:0}
  .alert-item{grid-template-columns:1fr;gap:8px}.alert-item>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .upload-card{max-width:none}
  .empty{padding:22px 12px}

  /* Tabellen worden op telefoon leesbare kaarten in plaats van brede desktop-tabellen. */
  .mobile-table thead{display:none}
  .mobile-table,.mobile-table tbody,.mobile-table tr,.mobile-table td{display:block;width:100%}
  .mobile-table tr{padding:13px 0;border-bottom:1px solid var(--border)}
  .mobile-table tr:first-child{padding-top:3px}.mobile-table tr:last-child{border-bottom:0;padding-bottom:3px}
  .mobile-table td{border:0;padding:5px 0;display:grid;grid-template-columns:minmax(108px,34%) minmax(0,1fr);gap:10px;align-items:start;overflow-wrap:anywhere}
  .mobile-table td::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.05em;line-height:1.5}
  .mobile-table td.mobile-primary{display:block;padding-bottom:8px}
  .mobile-table td.mobile-primary::before{display:none}
  .mobile-table td.mobile-actions{display:block;padding-top:8px}
  .mobile-table td.mobile-actions::before{display:none}
  .mobile-table td.mobile-actions .actions{margin-top:0}
  .mobile-table .actions form,.mobile-table .actions .btn{flex:1 1 auto}
  .mobile-table .actions .btn{width:100%}

  /* DNS-records als compacte, zelfstandige statusblokken. */
  .mobile-table td.domain-dns{display:block;padding:7px 0 10px}
  .mobile-table td.domain-dns::before{display:block;margin-bottom:8px}
  .domain-dns .dns-summary{min-width:0;max-width:none;gap:8px}
  .domain-dns .dns-record-block{padding:10px;border-radius:9px}
  .domain-dns .dns-record-head{align-items:center}
  .domain-dns .badge{flex:0 0 auto;justify-content:center;padding:5px 9px;font-size:11px}
  .domain-dns .dns-record-value{font-size:10px;padding:7px;line-height:1.45}
  .domain-dns .dns-checked{margin-top:1px;padding-top:8px;border-top:1px solid rgba(38,54,83,.7);font-size:11px}
  .domain-dns .dns-checked-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em}
  .domain-dns .dns-checked>span:last-child{text-align:right;color:var(--muted);white-space:nowrap}
}

@media(max-width:430px){
  main{padding-left:12px;padding-right:12px}
  .grid.cards{grid-template-columns:1fr 1fr}
  .metric-label{font-size:10px}.metric{font-size:23px}
  .card{padding:14px}
  .nav{grid-template-columns:1fr 1fr}
  .mobile-table td{grid-template-columns:96px minmax(0,1fr);gap:8px}
}

@media(max-width:360px){
  .grid.cards{grid-template-columns:1fr}
  .nav{grid-template-columns:1fr}
  .brand-text{max-width:180px}
}
