:root{--bg:#f7f8fa;--bg-elev:#ffffff;--fg:#16202b;--fg-muted:#5a6b7b;--border:#e3e8ee;--border-strong:#cdd6e0;--primary:#1d6a5a;--primary-fg:#ffffff;--primary-soft:#e6f2ee;--accent:#0b4f8a;--accent-soft:#e6eef7;--warn:#8a5a0b;--warn-soft:#f6ecd9;--danger:#9a2c2c;--danger-soft:#f6e3e3;--shadow:0 1px 2px rgba(16,32,43,0.06),0 8px 24px rgba(16,32,43,0.06);--radius:12px;--maxw:1080px}@media (prefers-color-scheme:dark){:root{--bg:#0e1419;--bg-elev:#161d25;--fg:#e8edf2;--fg-muted:#9fb0c0;--border:#26313c;--border-strong:#33414f;--primary:#3aa88f;--primary-fg:#06120e;--primary-soft:#14332b;--accent:#5aa2e0;--accent-soft:#12283d;--warn:#d3a24e;--warn-soft:#33280f;--danger:#e08585;--danger-soft:#331717;--shadow:0 1px 2px rgba(0,0,0,0.4),0 8px 24px rgba(0,0,0,0.3)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}body{min-height:100vh;display:flex;flex-direction:column}body>main{flex:1 0 auto;width:100%}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--border);background:var(--bg-elev);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.site-header .inner{display:flex;align-items:center;justify-content:space-between;height:60px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--fg);font-size:1.05rem}.brand:hover{text-decoration:none}.brand .stamp{display:inline-grid;place-items:center;width:30px;height:30px;border:2px solid var(--primary);color:var(--primary);border-radius:8px;transform:rotate(-6deg);font-size:15px}.site-footer{flex-shrink:0;margin-top:64px;border-top:1px solid var(--border);color:var(--fg-muted);font-size:.85rem;background:var(--bg-elev)}.site-footer .inner{display:flex;flex-wrap:wrap;gap:8px 20px;padding:20px 0;align-items:center}.site-footer a{color:var(--fg-muted)}.hero{min-height:calc(100vh - 60px - 90px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 0 64px}.hero h1{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;margin:0 0 12px;letter-spacing:-.02em}.hero .lead{color:var(--fg-muted);font-size:1.08rem;max-width:540px;margin:0 auto 28px}.search{display:flex;gap:8px;width:100%;max-width:100%;margin:0 auto}.hero .search{max-width:680px}.search input{flex:1 1;font-size:1.05rem;padding:14px 16px;border:1.5px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elev);color:var(--fg);outline:none;transition:border-color .15s,box-shadow .15s}.search input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.btn{font-size:1rem;font-weight:600;padding:14px 22px;border-radius:var(--radius);border:1.5px solid transparent;background:var(--primary);color:var(--primary-fg);cursor:pointer;white-space:nowrap}.btn:hover{filter:brightness(1.05)}.btn.secondary{background:transparent;color:var(--fg);border-color:var(--border-strong)}.trust-note{margin-top:20px;font-size:.9rem;color:var(--fg-muted);max-width:520px}.page-head{padding:28px 0 8px}.page-head h1{font-size:1.4rem;margin:0 0 4px}.page-head .sub{color:var(--fg-muted);font-size:.95rem}.results{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-gap:12px;gap:12px}.card{display:block;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);color:var(--fg)}.card:hover{text-decoration:none;border-color:var(--border-strong)}.card .name{font-weight:700;font-size:1.1rem}.card .meta{color:var(--fg-muted);font-size:.9rem;margin-top:2px}.card .badges{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.badge.cat-oeffentlich_bestellt{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.badge.cat-iso_17024{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.badge.cat-berufsverband{background:var(--warn-soft);color:var(--warn);border-color:var(--warn);border-style:dashed}.badge.status-expired{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.badge.status-unknown{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.detail-head{padding:28px 0 4px}.detail-head h1{margin:0 0 4px;font-size:1.8rem;letter-spacing:-.02em}.detail-head .loc{color:var(--fg-muted);font-size:1rem}.loc-list{margin:4px 0 0;padding-left:18px}.loc-list li{font-size:.95rem}.summary-line{margin:16px 0 24px;padding:14px 16px;border-radius:var(--radius);background:var(--primary-soft);color:var(--primary);font-weight:600;border:1px solid var(--primary)}.summary-line.none{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.cert-list{display:grid;grid-gap:16px;gap:16px}.cert-card{background:var(--bg-elev);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.cert-card.cat-oeffentlich_bestellt{border-left-color:var(--accent)}.cert-card.cat-berufsverband{border-left-color:var(--warn);border-left-style:dashed}.cert-card .cert-title{font-weight:700;font-size:1.12rem;margin:0 0 4px}.cert-card .cert-desc{color:var(--fg-muted);font-size:.92rem;margin:6px 0 12px}.cert-facts{list-style:none;margin:0 0 14px;padding:0;font-size:.9rem;display:grid;grid-gap:4px;gap:4px}.cert-facts b{font-weight:600;color:var(--fg)}.cert-facts .k{color:var(--fg-muted);display:inline-block;min-width:130px}.source-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;padding:9px 14px;border:1.5px solid var(--border-strong);border-radius:10px;color:var(--fg)}.source-link:hover{text-decoration:none;border-color:var(--primary);color:var(--primary)}.disclaimer{margin:32px 0 0;padding:16px 18px;font-size:.85rem;background:var(--bg-elev);border:1px dashed var(--border-strong);border-radius:var(--radius)}.disclaimer,.empty{color:var(--fg-muted)}.empty{text-align:center;padding:40px 20px}.empty h2{color:var(--fg);font-size:1.2rem}.empty .sources{margin-top:16px;display:grid;grid-gap:6px;gap:6px;justify-items:center}.prose{padding:28px 0;max-width:none}.prose li,.prose p{font-size:1.04rem;line-height:1.65}.prose h1{font-size:1.6rem;margin-bottom:8px}.prose h2{font-size:1.15rem;margin-top:28px}.prose li,.prose p{color:var(--fg)}.breadcrumbs,.prose small{color:var(--fg-muted)}.breadcrumbs{padding:12px 0 0;font-size:.82rem}.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}.breadcrumbs li:after{content:"›";margin-left:6px;color:var(--border-strong)}.breadcrumbs li:last-child:after{content:""}.breadcrumbs a{color:var(--fg-muted)}.breadcrumbs [aria-current]{color:var(--fg);font-weight:600}.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin:28px 0 8px;flex-wrap:wrap}.pagination a,.pagination span{min-width:38px;text-align:center;padding:8px 12px;border:1px solid var(--border-strong);border-radius:9px;color:var(--fg);font-size:.9rem}.pagination a:hover{border-color:var(--primary);text-decoration:none}.pagination .current{background:var(--primary);color:var(--primary-fg);border-color:var(--primary);font-weight:600}.pagination .disabled{opacity:.4;pointer-events:none}.pagination .gap{border:none;padding:8px 4px}.did-you-mean{margin-top:8px}.did-you-mean h2{font-size:1.15rem;color:var(--fg);margin-bottom:4px}.did-you-mean .lead{color:var(--fg-muted);margin-bottom:12px}.infobox{margin:20px 0;padding:16px 18px;border-radius:var(--radius);background:var(--accent-soft);border:1px solid var(--accent);color:var(--accent);font-size:.92rem}.infobox a{color:var(--accent);font-weight:600;text-decoration:underline}.infobox.neutral{background:var(--bg-elev);border-color:var(--border-strong);color:var(--fg)}.infobox.neutral a{color:var(--accent)}.map-shell{display:grid;grid-template-columns:340px 1fr;grid-gap:0;gap:0;height:calc(100vh - 140px);min-height:460px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin:12px 0 24px}.map-shell,.map-sidebar{background:var(--bg-elev)}.map-sidebar{border-right:1px solid var(--border);overflow-y:auto;padding:20px}.map-canvas{position:relative;z-index:0;isolation:isolate}#map{position:absolute;inset:0}.map-filters label{font-weight:600;margin:16px 0 6px;display:block;font-size:.9rem}.map-sidebar input:not([type=checkbox]){width:100%;padding:11px 14px;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--bg);color:var(--fg);font:inherit;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.map-sidebar input:not([type=checkbox]):focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-soft)}.map-count{font-size:.85rem;color:var(--fg-muted);margin:8px 0}.leaflet-popup-content{font:inherit}.map-popup-name{font-weight:700}.map-popup-badges{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.check-row{display:flex;align-items:center;gap:9px;font-weight:500;margin:8px 0;font-size:.92rem;cursor:pointer}.check-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary);margin:0}@media (max-width:760px){.map-shell{grid-template-columns:1fr;height:auto;gap:0}.map-sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:44vh}#map,.map-canvas{height:60vh}#map{position:relative}}.brand,.main-nav{white-space:nowrap}.main-nav{display:flex;gap:18px;align-items:center;font-size:.95rem}.main-nav a{color:var(--fg)}.main-nav a.badge{color:var(--primary)}.nav-short{display:none}@media (max-width:640px){.brand{font-size:.95rem}.main-nav{gap:12px;font-size:.88rem}.nav-full,.nav-secondary{display:none}.nav-short{display:inline}}.trust-bar{margin-top:26px;max-width:760px}.trust-label{display:block;font-size:.8rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.trust-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.chip{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-elev);color:var(--fg)}.chip-verband{border-style:dashed;color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.faq details{border:1px solid var(--border);border-radius:10px;background:var(--bg-elev);margin:8px 0;padding:0 16px}.faq summary{cursor:pointer;font-weight:600;padding:14px 0;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";float:right;color:var(--fg-muted)}.faq details[open] summary:after{content:"–"}.faq details p{margin:0 0 14px;color:var(--fg-muted)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;grid-gap:28px;gap:28px;padding:32px 20px 12px;font-size:.88rem}.footer-grid h4{margin:0 0 8px;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--fg)}.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:5px;gap:5px}.footer-grid p{margin:0 0 8px}.footer-grid .datenstand{color:var(--fg)}.footer-bottom{padding:12px 20px 20px;border-top:1px solid var(--border);font-size:.8rem}.site-footer .inner{display:none}@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:520px){.footer-grid{grid-template-columns:1fr}.main-nav{gap:10px;font-size:.85rem}}.expiry{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:3px 9px;border-radius:999px}.expiry.soon{background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn)}.expiry.expired{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.stats-row{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px}.stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:10px 14px;min-width:140px}.stat b{display:block;font-size:1.3rem}.stat span{font-size:.8rem;color:var(--fg-muted)}.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:6px 18px;gap:6px 18px;list-style:none;padding:0;margin:12px 0 24px}.link-grid a{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--border);color:var(--fg)}.link-grid a span{color:var(--fg-muted);font-size:.85rem}.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:18px;gap:18px;list-style:none;padding:0;margin:16px 0 32px}.article-card{display:block;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;color:var(--fg);box-shadow:var(--shadow)}.article-card:hover{text-decoration:none;border-color:var(--border-strong)}.article-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.article-card .body{padding:14px 16px 16px}.article-card h3{margin:0 0 6px;font-size:1.05rem}.article-card p{margin:0;color:var(--fg-muted);font-size:.9rem}.article-hero{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius);margin:12px 0 4px}.article-credit{font-size:.75rem;margin:0 0 20px}.article-credit,.article-credit a,.lead-text{color:var(--fg-muted)}.lead-text{font-size:1.15rem}.prose h1{line-height:1.2}.snippet{background:#0e1419;color:#e8edf2;padding:14px 16px;border-radius:10px;font-size:.82rem;overflow-x:auto}.badge-preview{display:inline-block;margin:8px 0 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 20px;gap:0 20px}.form-grid .full{grid-column:1/-1}.prose select{width:100%;border:1.5px solid var(--border-strong);background:var(--bg-elev);color:var(--fg);font:inherit}.notice,.prose select{padding:12px 14px;border-radius:10px}.notice{margin:12px 0}.notice.ok{background:var(--primary-soft);color:var(--primary);border:1px solid var(--primary)}.notice.err{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.field-err{display:block;color:var(--danger);font-size:.8rem;margin-top:4px}.prose input:not([type=checkbox]),.prose textarea{box-sizing:border-box}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table td,.admin-table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}.btn.small{padding:8px 14px;font-size:.85rem}.btn.danger{background:var(--danger);color:#fff}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}label{display:block;font-weight:600;margin:16px 0 6px}.prose input,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--bg-elev);color:var(--fg);font:inherit}