Skip to main content

oefenhub_beheerder_01_frontpage_V1_6.html

Korte beschrijving

Mockup van de beheerder-frontpage van OefenHub. Deze pagina toont de centrale start- en overzichtsweergave voor beheerders, met snelle doorgangen naar beheeronderdelen zoals site-instellingen, contentbeheer, accountbeheer en samenvattende beheerinformatie.

Gerelateerde documentatie

Bestand

Broncode

/mockups_html/beheerder/oefenhub_beheerder_01_frontpage_V1_6.html
<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>OefenHub - Beheerder Frontpage</title>
<link href="./oefenhub_shared_logo.css" rel="stylesheet">
<style>
:root {
--blue-1:#8fd0ff; --blue-2:#5bb3ff; --blue-3:#1f82e9; --blue-4:#0d5db8;
--text:#114f95; --muted:#5f7ea5; --line:rgba(17,79,149,.12);
--orange-1:#ffbb4d; --orange-2:#ff9620; --orange-3:#f87400;
--green-1:#8adf67; --green-2:#57ba3c; --green-3:#2c9348;
--yellow-1:#ffd04e; --yellow-2:#f6aa07; --yellow-3:#8a5d00;
--red-soft:#fde4e4; --red-text:#b74d4d; --purple-1:#8d6cff; --purple-2:#6147d8;
--shadow:0 12px 28px rgba(35,100,177,.12); --shadow-soft:0 8px 18px rgba(35,100,177,.08);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
font-family:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
color:var(--text);
background:
radial-gradient(circle at 8% 14%, rgba(255,255,255,.68) 0 12%, transparent 13%),
radial-gradient(circle at 18% 10%, rgba(255,255,255,.45) 0 9%, transparent 10%),
radial-gradient(circle at 86% 17%, rgba(255,255,255,.58) 0 11%, transparent 12%),
linear-gradient(180deg, #7ec2f8 0%, #bfe2fd 15%, #edf7ff 34%, #f7fbff 100%);
min-height:100vh;
}
.wrap{width:min(1220px, calc(100% - 30px)); margin:0 auto;}
.header{
padding:10px 0 12px;
background:linear-gradient(180deg, rgba(100,171,238,.92), rgba(120,192,248,.85));
border-bottom:1px solid rgba(255,255,255,.38);
box-shadow:0 8px 20px rgba(28,100,177,.08);
position:relative; z-index:2;
}
.header-row{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px;}
.brand{display:flex; flex-direction:column; align-items:flex-start; min-width:250px;}
.brand img{display:block; height:46px; width:auto;}
.welcome-text{font-size:12px; color:rgba(17,79,149,.82); font-weight:700; margin-top:-10px; margin-left:53px;}
.nav-pills{display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:nowrap; white-space:nowrap;}
.nav-item{position:relative; display:inline-flex; align-items:center;}
.pill{border:0; border-radius:12px; padding:9px 14px; color:#fff; font-size:13px; font-weight:900; box-shadow:var(--shadow-soft); line-height:1; cursor:pointer; flex:0 0 auto;}
.pill.orange{background:linear-gradient(180deg,#ffbb4d,#ff7f12)}
.pill.blue{background:linear-gradient(180deg,#2f88ea,#176acc)}
.pill.green{background:linear-gradient(180deg,#8adf67,#58ba3d)}
.pill.has-chevron{display:inline-flex; align-items:center; gap:6px; padding-right:14px;}
.pill-caret{font-size:12px; line-height:1; transform:translateY(1px)}
.dropdown-menu{
position:absolute; top:calc(100% + 8px); left:0; width:306px;
background:linear-gradient(180deg, rgba(255,255,255,.97), rgba(244,250,255,.98));
border-radius:20px; box-shadow:0 12px 24px rgba(35,100,177,.16); border:1px solid rgba(170,204,238,.55);
padding:10px 12px; z-index:40; opacity:0; visibility:hidden; transform:translateY(-4px);
transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.dropdown-menu::before{content:""; position:absolute; top:-10px; left:36px; border-left:10px solid transparent; border-right:10px solid transparent; border-bottom:10px solid rgba(255,255,255,.97); filter:drop-shadow(0 -1px 0 rgba(170,204,238,.45));}
.dropdown-menu.align-right{left:auto; right:0; width:306px}
.dropdown-menu.align-right::before{left:auto; right:20px}
.nav-item:hover .dropdown-menu,.nav-item:focus-within .dropdown-menu,.nav-item.open .dropdown-menu{opacity:1; visibility:visible; transform:translateY(0)}
.menu-list{display:flex; flex-direction:column; gap:0}
.menu-link{
display:grid; grid-template-columns:auto 1fr; align-items:center; gap:9px; padding:8px 11px; border-radius:13px;
text-decoration:none; color:#18518f; font-size:15px; font-weight:900; box-shadow:inset 0 -1px 0 rgba(17,79,149,.10);
transition:background .18s ease, transform .18s ease;
}
.menu-link:last-child{box-shadow:none}
.menu-link:hover,.menu-link.is-active{background:linear-gradient(180deg,#edf5ff,#dcecff)}
.menu-link:hover{transform:translateX(2px)}
.menu-icon{width:23px; height:23px; border-radius:7px; display:grid; place-items:center; color:#fff; font-size:14px; font-weight:900; box-shadow:inset 0 1px 1px rgba(255,255,255,.35), 0 4px 8px rgba(0,0,0,.10)}
.menu-icon.green{background:linear-gradient(180deg,#8add68,#4baa35)}
.menu-icon.blue{background:linear-gradient(180deg,#49a4ff,#1f7fe2)}
.menu-icon.orange{background:linear-gradient(180deg,#ffbb4d,#ff7f12)}
.menu-icon.purple{background:linear-gradient(180deg,#8d6cff,#6147d8)}
.header-actions{display:flex; align-items:center; justify-content:flex-end; gap:10px; min-width:120px}
.mail-btn,.profile-chip{border:0; box-shadow:var(--shadow-soft); cursor:pointer}
.mail-btn{position:relative; width:40px; height:40px; border-radius:999px; background:linear-gradient(180deg,#ffffff,#eef6ff); color:var(--blue-4); font-size:17px}
.badge{position:absolute; right:-2px; bottom:-2px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#e23838; color:#fff; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; border:2px solid #fff}
.profile-nav{position:relative}
.profile-chip{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:999px; background:linear-gradient(180deg,#ffffff,#edf6ff); padding:0}
.avatar{width:28px; height:28px; border-radius:999px; display:grid; place-items:center; color:#fff; font-size:13px; font-weight:900; background:linear-gradient(180deg,#ffb247,#ff8120)}

main.wrap{padding:24px 0 42px}
.page-shell{background:transparent; border-radius:0; box-shadow:none; overflow:visible}
.page-content{padding:0}
.frontpage-intro-card,.summary-card,.timeline-card,.status-card,.focus-card,.list-card,.site-footer-panel{
background:rgba(255,255,255,.92); border:1px solid rgba(17,79,149,.08); border-radius:24px; box-shadow:var(--shadow-soft);
}
.teacher-frontpage-layout{display:grid; gap:18px}
.frontpage-intro-row{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch}
.frontpage-intro-card{padding:18px 24px 20px}
.frontpage-intro-title{margin:0 0 10px; font-size:22px; line-height:1.12; color:#0d5db8}
.frontpage-intro-text{margin:0; font-size:15px; line-height:1.6; max-width:840px}
.frontpage-intro-note{margin-top:16px; padding-top:14px; border-top:1px solid rgba(17,79,149,.12); font-size:14px; line-height:1.55; color:#5e7fa7}
.frontpage-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}
.frontpage-btn{display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 18px; border-radius:999px; border:0; text-decoration:none; font-size:13px; font-weight:900; box-shadow:var(--shadow-soft)}
.frontpage-btn.primary{background:linear-gradient(180deg,#ffbb4d,#ff7f12); color:#fff}
.frontpage-btn.secondary{background:linear-gradient(180deg,#eef6ff,#dcecff); color:#0d5db8}
.focus-card{padding:18px; display:grid; gap:12px; align-content:start}
.focus-kicker{display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; background:#edf5ff; color:#1b5ca0; font-size:12px; font-weight:900; width:max-content}
.focus-card h2{margin:0; font-size:20px; line-height:1.15; color:#0d5db8}
.focus-card p{margin:0; font-size:14px; line-height:1.55; color:#5f7ea5}
.focus-metrics{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.focus-metric{padding:12px 14px; border-radius:16px; background:#f7fbff; border:1px solid rgba(17,79,149,.08)}
.focus-metric strong{display:block; font-size:13px; color:#6b8bb2; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px}
.focus-metric span{display:block; font-size:18px; line-height:1.2; font-weight:900; color:var(--text)}

.dashboard-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.summary-card{padding:18px 20px; display:grid; gap:14px}
.card-head{display:flex; justify-content:space-between; gap:12px; align-items:flex-start}
.card-kicker{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:900; color:#6b8bb2; text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px}
.dot{width:10px; height:10px; border-radius:999px; display:inline-block}
.dot.admin{background:linear-gradient(180deg,#ffba4c,#ff7f12)}
.card-title{margin:0; font-size:20px; color:#0d5db8}
.card-intro{margin:6px 0 0; font-size:14px; line-height:1.55; color:#5f7ea5}
.context-tag{display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:900; white-space:nowrap}
.context-tag.admin{background:#fff0d8; color:#c27209}
.stats-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.history-summary-card{grid-column:1 / -1; height:430px;}
.history-summary-card .scroll-list{overflow:auto; flex:1 1 auto; padding-right:6px;}
.history-summary-card .card-head{align-items:flex-start;}
.history-summary-card .card-title-wrap{min-width:0;}
.history-summary-card .head-tags{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}

.stat-box{padding:12px 14px; border-radius:18px; background:linear-gradient(180deg,#ffffff,#f5faff); border:1px solid rgba(17,79,149,.08)}
.stat-label{display:block; font-size:12px; color:#6b8bb2; font-weight:900; text-transform:uppercase; letter-spacing:.04em; margin-bottom:7px}
.stat-value{display:block; font-size:24px; color:#0d5db8; font-weight:900; line-height:1; margin-bottom:6px}
.stat-meta{display:block; font-size:12px; line-height:1.5; color:#7390af}
.card-foot{display:grid; gap:4px; padding-top:6px; border-top:1px solid rgba(17,79,149,.10)}

.history-summary-card{min-height:412px}
.scroll-list{max-height:270px; overflow:auto; padding-right:6px}
.foot-label{font-size:13px; font-weight:900; color:#18518f}
.foot-copy{font-size:13px; line-height:1.5; color:#6280a3}

.content-row{display:grid; grid-template-columns:minmax(0,1.15fr) 360px; gap:18px}
.timeline-card,.status-card{padding:18px 20px}
.timeline-head,.status-head{display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:14px}
.timeline-head h3,.status-head h3{margin:0; font-size:20px; color:#0d5db8}
.timeline-head p,.status-head p{margin:6px 0 0; font-size:14px; line-height:1.55; color:#5f7ea5}
.timeline-list,.status-list,.quick-links{display:grid; gap:10px}
.timeline-item,.status-item,.quick-link{padding:12px 14px; border-radius:18px; background:linear-gradient(180deg,#ffffff,#f6fbff); border:1px solid rgba(17,79,149,.08)}
.timeline-item strong,.status-item strong,.quick-link strong{display:block; color:#184f90; font-size:15px; margin-bottom:4px}
.timeline-item span,.status-item span,.quick-link span{display:block; color:#6381a4; font-size:13px; line-height:1.5}
.timeline-byline{display:block; color:#6a84a2; font-size:12px; font-weight:700; margin-top:8px; line-height:1.45}
.timeline-meta{display:flex; flex-wrap:wrap; gap:8px; margin-top:0; position:absolute; top:12px; right:14px; justify-content:flex-end}
.timeline-item{position:relative; padding-right:220px}
@media (max-width:900px){.timeline-item{padding-right:14px}.timeline-meta{position:static; margin-top:8px; justify-content:flex-start}}
.chip{display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:999px; font-size:11px; font-weight:900}
.chip.blue{background:#dceeff; color:#216ab9}
.chip.green{background:#e3f7ea; color:#23804a}
.chip.orange{background:#fff0d8; color:#c27209}
.chip.red{background:#fde4e4; color:#b74d4d}
.status-cluster{display:grid; gap:12px}
.quick-link{text-decoration:none}
.quick-link:hover{background:linear-gradient(180deg,#ffffff,#eef6ff)}

.site-footer{margin-top:24px; background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,255,255,.96)); border-top:1px solid rgba(17,79,149,.10); box-shadow:var(--shadow); border-radius:26px 26px 0 0; padding:22px 28px 18px; overflow:visible}
.footer-grid{display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:36px; align-items:start; padding:0}
.footer-col h4{margin:0 0 12px; font-size:15px; color:#0d5db8; font-weight:900; padding-bottom:8px; border-bottom:1px solid rgba(17,79,149,.14)}
.footer-col p{margin:0; font-size:13px; line-height:1.55; color:var(--muted); font-weight:600}
.footer-links{display:flex; flex-direction:column; gap:10px}
.footer-links a{color:#18518f; text-decoration:none; font-size:13px; font-weight:700; transition:color .18s ease}
.footer-links a:hover{color:var(--blue-4); text-decoration:underline}
.footer-bottom{margin-top:18px; padding-top:14px; border-top:1px solid rgba(17,79,149,.10); display:flex; justify-content:space-between; gap:12px; align-items:center; flex-wrap:wrap; font-size:12px; color:var(--muted); font-weight:600}

@media (max-width:1100px){
.header-row{grid-template-columns:1fr; gap:14px}
.brand{justify-self:center; align-items:center; min-width:0}
.welcome-text{margin-left:0; margin-top:-6px}
.header-actions{justify-content:center}
.nav-pills{overflow-x:auto; justify-content:flex-start; padding-bottom:2px; width:100%}
.frontpage-intro-row,.dashboard-grid,.content-row,.footer-grid{grid-template-columns:1fr}
}
@media (max-width:700px){
.wrap{width:min(100%, calc(100% - 18px))}
.page-content{padding:18px}
.stats-grid,.focus-metrics{grid-template-columns:1fr}
.site-footer{padding:20px 18px 16px}
.footer-bottom{justify-content:flex-start}
}
</style>
</head>
<body>
<header class="header">
<div class="wrap">
<div class="header-row">
<div class="brand">
<div class="brand-logo" aria-label="OefenHub logo" role="img"></div>
<div class="welcome-text">Welkom terug, Noor</div>
</div>
<nav class="nav-pills" aria-label="Hoofdnavigatie beheerder">
<div class="nav-item"><button class="pill blue">Site instellingen</button></div>
<div class="nav-item">
<button class="pill orange has-chevron">Content <span class="pill-caret"></span></button>
<div class="dropdown-menu" role="menu" aria-label="Content submenu">
<div class="menu-list">
<a class="menu-link" href="#"><span class="menu-icon orange">C</span><span>Categorieën beheren</span></a>
<a class="menu-link" href="#"><span class="menu-icon blue">M</span><span>Modules beheren</span></a>
<a class="menu-link" href="#"><span class="menu-icon green">D</span><span>Docent ondersteuning</span></a>
</div>
</div>
</div>
<div class="nav-item"><button class="pill green">Accounts</button></div>
</nav>
<div class="header-actions">
<button class="mail-btn" aria-label="Berichten"><span></span><span class="badge">3</span></button>
<div class="profile-nav">
<button class="profile-chip" aria-label="Profielmenu"><span class="avatar">N</span></button>
</div>
</div>
</div>
</div>
</header>

<main class="wrap">
<section class="page-shell teacher-frontpage-shell">
<div class="page-content teacher-frontpage-layout">
<div class="frontpage-intro-row">
<section class="frontpage-intro-card" aria-label="Introductie beheerder frontpage">
<h1 class="frontpage-intro-title">Welkom op je beheer-frontpage</h1>
<p class="frontpage-intro-text">Vanaf deze startpagina krijg je in één oogopslag overzicht van contentbeheer, accounts en recente centrale wijzigingen. De frontpage is bedoeld als rustige oriëntatieplek voor een beheerder: snel zien waar aandacht nodig is, zonder direct alle beheerpagina’s open te hoeven zetten.</p>
</section>
<aside class="focus-card" aria-label="Beheerfocus vandaag">
<h2>Vandaag extra aandacht</h2>
<p>Deze kaart laat de kerncijfers zien die voor een beheerder direct relevant zijn: technische modules die niet actief zijn, het aantal beheerders, meldingen en systeemnotificaties die op dit moment zichtbaar zijn.</p>
<div class="focus-metrics">
<div class="focus-metric"><strong>Modules in onderhoud</strong><span>1</span></div>
<div class="focus-metric"><strong>Beheerders</strong><span>4</span></div>
<div class="focus-metric"><strong>Meldingen</strong><span>3 open / 1 nieuw</span></div>
<div class="focus-metric"><strong>Actieve notificaties</strong><span>3</span></div>
</div>
</aside>
</div>

<section class="dashboard-grid" aria-label="Beheerder overzichtsblokken">
<article class="summary-card">
<div class="card-head">
<div class="card-title-wrap">
<div class="card-kicker"><span class="dot admin"></span>Beheerder</div>
<h2 class="card-title">Contentbeheer</h2>
<p class="card-intro">Samenvatting van centrale modules, categorieën en docentstructuren met actieve inhoud voor leerlingen.</p>
</div>
<span class="context-tag admin">Content</span>
</div>
<div class="stats-grid">
<div class="stat-box"><span class="stat-label">Actieve categorieën</span><span class="stat-value">18</span><span class="stat-meta">Centrale categorieën die nog regulier inzetbaar zijn.</span></div>
<div class="stat-box"><span class="stat-label">Actieve modules</span><span class="stat-value">11</span><span class="stat-meta">Technische modules die beschikbaar zijn voor docenten.</span></div>
<div class="stat-box"><span class="stat-label">Actieve niveaus</span><span class="stat-value">42</span><span class="stat-meta">Docentniveaus waarvoor leerlingen momenteel toegang hebben.</span></div>
<div class="stat-box"><span class="stat-label">Actieve oefeningen</span><span class="stat-value">286</span><span class="stat-meta">Concrete docent-oefeningen die actief gekoppeld en inzetbaar zijn.</span></div>
</div>
</article>

<article class="summary-card">
<div class="card-head">
<div class="card-title-wrap">
<div class="card-kicker"><span class="dot admin"></span>Beheerder</div>
<h2 class="card-title">Accounts &amp; rollen</h2>
<p class="card-intro">Samenvatting van accounts en rolverdelingen binnen OefenHub, zodat je snel ziet waar de grootste gebruikersgroepen zitten.</p>
</div>
<span class="context-tag admin">Accounts</span>
</div>
<div class="stats-grid">
<div class="stat-box"><span class="stat-label">Totaal actieve accounts</span><span class="stat-value">428</span><span class="stat-meta">Accounts die momenteel actief zijn binnen OefenHub.</span></div>
<div class="stat-box"><span class="stat-label">Leerlingen</span><span class="stat-value">312</span><span class="stat-meta">Accounts met een actieve leerlingcontext.</span></div>
<div class="stat-box"><span class="stat-label">Docenten</span><span class="stat-value">36</span><span class="stat-meta">Accounts met een actieve docentcontext.</span></div>
<div class="stat-box"><span class="stat-label">Ouders/voogden</span><span class="stat-value">74</span><span class="stat-meta">Accounts met een actieve ouder-/voogdcontext.</span></div>
</div>
</article>

<article class="summary-card history-summary-card">
<div class="card-head">
<div class="card-title-wrap">
<div class="card-kicker"><span class="dot admin"></span>Beheerder</div>
<h2 class="card-title">Recente beheerwijzigingen</h2>
<p class="card-intro">Laatste centrale acties van beheerders op content-, account- en systeemniveau.</p>
</div>
<div class="head-tags">
<span class="context-tag admin">Historie</span>
<span class="context-tag admin">Laatste 30 dagen</span>
</div>
</div>
<div class="timeline-list scroll-list">
<div class="timeline-item">
<strong>Module “Basisrekenen” gemigreerd naar versie 2.3.1</strong>
<span>Uitgevoerd binnen Modules beheren voor alle actieve docentkoppelingen.</span>
<span class="timeline-byline">Naomi van Dijk · Vandaag · 09:42</span>
<div class="timeline-meta"><span class="chip orange">Modules beheren</span></div>
</div>
<div class="timeline-item">
<strong>Categorie “Rekenen basis” gemigreerd naar “Basisrekenen”</strong>
<span>Historie blijft herleidbaar; betrokken docenten zijn geïnformeerd via systeembericht.</span>
<span class="timeline-byline">Tom de Boer · Gisteren · 16:18</span>
<div class="timeline-meta"><span class="chip orange">Categorieën beheren</span></div>
</div>
<div class="timeline-item">
<strong>Contributor toegevoegd aan docentniveau “Groep 7”</strong>
<span>Toegevoegd vanuit docentondersteuning; eigendom is ongewijzigd gebleven.</span>
<span class="timeline-byline">Noor van Dijk · Gisteren · 11:07</span>
<div class="timeline-meta"><span class="chip green">Docent ondersteuning</span></div>
</div>
<div class="timeline-item">
<strong>Systeemnotificatie gepland voor zondagavond onderhoud</strong>
<span>Melding staat actief en wordt op iedere beheerder- en docentcontext getoond.</span>
<span class="timeline-byline">Naomi van Dijk · 25 mrt 2026 · 14:56</span>
<div class="timeline-meta"><span class="chip orange">Site instellingen</span></div>
</div>
<div class="timeline-item">
<strong>Eigenaarschap overgezet voor niveau “Groep 8”</strong>
<span>Oude eigenaar bleef contributor; nieuwe eigenaar is via docentondersteuning bevestigd.</span>
<span class="timeline-byline">Tom de Boer · 24 mrt 2026 · 10:21</span>
<div class="timeline-meta"><span class="chip green">Docent ondersteuning</span></div>
</div>
<div class="timeline-item">
<strong>Actieve notificatie bijgewerkt voor onderhoudsvenster</strong>
<span>De eindtijd van de melding is aangepast na een wijziging in de onderhoudsplanning.</span>
<span class="timeline-byline">Naomi van Dijk · 23 mrt 2026 · 15:04</span>
<div class="timeline-meta"><span class="chip orange">Site instellingen</span></div>
</div>
</div>
</article>
</section></section>

<footer class="site-footer">
<div class="footer-grid">
<div class="footer-col"><h4>OefenHub Beheer</h4><p>Start vanuit deze frontpage met systeemcontrole, contentoverzicht en recente beheerwijzigingen.</p></div>
<div class="footer-col"><h4>Snelle toegang</h4><div class="footer-links"><a href="#">Content</a><a href="#">Site instellingen</a><a href="#">Accounts</a></div></div>
<div class="footer-col"><h4>Ondersteuning</h4><div class="footer-links"><a href="#">Privacybeleid</a><a href="#">Contact</a><a href="#">Uitloggen</a></div></div>
</div>
<div class="footer-bottom">© 2026 OefenHub</div>
</footer>
</main>
</body>
</html>