* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background: #f4f4f5; color: #18181b; line-height: 1.55; }
a { color: #0f766e; text-decoration: none; }
a:hover { text-decoration: underline; }
.container { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

header.site { background: #0f172a; color: #fff; padding: 14px 0; }
header.site .container { display: flex; align-items: center; justify-content: space-between; }
.logo { font-size: 22px; font-weight: 800; letter-spacing: 0.5px; }
.logo a { color: #fff; }
.logo span { color: #2dd4bf; }
nav a { color: #cbd5e1; margin-left: 18px; font-size: 14px; }
nav a:hover { color: #fff; text-decoration: none; }

main { padding: 40px 0 60px; }
.hero { text-align: center; padding: 56px 0 48px; background: linear-gradient(160deg, #0f172a 0%, #134e4a 100%); color: #fff; }
.hero h1 { font-size: 40px; font-weight: 800; margin: 14px auto; max-width: 760px; color: #fff; }
.hero .lead { color: #cbd5e1; font-size: 18px; max-width: 680px; margin: 0 auto 26px; }
.hero-note { color: #94a3b8; font-size: 14px; margin-top: 18px; }
.hero .card { text-align: left; }

.card { background: #fff; border: 1px solid #e4e4e7; border-radius: 14px; padding: 26px; margin-bottom: 20px; }
.card h2 { font-size: 20px; margin-bottom: 14px; }
.card h3 { font-size: 16px; margin: 16px 0 8px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }

input[type=text], input[type=url], input[type=email], input[type=password] { width: 100%; padding: 12px 14px; border: 1px solid #d4d4d8; border-radius: 8px; font-size: 15px; }
input:focus { outline: 2px solid #0f766e; outline-offset: 1px; }
label { display: block; font-size: 14px; font-weight: 600; margin: 12px 0 6px; }
.btn { display: inline-block; background: #0f766e; color: #fff; border: 0; padding: 12px 22px; border-radius: 8px; font-size: 15px; font-weight: 600; cursor: pointer; }
.btn:hover { background: #115e59; text-decoration: none; }
.btn.block { width: 100%; text-align: center; }
.btn.ghost { background: transparent; color: #0f766e; border: 1px solid #0f766e; }
.btn.danger { background: #dc2626; }
.btn.small { padding: 8px 14px; font-size: 13px; }

.alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 18px; font-size: 14px; }
.alert.ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.alert.err { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.alert.info { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }

table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid #e4e4e7; }
th { background: #f8fafc; font-size: 12px; text-transform: uppercase; color: #71717a; }

.badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.badge.free { background: #e0e7ff; color: #3730a3; }
.badge.start { background: #ccfbf1; color: #115e59; }
.badge.premium { background: #fef3c7; color: #92400e; }
.badge.high { background: #dcfce7; color: #166534; }
.badge.medium { background: #fef9c3; color: #854d0e; }
.badge.low { background: #fee2e2; color: #991b1b; }
.badge.ok { background: #dcfce7; color: #166534; }
.badge.err { background: #fee2e2; color: #991b1b; }
.badge.warn { background: #fef9c3; color: #854d0e; }
.badge.info { background: #e0e7ff; color: #3730a3; }
.badge.gray { background: #e4e4e7; color: #52525b; }

.kpi { text-align: center; padding: 18px; }
.kpi .n { font-size: 30px; font-weight: 800; }
.kpi .l { font-size: 13px; color: #71717a; margin-top: 4px; }

.result-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #f0f0f2; }
.result-item:last-child { border-bottom: 0; }
.result-item .kw { font-weight: 600; }
.result-item .range { color: #71717a; font-size: 13px; }

.steps { counter-reset: step; }
.step { position: relative; padding: 0 0 20px 44px; }
.step::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0; width: 30px; height: 30px; background: #0f766e; color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.step p { color: #52525b; font-size: 15px; }
.step code { background: #f4f4f5; padding: 2px 6px; border-radius: 4px; font-size: 13px; }
pre { background: #0f172a; color: #e2e8f0; padding: 14px 16px; border-radius: 8px; overflow-x: auto; font-size: 13px; margin: 10px 0; }

.muted { color: #71717a; font-size: 13px; }
.row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.small { font-size: 13px; }
.spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid #d4d4d8; border-top-color: #0f766e; border-radius: 50%; animation: spin .7s linear infinite; vertical-align: middle; }
@keyframes spin { to { transform: rotate(360deg); } }
footer.site { padding: 24px 0; text-align: center; color: #71717a; font-size: 13px; }
.hidden { display: none; }

.hero-badge { display: inline-block; background: rgba(45, 212, 191, 0.12); color: #2dd4bf; border: 1px solid rgba(45, 212, 191, 0.35); padding: 6px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.cta-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 26px; }
.hero .btn.ghost { color: #fff; border-color: #2dd4bf; }
.hero .btn.ghost:hover { background: rgba(45, 212, 191, 0.15); }

.band { padding: 44px 0; }
.band.stats { background: #0f172a; color: #fff; }
.stats .container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; text-align: center; }
.stat .n { font-size: 22px; font-weight: 800; color: #2dd4bf; }
.stat .l { color: #94a3b8; font-size: 14px; margin-top: 4px; }

.section { padding: 34px 0; }
.section-title { text-align: center; font-size: 30px; font-weight: 800; margin-bottom: 8px; }
.section-sub { text-align: center; color: #52525b; font-size: 16px; max-width: 640px; margin: 0 auto 26px; }

.testimonial .quote { font-size: 15px; color: #3f3f46; font-style: italic; }
.testimonial .author { margin-top: 12px; color: #0f766e; font-weight: 600; font-size: 14px; }

.band.cta { background: linear-gradient(160deg, #134e4a 0%, #0f172a 100%); color: #fff; text-align: center; }
.band.cta h2 { font-size: 28px; font-weight: 800; margin-bottom: 10px; }
.band.cta .lead { color: #cbd5e1; max-width: 600px; margin: 0 auto 10px; }

.pw-suggest { margin: 8px 0 4px; }
.pw-suggest-box { display: flex; align-items: center; gap: 8px; background: #f4f4f5; border: 1px dashed #a1a1aa; border-radius: 8px; padding: 10px 12px; }
.pw-suggest-box code { flex: 1; font-size: 15px; font-weight: 700; letter-spacing: 0.5px; color: #0f766e; overflow-wrap: anywhere; }

/* --- Admin / Utilities (optimiert, weniger Inline-Styles) --- */
.page-title { font-size: 26px; margin: 10px 0 18px; }
.card + .card, .card.mt { margin-top: 20px; }
.full { width: 100% !important; box-sizing: border-box; }
.mt { margin-top: 14px; }
.mb { margin-bottom: 14px; }
.login-card { max-width: 400px; margin: 60px auto; }
.tpl-input { width: 100%; padding: 8px 10px; border: 1px solid #d4d4d8; border-radius: 8px; box-sizing: border-box; }
.tpl-area { width: 100%; padding: 10px; border: 1px solid #d4d4d8; border-radius: 8px; font-family: ui-monospace, Consolas, monospace; font-size: 12px; box-sizing: border-box; }
.tpl-label { margin: 18px 0 4px; font-size: 15px; }
.tpl-hint { font-size: 12px; margin: 0 0 6px; }
code { background: #f4f4f5; padding: 2px 6px; border-radius: 4px; font-size: 13px; }
.codebox { background: #0f172a; color: #e2e8f0; padding: 12px 14px; border-radius: 8px; font-family: ui-monospace, Consolas, monospace; font-size: 13px; overflow-x: auto; margin: 8px 0; display: flex; justify-content: space-between; align-items: center; gap: 10px; word-break: break-all; }
.codebox code { background: transparent; color: #e2e8f0; padding: 0; font-size: 13px; }
.copy { background: rgba(45,212,191,.15); color: #2dd4bf; border: 1px solid rgba(45,212,191,.4); border-radius: 6px; padding: 5px 10px; font-size: 12px; cursor: pointer; white-space: nowrap; }
.copy:hover { background: rgba(45,212,191,.25); }

.conv-bar { background: #f4f4f5; border-radius: 999px; height: 8px; overflow: hidden; margin-top: 5px; }
.conv-fill { background: linear-gradient(90deg, #0f766e, #2dd4bf); height: 100%; border-radius: 999px; }
.attr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.attr-grid h3 { font-size: 14px; margin: 0 0 8px; }
.row-bad { background: #fef2f2; }
