/* estart.be beheer - Apple-stijl, zie het goedgekeurde ontwerp */
:root{
  --bg:#f5f5f7; --surface:#ffffff; --surface-2:#fbfbfd; --fill:#e8e8ed; --fill-2:#f0f0f3;
  --ink:#1d1d1f; --ink-2:#6e6e73; --ink-3:#86868b;
  --line:#d2d2d7; --hair:rgba(0,0,0,.08);
  --accent:#c9403a; --accent-hover:#b3352f; --on-accent:#ffffff; --brand:#f06862; --accent-tint:#fdeceb;
  --mark:#7c8797;
  --ok:#1f7a36; --ok-tint:#e4f4e8; --warn:#9a4a00; --warn-tint:#fff0dc; --err:#b3261e; --err-tint:#fce8e6;
  --serp-title:#1a0dab; --serp-url:#202124; --serp-text:#4d5156;
  --shadow:0 1px 2px rgba(0,0,0,.04), 0 8px 28px rgba(0,0,0,.06);
  --glass:rgba(245,245,247,.82);
  --font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono:"SF Mono", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#000000; --surface:#1c1c1e; --surface-2:#232325; --fill:#2c2c2e; --fill-2:#242426;
    --ink:#f5f5f7; --ink-2:#a1a1a6; --ink-3:#8e8e93;
    --line:#3a3a3c; --hair:rgba(255,255,255,.09);
    --accent:#ff6b62; --accent-hover:#ff8078; --on-accent:#1b0605; --brand:#ff7d75; --accent-tint:#3b1f1d;
    --mark:#8e98a8;
    --ok:#32d74b; --ok-tint:#10301a; --warn:#ffb340; --warn-tint:#3a2a12; --err:#ff8a80; --err-tint:#3b1a18;
    --serp-title:#8ab4f8; --serp-url:#dadce0; --serp-text:#bdc1c6;
    --shadow:0 0 0 1px rgba(255,255,255,.06);
    --glass:rgba(22,22,24,.82);
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15px/1.47 var(--font);letter-spacing:-.011em;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px;border-radius:8px}
h1,h2,h3{text-wrap:balance;margin:0}
img{max-width:100%}
.mono{font-family:var(--mono);font-size:.86em;letter-spacing:0}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-2)}
svg.i{width:18px;height:18px;flex:none}

/* ---------- knoppen, pills, schakelaars ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:980px;padding:9px 18px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;text-decoration:none}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-quiet{background:var(--fill);color:var(--ink)}
.btn-quiet:hover{background:var(--line)}
.btn-danger{background:transparent;color:var(--err);box-shadow:inset 0 0 0 1px var(--line);width:100%}
.btn-danger:hover{background:var(--err-tint)}
.btn-lg{padding:12px 22px;font-size:16px;width:100%}
.btn-link{border:0;background:none;padding:0;color:var(--accent);font-size:13px;cursor:pointer}
.btn-link:hover{text-decoration:underline}
.btn-link.danger{color:var(--err)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:980px;white-space:nowrap;vertical-align:2px}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.ok{color:var(--ok);background:var(--ok-tint)}
.pill.warn{color:var(--warn);background:var(--warn-tint)}
.pill.off{color:var(--ink-2);background:var(--fill)}
input.switch{appearance:none;-webkit-appearance:none;position:relative;width:51px;height:31px;margin:0;border-radius:31px;background:var(--line);cursor:pointer;flex:none;transition:background .2s}
input.switch::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);transition:transform .2s}
input.switch:checked{background:var(--ok)}
input.switch:checked::after{transform:translateX(20px)}

/* ---------- meldingen ---------- */
.melding{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:14px;font-weight:500}
.melding.ok{background:var(--ok-tint);color:var(--ok)}
.melding.fout{background:var(--err-tint);color:var(--err)}
.info{font-size:14px;color:var(--ink-2);background:var(--fill-2);border-radius:12px;padding:10px 16px;margin:-8px 0 24px}
.leeg{color:var(--ink-3);font-size:14px;margin:0;padding:12px 0}
.leeg.pad{padding:16px}

/* ---------- gegroepeerde lijsten (zoals Instellingen op iPhone) ---------- */
.group{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:46px}
.row + .row{border-top:1px solid var(--hair)}
.row:focus-within{background:var(--surface-2)}
.row > label,.row > .lbl{width:124px;flex:none}
.row > label.between{width:auto;flex:1}
.row input:not([type=checkbox]):not([type=file]),.row select{flex:1;min-width:0;border:0;background:transparent;padding:4px 0;outline:none}
.row select{cursor:pointer;color:var(--ink-2);text-align:right}
.row input::placeholder,.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.sec-title{font-size:13px;font-weight:600;color:var(--ink-2);margin:0 0 8px 16px;text-transform:uppercase;letter-spacing:.06em}
.sec-note{font-size:13px;color:var(--ink-3);margin:8px 16px 0}
.stack{display:grid;gap:24px;min-width:0;align-content:start}
.narrow{max-width:560px}
.form-acties{margin-top:16px}

