/* KCAL Cockpit — huisstijl, overgenomen uit het jaarbeeld
   Navy #2F2F7E + oranje #EE7023, font Source Sans 3, witte ronde kaarten. */
:root{
  --blauw:#2F2F7E;
  --blauw-d:#26266a;
  --oranje:#EE7023;
  --oranje-d:#cf5f1c;
  --licht:#e9eefc;
  --licht2:#f3f6fd;
  --rand:#c9d3ea;
  --wit:#fff;
  --grijs:#5b6473;
  --schaduw:0 8px 28px rgba(47,47,126,.12);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font-family:'Source Sans 3','Source Sans Pro',Arial,sans-serif;
  color:var(--blauw);
  background:var(--licht2);
  -webkit-font-smoothing:antialiased;
}

/* ---------- Cockpit-topbalk ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--blauw);color:#fff;
  padding:12px 22px;border-bottom:3px solid var(--oranje);
}
.topbar .merk{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.topbar .merk img{height:34px;width:auto;background:#fff;border-radius:7px;padding:3px}
.topbar .merk .naam{font-weight:900;font-size:18px;letter-spacing:-.3px}
.topbar .rechts{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:600}
.rolbadge{
  background:rgba(255,255,255,.16);padding:3px 11px;border-radius:20px;
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
}
.uitlog{background:var(--oranje);color:#fff;border:0;padding:8px 15px;border-radius:9px;
  font:inherit;font-weight:800;font-size:13px;cursor:pointer;transition:.2s}
.uitlog:hover{background:var(--oranje-d);transform:translateY(-1px)}

/* ---------- Cockpit-inhoud ---------- */
.inhoud{max-width:960px;margin:0 auto;padding:36px 22px}
.inhoud h1{font-size:30px;font-weight:900;letter-spacing:-.5px;margin:0 0 6px}
.inhoud .sub{color:var(--grijs);font-weight:600;margin:0 0 28px}

.tegels{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.tegel{
  display:block;background:var(--wit);border:1.5px solid var(--blauw);border-radius:14px;
  padding:22px;text-decoration:none;color:var(--blauw);box-shadow:var(--schaduw);
  transition:transform .2s ease, box-shadow .2s ease;position:relative;overflow:hidden;
}
.tegel::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--oranje)}
a.tegel:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(47,47,126,.20)}
.tegel .icoon{font-size:30px;line-height:1}
.tegel h2{font-size:18px;font-weight:900;margin:14px 0 4px}
.tegel p{margin:0;color:var(--grijs);font-size:14px;font-weight:600;line-height:1.4}
.tegel.soon{opacity:.85}
.label{display:inline-block;margin-top:12px;font-size:11px;font-weight:800;text-transform:uppercase;
  letter-spacing:.6px;padding:4px 10px;border-radius:7px}
.label.soon{background:#fde3d2;color:var(--oranje-d)}

/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(135deg,var(--blauw),var(--blauw-d))}
.login-kaart{background:#fff;border-radius:16px;padding:36px 32px;width:340px;
  box-shadow:0 18px 48px rgba(0,0,0,.28);text-align:center}
.login-kaart img{height:62px;margin-bottom:14px}
.login-kaart h1{font-size:21px;font-weight:900;margin:0 0 2px;letter-spacing:-.3px}
.login-kaart .sub{color:var(--grijs);font-size:13px;font-weight:600;margin:0 0 6px;
  padding-bottom:16px;border-bottom:3px solid var(--oranje)}
.login-kaart label{display:block;text-align:left;font-size:12px;font-weight:800;text-transform:uppercase;
  letter-spacing:.5px;color:var(--grijs);margin:16px 0 5px}
.login-kaart input{width:100%;padding:11px 13px;border:1.5px solid var(--rand);border-radius:10px;
  font:inherit;font-size:15px;color:var(--blauw)}
.login-kaart input:focus{outline:none;border-color:var(--oranje)}
.login-kaart button{width:100%;margin-top:22px;background:var(--blauw);color:#fff;border:0;
  padding:12px;border-radius:10px;font:inherit;font-weight:800;font-size:15px;cursor:pointer;transition:.2s}
.login-kaart button:hover{background:var(--blauw-d);transform:translateY(-1px)}
.fout{background:#fde6e3;color:#cf3622;font-size:13px;font-weight:700;padding:10px 12px;
  border-radius:9px;margin-bottom:6px}

/* ---------- Iframe-frame voor onderdelen ---------- */
html.frame,body.frame{height:100%;overflow:hidden}
.frame-bar{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;height:52px;
  background:var(--blauw);color:#fff;padding:0 16px;border-bottom:3px solid var(--oranje);
}
.fb-links{display:flex;align-items:center;gap:12px;min-width:0}
.fb-midden{display:flex;justify-content:center}
.fb-rechts{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.terugknop{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);
  color:#fff;text-decoration:none;font-weight:800;font-size:14px;padding:8px 16px;border-radius:9px;
  transition:.2s;white-space:nowrap}
.terugknop:hover{background:rgba(255,255,255,.26)}
.frame-bar .titel{font-weight:900;font-size:15px;letter-spacing:-.2px;opacity:.95;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frame-bar .merk-mini{height:28px;width:auto;background:#fff;border-radius:6px;padding:3px;flex:none}
.onderdeel{display:block;width:100%;height:calc(100vh - 52px);border:0}

/* ---------- Eenvoudige pagina (terug-link) ---------- */
.terug{display:inline-block;margin-bottom:18px;color:var(--blauw);font-weight:800;
  text-decoration:none;font-size:14px}
.terug:hover{color:var(--oranje)}

@media (max-width:600px){
  .topbar .merk .naam{font-size:16px}
  .frame-bar{padding:0 10px;gap:8px}
  .frame-rol{display:none}
  .terugknop{font-size:13px;padding:7px 12px}
  .frame-bar .titel{font-size:14px}
}
