:root{--bg:#f5f7fb;--card:#fff;--text:#172033;--muted:#6c778c;--line:#e1e6ef;--primary:#172f55;--accent:#f4b942;--danger:#b42318;--success:#067647}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--primary);text-decoration:none}.container{max-width:1180px;margin:0 auto;padding:0 22px}.site-header{background:#fff;border-bottom:1px solid var(--line)}
.nav{height:68px;display:flex;align-items:center;justify-content:space-between}.nav nav{display:flex;gap:20px;align-items:center}.brand{font-weight:800;color:var(--primary);font-size:20px}.page{padding-top:42px;padding-bottom:60px}
.hero{min-height:520px;display:grid;place-items:center;text-align:center}.hero h1{font-size:clamp(38px,7vw,72px);margin:10px 0}.hero p{max-width:720px;margin:0 auto 28px;color:var(--muted);font-size:19px}.eyebrow{font-weight:700;color:#8a5d00}
.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 17px;font-weight:700;cursor:pointer}.btn.primary{background:var(--primary);color:#fff}.btn.secondary{background:#eef2f8;color:var(--primary)}.btn.full{width:100%}
.card,.auth-card,.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px rgba(28,42,68,.05)}.card{padding:24px;margin-bottom:22px}.auth-card{max-width:460px;margin:35px auto;padding:30px}.auth-card h1{margin-top:0}
label{display:block;font-weight:650;margin:14px 0}input,select{width:100%;margin-top:6px;padding:12px 13px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;font:inherit}.muted{color:var(--muted)}.alert{padding:12px 14px;border-radius:9px;margin:12px 0}.alert.error{background:#fef3f2;color:var(--danger)}.alert.success{background:#ecfdf3;color:var(--success)}
.inline-form{display:inline}.link-button{border:0;background:none;color:var(--primary);font:inherit;cursor:pointer;padding:0}.site-footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);background:#fff}
.admin-shell{display:flex;min-height:100vh}.sidebar{width:255px;background:#13233e;color:#fff;padding:23px 18px;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar a,.sidebar .disabled-link{display:block;padding:9px 11px;border-radius:8px;color:#d9e1ee;margin:2px 0}.sidebar a:hover{background:rgba(255,255,255,.08);color:#fff}.admin-brand{color:#fff!important;margin-bottom:24px}.menu-label{text-transform:uppercase;font-size:11px;letter-spacing:.12em;color:#8392aa;margin:22px 10px 6px}.disabled-link{opacity:.48}.disabled-link small{float:right}.sidebar-logout{margin-top:25px}.sidebar-logout button{width:100%;border:1px solid #40516b;background:transparent;color:#fff;padding:10px;border-radius:8px;cursor:pointer}.admin-main{margin-left:255px;width:calc(100% - 255px)}.admin-topbar{height:65px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0}.admin-content{padding:28px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat{padding:20px}.stat span{display:block;color:var(--muted)}.stat strong{display:block;font-size:31px;margin-top:7px}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.toolbar h1{margin:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{display:inline-block;background:#eef2f8;padding:4px 8px;border-radius:999px;font-size:12px}.form-card{max-width:760px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.diagnostic-row{display:grid;grid-template-columns:1.4fr 1fr 80px;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.diagnostic-row .ok{color:var(--success)}.diagnostic-row .bad{color:var(--danger)}
@media(max-width:900px){.sidebar{width:72px;padding:18px 8px}.sidebar a,.sidebar .disabled-link{font-size:0}.sidebar .menu-label,.sidebar small,.sidebar-logout{display:none}.admin-brand{font-size:0}.admin-brand:after{content:'IWR';font-size:17px}.admin-main{margin-left:72px;width:calc(100% - 72px)}.grid-4{grid-template-columns:1fr 1fr}.admin-content{padding:18px}}
@media(max-width:620px){.grid-4,.form-grid{grid-template-columns:1fr}.nav nav{gap:10px}.admin-topbar span{display:none}.diagnostic-row{grid-template-columns:1fr}.hero{min-height:380px}}
/* Sprint 2 — Rijschool Core */
.page-actions{display:flex;gap:10px;justify-content:flex-end;margin:0 0 16px}.filter-row,.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filter-row label,.inline-form label{min-width:150px;flex:1}.inline-form .wide{flex:2;min-width:260px}.form-grid{display:grid;gap:16px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .span-2{grid-column:span 2}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 22px}.check{display:flex!important;align-items:center;gap:9px;padding:10px 12px;border:1px solid #e1e6ef;border-radius:10px;background:#fff}.check input{width:auto;margin:0}.check.compact{min-width:auto;flex:0 0 auto}.block{display:block}.muted{color:#667085}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2f6;font-size:12px;font-weight:700}.school-head,.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.school-head h1{margin:3px 0}.subnav{display:flex;gap:8px;overflow:auto;margin:0 0 16px;padding:8px;background:#fff;border:1px solid #e1e6ef;border-radius:12px;position:sticky;top:0;z-index:5}.subnav a{white-space:nowrap;padding:7px 10px;border-radius:8px;text-decoration:none;color:#344054}.subnav a:hover{background:#f2f4f7}.sticky-save{position:sticky;bottom:14px;display:flex;justify-content:flex-end;z-index:5;margin:-6px 0 20px;pointer-events:none}.sticky-save .btn{pointer-events:auto;box-shadow:0 6px 20px rgba(0,0,0,.12)}.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.chip{display:inline-flex;align-items:center;gap:7px;background:#eef4ff;border-radius:999px;padding:7px 10px}.chip form{display:inline}.chip button{border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1}.link-danger{border:0;background:none;color:#b42318;cursor:pointer;padding:0}.media-list{display:grid;gap:8px;margin-bottom:16px}.media-item{display:flex;justify-content:space-between;gap:15px;border:1px solid #e1e6ef;border-radius:10px;padding:12px}.media-item span,.media-item small{display:block;color:#667085;word-break:break-all}.table-card{overflow-x:auto}.table-card table{min-width:760px}
@media(max-width:900px){.check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.form-grid.two,.check-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.school-head,.card-head{align-items:flex-start;flex-direction:column}.page-actions{justify-content:stretch}.page-actions .btn{flex:1;text-align:center}}
/* Sprint 3 public directory */
main{min-height:70vh}.hero{background:linear-gradient(135deg,#f3f8ff 0%,#fff 55%,#eef8f3 100%);padding:72px 0}.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.hero-copy h1,.search-header h1,.profile-hero h1{font-size:clamp(2.25rem,5vw,4.4rem);line-height:1.02;margin:.4rem 0 1rem;letter-spacing:-.045em}.hero-copy p{font-size:1.15rem;max-width:680px;color:#51606f}.eyebrow{font-weight:800;text-transform:uppercase;font-size:.78rem;letter-spacing:.12em;color:#3666a7}.search-panel,.filters,.content-card,.contact-card,.info-card{background:#fff;border:1px solid #e4eaf0;border-radius:20px;box-shadow:0 12px 36px rgba(35,55,80,.07)}.search-panel{padding:24px;display:grid;gap:14px}.search-panel label,.filters label{font-size:.82rem;font-weight:700}.search-panel input,.search-panel select,.filters input,.filters select,.inline-search select{width:100%;padding:13px 14px;border:1px solid #ccd6df;border-radius:10px;background:#fff}.btn-large{padding:14px 18px}.section{padding:58px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.section-heading h2,.split h2{font-size:2rem;margin:.3rem 0}.city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.city-card{display:flex;flex-direction:column;padding:18px;border:1px solid #e3e8ed;border-radius:14px;text-decoration:none;color:inherit;background:#fff}.city-card span{color:#6d7884;font-size:.9rem;margin-top:3px}.city-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.06)}.soft-section{background:#f7f9fb}.stats-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:35px 0}.stats-strip>div{display:flex;flex-direction:column;text-align:center}.stats-strip strong{font-size:1.8rem}.stats-strip span{color:#6a7480}.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.info-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:24px}.info-card span{padding:14px;background:#f7f9fb;border-radius:12px}.search-header,.profile-hero{background:#f4f7fa;padding:42px 0}.search-header h1,.profile-hero h1{font-size:clamp(2rem,4vw,3.3rem)}.search-layout{display:grid;grid-template-columns:280px 1fr;gap:28px;padding-top:30px;padding-bottom:60px}.filters{padding:20px;height:max-content;position:sticky;top:16px}.filters form{display:grid;gap:10px}.results{min-width:0}.results-top{display:flex;justify-content:space-between;margin:4px 0 14px;color:#68727d}.school-card{display:grid;grid-template-columns:76px 1fr;gap:18px;padding:22px;border:1px solid #e0e6ec;border-radius:18px;background:#fff;margin-bottom:14px}.school-logo,.profile-logo{display:grid;place-items:center;border-radius:15px;background:#edf3f8;font-weight:800;font-size:1.6rem;overflow:hidden}.school-logo{width:76px;height:76px}.school-logo img,.profile-logo img{width:100%;height:100%;object-fit:cover}.school-title-line{display:flex;justify-content:space-between;gap:16px}.school-title-line h2{font-size:1.3rem;margin:0}.school-title-line h2 a{text-decoration:none;color:inherit}.muted{color:#75808b}.chips{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.chips span,.badge{font-size:.78rem;padding:6px 9px;border-radius:999px;background:#f0f3f6}.badge.premium{background:#fff5d8}.availability.available{background:#eaf8ef}.availability.limited{background:#fff8dc}.availability.waitlist{background:#fff0df}.availability.full{background:#fdecec}.school-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:14px}.full{width:100%;text-align:center;display:block}.btn-whatsapp{background:#eaf8ef;color:#176c3b;border:1px solid #bde3cb}.empty-state,.seo-copy{padding:32px;border:1px dashed #d6dde4;border-radius:16px;background:#fafbfc}.narrow-results{max-width:900px}.inline-search{display:flex;gap:10px;max-width:620px;margin-top:20px}.breadcrumbs{font-size:.86rem;color:#6f7b86;margin-bottom:12px}.breadcrumbs a{color:inherit}.profile-head{display:flex;align-items:center;gap:20px}.profile-logo{width:90px;height:90px}.profile-layout{display:grid;grid-template-columns:1fr 340px;gap:28px;padding-top:30px;padding-bottom:60px}.profile-content{display:grid;gap:18px}.content-card,.contact-card{padding:24px}.contact-card{height:max-content;position:sticky;top:16px}.contact-card .btn{margin-bottom:10px}.feature-list{display:flex;gap:10px;flex-wrap:wrap}.feature-list span{padding:9px 12px;background:#f5f7f9;border-radius:10px}.price-list>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #edf0f2}.price-list small{display:block;color:#77818b;margin-top:3px}.availability-box{padding:14px;border-radius:12px;margin-bottom:20px;background:#f3f5f7}.availability-box.available{background:#eaf8ef}.availability-box.limited{background:#fff8dc}.availability-box.waitlist{background:#fff0df}.availability-box.full{background:#fdecec}.availability-box small{display:block;margin-top:4px}.address,.claim-box{border-top:1px solid #e8ecef;margin-top:18px;padding-top:18px}.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:30px}.footer-bottom{padding-top:20px;padding-bottom:25px;color:#7b858e}.public-nav{display:flex;align-items:center;gap:18px}
@media(max-width:900px){.hero-inner,.split,.profile-layout{grid-template-columns:1fr}.search-layout{grid-template-columns:1fr}.filters,.contact-card{position:static}.city-grid{grid-template-columns:repeat(2,1fr)}.profile-layout{padding-left:16px;padding-right:16px}.hero{padding:45px 0}}
@media(max-width:600px){.city-grid,.stats-strip,.info-card{grid-template-columns:1fr}.school-card{grid-template-columns:54px 1fr;padding:16px}.school-logo{width:54px;height:54px}.school-title-line,.school-bottom{align-items:flex-start;flex-direction:column}.public-nav a:first-child{display:none}.inline-search{flex-direction:column}.profile-head{align-items:flex-start}.profile-logo{width:72px;height:72px}.footer-grid{grid-template-columns:1fr}}
/* Sprint 4 — Claim & Rijschoolportaal */
textarea{width:100%;margin-top:6px;padding:12px 13px;border:1px solid #cfd6e2;border-radius:9px;background:#fff;font:inherit;resize:vertical}.wide-card{max-width:650px}.claim-explain{padding:15px;background:#f7f9fc;border:1px solid var(--line);border-radius:12px;margin:18px 0}.portal-page{background:#f6f8fb}.portal-nav{display:flex;gap:8px;overflow:auto;margin-bottom:20px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:13px}.portal-nav a{white-space:nowrap;padding:9px 11px;border-radius:9px}.portal-nav a:hover{background:#f0f4f8}.portal-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:30px;margin-bottom:22px;background:linear-gradient(135deg,#172f55,#244b82);color:#fff;border-radius:20px}.portal-hero h1{font-size:2.2rem;margin:5px 0}.portal-hero p{margin:0;color:#dce7f7}.portal-hero .eyebrow{color:#ffd679}.score-ring{min-width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.12);border:8px solid rgba(255,255,255,.25);display:grid;place-items:center;text-align:center}.score-ring strong{display:block;font-size:1.8rem}.score-ring span{display:block;font-size:.75rem}.onboarding-callout{display:flex;justify-content:space-between;align-items:center;gap:20px;border-left:4px solid var(--accent)}.onboarding-callout p{margin:4px 0 0}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-grid a{padding:18px;border:1px solid var(--line);border-radius:12px;background:#fafcff;font-weight:700}.wizard-steps{display:flex;justify-content:center;gap:14px;margin:0 0 22px}.wizard-steps span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e8edf4;font-weight:800}.wizard-steps span.active{background:var(--primary);color:#fff}.wizard-steps span.done{background:#dff3e7;color:var(--success)}.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.summary-box{display:flex;flex-direction:column;padding:18px;background:#f7f9fb;border-radius:12px}.claim-actions{display:flex;gap:7px}.narrow{max-width:820px}.auth-card .form-grid.two{grid-template-columns:1fr 1fr}
@media(max-width:700px){.portal-hero,.onboarding-callout{align-items:flex-start;flex-direction:column}.score-ring{min-width:95px;width:95px;height:95px}.quick-grid,.auth-card .form-grid.two{grid-template-columns:1fr}.portal-nav{margin-left:-8px;margin-right:-8px}.claim-actions{flex-direction:column}}

/* Sprint 5 - subscriptions */
.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:24px 0}.pricing-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:14px}.pricing-card.current-plan{outline:2px solid #111827}.price strong{font-size:30px}.price span,.year-price{color:#64748b}.feature-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.feature-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.plan-badge{background:#111827;color:#fff;border-radius:16px;padding:14px 20px;display:flex;flex-direction:column}.premium-ribbon{background:#111827;color:#fff;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.disabled-button{pointer-events:none;opacity:.65}.stat small{display:block;color:#64748b;margin-top:4px}@media(max-width:900px){.pricing-grid{grid-template-columns:1fr 1fr}.feature-admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.pricing-grid,.feature-admin-grid{grid-template-columns:1fr}}

/* Sprint 6.2 Stripe QA */
.qa-status{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.qa-status.pass{background:#ecfdf3;color:#067647}.qa-status.warn{background:#fffaeb;color:#b54708}.qa-status.fail{background:#fef3f2;color:#b42318}.qa-mode{padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800}.qa-mode.test{background:#ecfdf3;color:#067647}.qa-mode.live{background:#fef3f2;color:#b42318}.qa-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.qa-actions form{border:1px solid #e5e7eb;border-radius:14px;padding:18px}.qa-actions label{display:block;margin:10px 0}@media(max-width:900px){.qa-actions{grid-template-columns:1fr}}

/* Sprint 7 */
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.content-narrow{max-width:820px}.rich-content{line-height:1.75}.rich-content h2,.rich-content h3{margin-top:1.5em}.lead{font-size:1.15rem;color:#475569}@media(max-width:900px){.article-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.article-grid{grid-template-columns:1fr}}

/* Sprint 8 */
.analytics-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.analytics-bars>div{padding:18px;border:1px solid #e5e7eb;border-radius:14px;display:flex;justify-content:space-between}.analytics-bars strong{font-size:1.4rem}@media(max-width:700px){.analytics-bars{grid-template-columns:1fr}}

/* Sprint 9 */
.lead-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.check{display:flex!important;gap:10px;align-items:flex-start}.check input{width:auto!important;margin-top:4px}@media(max-width:760px){.lead-grid{grid-template-columns:1fr}}

/* Sprint 11 Growth */
.growth-recommend{border-width:2px}.growth-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.growth-plan-grid>div{border:1px solid #e5e7eb;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:5px}.growth-plan-grid small{color:#64748b}@media(max-width:850px){.growth-plan-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.growth-plan-grid{grid-template-columns:1fr}}
.trial-badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#ecfdf3;color:#067647;font-weight:700;font-size:12px}

/* Sprint 12 Operations */
.ops-hero{border-radius:18px;padding:24px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#f8fafc;border:2px solid #cbd5e1}.ops-green{background:#ecfdf3;border-color:#a6f4c5}.ops-amber{background:#fffaeb;border-color:#fedf89}.ops-red{background:#fef3f2;border-color:#fecdca}.ops-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.incident{padding:4px 9px;border-radius:999px;font-size:12px;font-weight:800}.incident.critical{background:#fef3f2;color:#b42318}.incident.warning{background:#fffaeb;color:#b54708}.health-all-good{padding:16px;border-radius:12px;background:#ecfdf3;color:#067647;font-weight:700}@media(max-width:850px){.ops-two{grid-template-columns:1fr}.ops-hero{align-items:flex-start;flex-direction:column}}