/* ---------- login ---------- */
.login{display:grid;place-items:center;min-height:100vh;padding:48px 16px}
.login-card{width:min(380px,100%);display:grid;gap:24px}
.login-head{display:grid;justify-items:center;gap:10px;text-align:center}
.mark{display:grid;place-items:center;border-radius:50%;background:var(--mark);color:#fff;font-weight:600;line-height:1}
.mark.lg{width:72px;height:72px;font-size:46px;padding-bottom:6px}
.mark.sm{width:28px;height:28px;font-size:18px;padding-bottom:3px}
.wordmark{font-size:15px;color:var(--ink-2)}
.wordmark b{color:var(--ink);font-weight:600}
.tagline{font-family:var(--mono);font-size:12px;color:var(--ink-3);letter-spacing:0}
.login h1{font-size:28px;line-height:1.14;font-weight:700;letter-spacing:-.02em;margin-top:8px}
.login-form{display:grid;gap:20px}
.login-intro{margin:0;color:var(--ink-2);font-size:14px;text-align:center}
.login-foot{margin:0;text-align:center;font-size:12px;color:var(--ink-3)}
.login .melding{margin:0}

/* ---------- app ---------- */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding:18px 12px;
  background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-right:1px solid var(--hair)}
.side-brand{display:flex;align-items:center;gap:10px;padding:0 8px;font-weight:600;color:var(--ink)}
.side-brand:hover{text-decoration:none}
.side-brand > span:last-child{color:var(--ink-3);font-weight:400}
.nav{display:grid;gap:2px}
.nav-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding:0 10px 4px}
.nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;color:var(--ink);font-size:14px}
.nav a:hover{background:var(--fill-2);text-decoration:none}
.nav a[aria-current="page"]{background:var(--fill);font-weight:600}
.nav a .count{margin-left:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:400}
.nav .soon{padding:5px 10px;font-size:13px;color:var(--ink-3)}
.side-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 0;border-top:1px solid var(--hair);font-size:13px}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:600;flex:none}
.who{display:grid;line-height:1.3;min-width:0;flex:1}
.who span{color:var(--ink-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.afmelden{font-size:12px;white-space:nowrap}

.main{padding:36px clamp(16px,4vw,48px) 80px;max-width:1140px;width:100%}
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.phead h1{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.024em;overflow-wrap:anywhere}
.phead p{margin:6px 0 0;color:var(--ink-2);font-size:17px}
.phead .actions{display:flex;gap:8px;flex-wrap:wrap}

.panel{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);padding:18px 20px 8px;min-width:0}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}
.panel-head h2{font-size:17px;font-weight:600;letter-spacing:-.015em}
.panel-head a{font-size:13px}
.panel-sub{font-size:13px;color:var(--ink-3);margin:-2px 0 8px}
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--hair)}
.list li:first-child{border-top:0}
.list .t{display:grid;min-width:0;flex:1;line-height:1.35}
.list .t b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .t > span{font-size:13px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list .r{font-size:13px;color:var(--ink-3);white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;flex:none}
.dot.warn{background:var(--warn)}
a.list-link{display:flex;align-items:center;gap:12px;color:inherit;flex:1;min-width:0}
a.list-link:hover{text-decoration:none}
a.list-link:hover b{color:var(--accent)}
.tag{font-size:11px;font-weight:600;color:var(--warn);background:var(--warn-tint);padding:1px 7px;border-radius:6px;margin-left:6px;vertical-align:1px}

/* ---------- overzicht ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border-radius:18px;box-shadow:var(--shadow);margin-bottom:20px}
.stat{padding:18px 22px;display:grid;gap:2px}
.stat + .stat{border-left:1px solid var(--hair)}
.stat .v{font-size:30px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}
.stat .k{font-size:13px;font-weight:600}
.stat .s{font-size:13px;color:var(--ink-3)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px;align-items:start}
.bars li{display:grid;grid-template-columns:minmax(0,11.5rem) 1fr 4.2rem;gap:12px}
.bars .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--ink)}
.bars .track{height:8px;border-radius:8px;background:var(--fill-2);overflow:hidden}
.bars .fill{display:block;height:100%;border-radius:8px;background:var(--brand)}
.bars .n{text-align:right;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* ---------- artikels ---------- */
.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.seg{display:flex;gap:2px;padding:3px;background:var(--fill);border-radius:10px;overflow-x:auto;max-width:100%}
.seg a{padding:6px 12px;border-radius:7px;font-size:13px;white-space:nowrap;color:var(--ink)}
.seg a:hover{text-decoration:none;background:var(--fill-2)}
.seg a span{color:var(--ink-3);margin-left:4px;font-variant-numeric:tabular-nums}
.seg a[aria-current="page"]{background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:600}
.seg a.attn span{color:var(--warn);font-weight:600}
.search{display:flex;align-items:center;gap:8px;background:var(--fill);border-radius:10px;padding:7px 12px;width:min(260px,100%);color:var(--ink-3)}
.search input{border:0;background:transparent;outline:none;flex:1;min-width:0;color:var(--ink)}
.panel-table{padding:8px 8px 0}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12px;font-weight:600;color:var(--ink-3);padding:6px 12px 10px;white-space:nowrap}
td{padding:11px 12px;border-top:1px solid var(--hair);vertical-align:middle}
tbody tr[data-href]{cursor:pointer}
tbody tr:hover td{background:var(--surface-2)}
td a.tt{font-weight:500;color:var(--ink)}
td .st{display:block;font-size:13px;color:var(--ink-2)}
th.rechts,td.rechts{text-align:right}
td.id{color:var(--ink-3)}
.table-foot{font-size:13px;color:var(--ink-3);padding:12px}

