/* Link AI klantportaal. Tokens = linkaiagency.com v3 (wit + paars). Geen framework. */
:root{
  --bg:#fbfafd; --paper:#fff; --side:#f5f2fb; --ink:#15121f; --ink-2:#3b3748; --muted:#625e70; --faint:#8d8a99;
  --line:rgba(21,18,31,.09); --line-2:rgba(21,18,31,.16);
  --p:#5b3fa6; --p-2:#7a5cc4; --p-3:#a58ae6; --lilac:#f1ecfc; --lilac-2:#e4dbfa; --deep:#1d1238;
  --ok:#1f7a4d; --ok-bg:#e6f4ec; --warn:#8a5a00; --warn-bg:#fdf3dc; --err:#b42335; --err-bg:#fbe9ec;
  --display:"Clash Grotesk","Satoshi",ui-sans-serif,system-ui,sans-serif;
  --sans:"Satoshi",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:14px; --ease:cubic-bezier(.2,.7,.1,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--p)}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--p);outline-offset:2px;border-radius:6px}
h1,h2,h3{margin:0;color:var(--ink);letter-spacing:-.01em}
h1{font:600 24px/1.2 var(--sans)}
h2{font:600 18px/1.3 var(--sans)}
h3{font:600 15px/1.35 var(--sans)}
p{margin:0}
.muted{color:var(--muted)}
.small{font-size:13px}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- knoppen + velden ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:999px;border:0;background:var(--p);color:#fff;font:600 15px/1 var(--sans);cursor:pointer;text-decoration:none;transition:background .2s,transform .2s var(--ease),box-shadow .2s;box-shadow:0 8px 22px -12px rgba(91,63,166,.8)}
.btn:hover{background:var(--deep);color:#fff}
.btn:active{transform:translateY(1px)}
.btn[disabled],.btn[aria-busy=true]{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.btn--ghost:hover{background:var(--lilac);color:var(--ink)}
.btn--danger{background:transparent;color:var(--err);box-shadow:inset 0 0 0 1.5px rgba(180,35,53,.3)}
.btn--danger:hover{background:var(--err-bg);color:var(--err)}
.btn--meta{background:#1877f2;box-shadow:0 8px 22px -12px rgba(24,119,242,.9)}
.btn--meta:hover{background:#0f5fc8}
.btn--wa{background:#1a8d4f;box-shadow:0 8px 22px -12px rgba(26,141,79,.9)}
.btn--wa:hover{background:#12703d}
.btn--sm{min-height:36px;padding:0 14px;font-size:14px}
.btn--block{width:100%}
.link{background:none;border:0;padding:0;color:var(--p);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
label{display:block;font:600 14px/1.3 var(--sans);margin:0 0 6px}
.field{margin-bottom:18px}
.hint{font-size:13px;color:var(--muted);margin-top:6px}
input[type=email],input[type=text],input[type=url],select{width:100%;min-height:46px;padding:10px 14px;border-radius:10px;border:1.5px solid var(--line-2);background:#fff;font:400 16px/1.3 var(--sans);color:var(--ink);transition:border-color .2s}
input:focus,select:focus{outline:none;border-color:var(--p);box-shadow:0 0 0 3px var(--lilac-2)}
input::placeholder{color:var(--faint)}
.msg{padding:12px 14px;border-radius:10px;font-size:14px;margin:0 0 16px}
.msg--ok{background:var(--ok-bg);color:var(--ok)}
.msg--err{background:var(--err-bg);color:var(--err)}
.msg--warn{background:var(--warn-bg);color:var(--warn)}
.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font:600 12px/1.6 var(--sans);background:var(--lilac);color:var(--p)}
.pill--ok{background:var(--ok-bg);color:var(--ok)}
.pill--off{background:#f0eff3;color:var(--muted)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor}

/* ---------- login / welkom: twee panelen ---------- */
.split{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(320px,5fr) 7fr}
.brandside{position:relative;background:var(--deep);color:#efeaf9;padding:48px clamp(28px,4vw,64px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;isolation:isolate}
.brandside::after{content:"";position:absolute;inset:auto -20% -35% -20%;height:70%;background:radial-gradient(closest-side,rgba(122,92,196,.55),rgba(122,92,196,0));z-index:-1}
.brandside__logo{display:flex;align-items:center;gap:12px;color:#fff;font:600 16px/1 var(--sans)}
.brandside__logo img{width:32px;height:auto}
.brandside__logo .x{color:var(--p-3);font-weight:400}
.brandside__logo .client{max-height:34px;max-width:140px;width:auto;border-radius:6px;background:#fff;padding:3px}
.brandside h1{font:600 clamp(34px,3.6vw,54px)/1.02 var(--display);letter-spacing:-.03em;color:#fff;max-width:13ch;text-wrap:balance}
.brandside p{color:#cfc6e8;font-size:17px;max-width:38ch;margin-top:18px}
.brandside small{color:#a99fc9;font-size:13px}
.formside{display:flex;align-items:center;justify-content:center;padding:48px 24px;background:var(--paper)}
.formbox{width:100%;max-width:440px}
.formbox h2{font:600 30px/1.1 var(--display);letter-spacing:-.02em;margin-bottom:8px}
.formbox .lead{color:var(--muted);margin-bottom:28px}

/* stappen */
.steps{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:4px;counter-reset:s}
.steps li{display:flex;align-items:center;gap:14px;padding:10px 0;color:#a99fc9;font-weight:500}
.steps li::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(255,255,255,.22);font:600 13px/1 var(--sans);color:#cfc6e8;transition:all .25s var(--ease)}
.steps li[aria-current=step]{color:#fff}
.steps li[aria-current=step]::before{background:#fff;color:var(--deep);border-color:#fff}
.steps li.done{color:#cfc6e8}
.steps li.done::before{content:"";background:var(--p-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--p-2)}
.step{animation:in .35s var(--ease)}
@keyframes in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.what{display:grid;gap:12px;margin:0 0 26px;padding:0;list-style:none}
.what li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-2)}
.what li svg{color:var(--p);margin-top:2px}
.logo-drop{display:flex;align-items:center;gap:16px;padding:14px;border:1.5px dashed var(--line-2);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s}
.logo-drop:hover,.logo-drop:focus-within{border-color:var(--p);background:var(--lilac)}
.logo-drop__img{width:56px;height:56px;border-radius:10px;background:var(--side);display:grid;place-items:center;overflow:hidden;color:var(--faint)}
.logo-drop__img img{width:100%;height:100%;object-fit:contain}
.logo-drop input{position:absolute;opacity:0;width:1px;height:1px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.row--end{justify-content:space-between}
.found{border:1px solid var(--line);border-radius:12px;padding:6px 16px;margin:0 0 22px}
.found div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.found div:last-child{border:0}

/* ---------- app shell ---------- */
.shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh;min-height:100dvh}
.side{background:var(--side);border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;height:100dvh;overflow:auto}
.ws{display:flex;align-items:center;gap:10px;padding:6px 8px}
.ws__logo{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;font:700 16px/1 var(--sans);color:var(--p);flex:none}
.ws__logo img{width:100%;height:100%;object-fit:contain}
.ws__name{font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.ws select{min-height:32px;padding:4px 8px;font-size:13px;margin-top:4px}
.nav{display:grid;gap:2px}
.nav__h{font:600 12px/1 var(--sans);color:var(--faint);padding:14px 10px 6px;letter-spacing:.02em}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--ink-2);text-decoration:none;font-weight:500;transition:background .15s}
.nav a:hover{background:rgba(91,63,166,.07);color:var(--ink)}
.nav a[aria-current=page]{background:#fff;color:var(--p);font-weight:700;box-shadow:0 1px 2px rgba(21,18,31,.06),inset 0 0 0 1px var(--line)}
.nav a .soon{margin-left:auto;font-size:11px;color:var(--faint);font-weight:500}
.side__foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px 8px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.side__foot img{width:20px}
.main{min-width:0;padding:28px clamp(16px,3vw,40px) 60px}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.top p{color:var(--muted);margin-top:4px}
.seg{display:inline-flex;background:#efecf5;border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:none;padding:7px 14px;border-radius:8px;font:600 13px/1 var(--sans);color:var(--muted);cursor:pointer}
.seg button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(21,18,31,.12)}
.mobilebar{display:none}

/* KPI's */
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-bottom:28px;overflow:hidden}
.kpi{padding:16px 18px;border-right:1px solid var(--line)}
.kpi:last-child{border:0}
.kpi dt{font-size:13px;color:var(--muted);font-weight:500}
.kpi dd{margin:6px 0 0;font:600 26px/1.1 var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi--lead dd{color:var(--p)}

/* tabel */
.tablewrap{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);overflow-x:auto;margin-bottom:32px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:11px 14px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
th:first-child,td:first-child{text-align:left;white-space:normal;min-width:200px}
th{font:600 12px/1.3 var(--sans);color:var(--muted);background:#faf9fc}
tr:last-child td{border-bottom:0}
td.strong{font-weight:700;color:var(--p)}
.sechead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 12px}

/* kaart per ad */
.adgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-bottom:32px}
.ad{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s var(--ease)}
.ad:hover{box-shadow:0 10px 30px -18px rgba(29,18,56,.45)}
.ad__img{aspect-ratio:1/1;background:var(--side);display:grid;place-items:center;color:var(--faint);overflow:hidden}
.ad__img img{width:100%;height:100%;object-fit:cover}
.ad__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;flex:1}
.ad__name{font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.ad__camp{font-size:13px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.ad__leads{display:flex;align-items:baseline;gap:8px;margin-top:auto}
.ad__leads b{font:600 34px/1 var(--sans);color:var(--p);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ad__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
.ad__stats b{display:block;color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.zero{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);margin-bottom:32px}
.zero summary{padding:14px 16px;cursor:pointer;font-weight:600}
.zero ul{list-style:none;margin:0;padding:0 16px 10px}
.zero li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}

/* social */
.postgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:32px}
.post{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.post:hover{color:inherit;box-shadow:0 10px 30px -18px rgba(29,18,56,.45)}
.post__img{aspect-ratio:1/1;background:var(--side);overflow:hidden;display:grid;place-items:center;color:var(--faint)}
.post__img img{width:100%;height:100%;object-fit:cover}
.post__body{padding:12px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.post__text{font-size:14px;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.post__meta{display:flex;gap:14px;font-size:13px;color:var(--muted);margin-top:auto;align-items:center}
.post__meta span{display:inline-flex;align-items:center;gap:4px}
.post__meta svg.i{width:15px;height:15px}

/* inbox */
.inbox{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);min-height:480px;overflow:hidden}
.threads{border-right:1px solid var(--line);overflow:auto;max-height:70vh}
.threads button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:12px 14px;cursor:pointer;font:inherit;color:inherit}
.threads button:hover{background:#faf9fc}
.threads button[aria-current=true]{background:var(--lilac)}
.threads b{display:block}
.threads span{font-size:13px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thread{padding:18px;display:flex;flex-direction:column;gap:10px;overflow:auto;max-height:70vh}
.bubble{max-width:75%;padding:9px 13px;border-radius:14px;background:#f0eef5;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.bubble.mine{align-self:flex-end;background:var(--p);color:#fff}
.bubble time{display:block;font-size:11px;opacity:.7;margin-top:3px}

/* lege + laad-staten */
.empty{border:1.5px dashed var(--line-2);border-radius:var(--r);padding:36px 24px;text-align:center;display:grid;justify-items:center;gap:10px;background:var(--paper)}
.empty svg.i{width:28px;height:28px;color:var(--p)}
.empty p{max-width:46ch;color:var(--muted)}
.skel{background:linear-gradient(90deg,#efedf4 25%,#f7f6fa 50%,#efedf4 75%);background-size:200% 100%;animation:sk 1.2s infinite linear;border-radius:var(--r)}
@keyframes sk{to{background-position:-200% 0}}
.skel--kpi{height:84px;margin-bottom:28px}
.skel--card{height:320px}

/* instellingen */
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:20px}
.panel h2{margin-bottom:4px}
.conn{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.conn:first-of-type{border-top:0}
.conn__icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;flex:none}
.conn__icon--meta{background:#1877f2}.conn__icon--wa{background:#1a8d4f}.conn__icon--g{background:#fff;border:1px solid var(--line);color:var(--ink)}
.conn__txt{flex:1;min-width:180px}
.members{list-style:none;padding:0;margin:12px 0 18px}
.members li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.invite{display:grid;grid-template-columns:1fr 140px auto;gap:10px;align-items:end}

/* ---------- mobiel ---------- */
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .brandside{padding:28px 20px 32px;min-height:auto}
  .brandside h1{font-size:32px;max-width:none}
  .brandside p{font-size:15px;margin-top:10px}
  .brandside .steps{display:flex;gap:6px;margin-top:22px}
  .brandside .steps li{padding:0;font-size:0;gap:0}
  .brandside small{display:none}
  .formside{padding:28px 16px 48px;align-items:flex-start}
  .shell{grid-template-columns:1fr}
  .side{display:none;position:fixed;inset:0;z-index:40;height:100dvh}
  .side.open{display:flex}
  .mobilebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--side);position:sticky;top:0;z-index:30}
  .main{padding:20px 16px 48px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi{border-bottom:1px solid var(--line)}
  .kpi--lead{grid-column:1/-1;order:-1}
  .inbox{grid-template-columns:1fr}
  .threads{max-height:240px;border-right:0;border-bottom:1px solid var(--line)}
  .invite{grid-template-columns:1fr}
  .adgrid{grid-template-columns:1fr 1fr;gap:10px}
  .ad__leads b{font-size:28px}
  .postgrid{grid-template-columns:1fr 1fr;gap:10px}
}
@media (max-width:420px){.adgrid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.mt{margin-top:16px}
[tabindex="-1"]:focus{outline:none}
@media (max-width:900px){.split{grid-template-rows:auto 1fr;align-content:start}.brandside{gap:20px;justify-content:flex-start}}