/* ---------- artikel bewerken ---------- */
.back{display:inline-flex;align-items:center;gap:4px;font-size:15px;margin-bottom:10px}
.editor{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.slug{flex:1;display:flex;align-items:center;min-width:0;font-family:var(--mono);font-size:13px;letter-spacing:0}
.slug > span{color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.slug input{font:inherit}
.group-editor textarea{display:block;width:100%;min-height:320px;border:0;padding:16px 20px;background:var(--surface);font:13px/1.5 var(--mono);resize:vertical;outline:none}
.group-editor .tox-tinymce{border:0!important;border-radius:0!important}

.serp{background:var(--surface);border-radius:12px;box-shadow:var(--shadow);padding:18px 20px;font-family:Arial, "Helvetica Neue", sans-serif;letter-spacing:0}
.serp-label{font-family:var(--font);font-size:12px;color:var(--ink-3);margin-bottom:10px;letter-spacing:-.005em}
.serp-site{display:flex;align-items:center;gap:10px;margin-bottom:6px;min-width:0}
.serp-fav{width:28px;height:28px;border-radius:50%;background:var(--fill);display:grid;place-items:center;flex:none}
.serp-fav .mark{width:18px;height:18px;font-size:13px;padding-bottom:2px;font-family:var(--font)}
.serp-site > div:last-child{display:grid;line-height:1.3;min-width:0}
.serp-site b{font-weight:400;font-size:14px;color:var(--serp-url)}
.serp-site span{font-size:12px;color:var(--serp-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.serp-title{font-size:20px;line-height:1.3;color:var(--serp-title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.serp-desc{font-size:14px;line-height:1.58;color:var(--serp-text);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.field{display:grid;gap:8px;padding:14px 16px}
.field + .field{border-top:1px solid var(--hair)}
.field-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.field-top label{font-weight:500}
.field input,.field textarea{width:100%;border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:9px 12px;outline:none;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--accent)}
.meter{height:4px;border-radius:4px;background:var(--fill-2);overflow:hidden}
.meter i{display:block;height:100%;width:0;border-radius:4px;transition:width .2s}
.meter i.ok{background:var(--ok)}
.meter i.warn{background:var(--warn)}
.hint{font-size:13px;color:var(--ink-2)}
.count{font-size:12px;color:var(--ink-3);white-space:nowrap}

.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px}
.media-item{display:grid;gap:4px;min-width:0;align-content:start}
.media-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--fill-2)}
.media-item img.ontbreekt{object-position:-9999px 0}
.media-doc{display:grid;place-items:center;aspect-ratio:4/3;border-radius:8px;background:var(--fill-2);font-size:13px}
.media-item .rol{font-size:12px;font-weight:600;margin-top:4px}
.media-item .bestand{font-size:11px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);letter-spacing:0}
.media-acties{display:flex;gap:10px;flex-wrap:wrap}
.upload{display:grid;gap:12px;padding:14px 16px 16px;border-top:1px solid var(--hair)}
.drop{display:grid;justify-items:center;gap:4px;text-align:center;padding:20px 14px;border:1.5px dashed var(--line);border-radius:12px;color:var(--ink-2);font-size:14px;cursor:pointer}
.drop small{color:var(--ink-3);font-size:12px}
.drop.over,.upload:focus-within .drop{border-color:var(--accent);background:var(--accent-tint)}
.drop-naam{font-size:12px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.file-verborgen{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.inline-veld{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}
.inline-veld select{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:6px 10px}
.kv-list{padding:14px 16px;display:grid;gap:10px}
.kv{display:flex;justify-content:space-between;gap:12px;font-size:14px}
.kv > span:first-child{color:var(--ink-2);flex:none}
.kv > span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}

@media (max-width: 900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;flex-direction:row;align-items:center;gap:8px;padding:8px 12px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--hair)}
  .side-brand > span:last-child,.nav.later,.who,.avatar{display:none}
  .nav{display:flex;gap:2px}
  .nav a .count{display:none}
  .side-foot{margin:0 0 0 auto;border:0;padding:0}
  .grid-2,.editor{grid-template-columns:minmax(0,1fr)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(3){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--hair)}
}
@media (max-width: 560px){
  .phead h1{font-size:28px}
  .bars li{grid-template-columns:minmax(0,1fr) 3.8rem}
  .bars .track{grid-column:1 / -1;order:3}
  th.rub,td.rub,th.hits,td.hits{display:none}
  .row > label,.row > .lbl{width:96px}
}
@media (prefers-reduced-motion: reduce){ *{transition:none!important} }
