.sp-portal{min-height:65vh;padding:clamp(30px,6vw,80px) 18px;background:linear-gradient(180deg,#eef5f9,#fff);color:#172033}
.sp-login-card,.sp-profile-card,.sp-dashboard-head,.sp-dashboard>.sp-message,.sp-dashboard>.sp-status{width:min(760px,100%);margin-inline:auto}
.sp-login-card{padding:clamp(24px,5vw,48px);border:1px solid #d5e0e8;border-radius:24px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.09)}
.sp-register-card{width:min(900px,100%)}
.sp-kicker{color:#e30613;font-size:.78rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.sp-portal h1{margin:.3em 0;color:#003f6b;font-family:Oswald,Arial,sans-serif;font-size:clamp(2rem,5vw,3.5rem);text-transform:uppercase}
.sp-intro{color:#5e6c7b;line-height:1.7}
.sp-form{display:grid;gap:17px;margin-top:24px}
.sp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.sp-form label,.sp-photo-editor label{display:grid;gap:7px;font-weight:800}
.sp-form input,.sp-form textarea,.sp-form select,.sp-photo-editor input{width:100%;min-height:48px;padding:12px 13px;border:1px solid #b9c8d4;border-radius:10px;background:#fff;color:#172033;font:inherit}
.sp-form select{appearance:none;padding-right:42px;background-image:linear-gradient(45deg,transparent 50%,#005691 50%),linear-gradient(135deg,#005691 50%,transparent 50%);background-position:calc(100% - 19px) 20px,calc(100% - 13px) 20px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.sp-form input:focus,.sp-form textarea:focus,.sp-form select:focus{border-color:#005691;box-shadow:0 0 0 3px rgba(0,86,145,.12);outline:0}
.sp-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 19px;border:0;border-radius:10px;background:#005691;color:#fff;font-weight:900;text-decoration:none;cursor:pointer}
.sp-btn:hover{background:#003f6b}.sp-btn.secondary{background:#eef5f9;color:#005691;border:1px solid #bfd3e1}
.sp-message,.sp-status{margin-block:18px;padding:14px 16px;border-radius:12px;line-height:1.55}
.sp-message.ok,.sp-status.status-freigegeben{background:#eaf8ef;color:#176b38}.sp-message.notice,.sp-status.status-offen,.sp-status.status-hinweis{background:#fff8df;color:#755600}.sp-message.error,.sp-status.status-abgelehnt{background:#fff0f0;color:#9f1239}
.sp-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.sp-help{margin:0;color:#64748b;font-size:.88rem;line-height:1.5}.sp-forgot{margin-top:20px}.sp-forgot summary{color:#005691;font-weight:800;cursor:pointer}.sp-form.compact{margin-top:14px}
.sp-register-link{text-align:center}.sp-login-card a:not(.sp-btn),.sp-profile-card a:not(.sp-btn),.sp-dashboard-head a{color:#005691;font:inherit!important;font-weight:750!important;text-decoration:underline;text-underline-offset:.18em}.sp-login-card a:not(.sp-btn):hover,.sp-profile-card a:not(.sp-btn):hover,.sp-dashboard-head a:hover{color:#e30613}.sp-honeypot{position:absolute!important;left:-10000px!important}.sp-consent{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:9px;font-family:inherit!important;font-weight:400!important;line-height:1.6}.sp-consent input{flex:0 0 auto;width:auto;min-height:auto;margin-top:.3em}.sp-consent span,.sp-consent a{font:inherit!important}.sp-consent a{display:inline;color:#005691;font-weight:750!important;text-decoration:underline}.sp-full{grid-column:1/-1}
.sp-guardian{display:grid;gap:12px;padding:16px;border:1px solid #d5e0e8;border-radius:12px}.sp-guardian legend{padding:0 7px;color:#005691;font-weight:900}
.sp-guardian[hidden]{display:none!important}.sp-guardian-info{margin:0;padding:12px 14px;border-radius:10px;background:#eef5f9;color:#344257;line-height:1.55}.sp-field-help{color:#64748b;font-size:.82rem;font-weight:500;line-height:1.45}
.sp-dashboard{padding-top:32px}.sp-dashboard-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.sp-dashboard-head nav{display:flex;gap:10px;flex-wrap:wrap}.sp-dashboard-head nav a,.sp-dashboard-head nav button{padding:0;border:0;background:none;color:#005691;font-weight:800;text-decoration:underline;cursor:pointer}.sp-dashboard-head nav form{margin:0}
.sp-profile-card{display:grid;grid-template-columns:minmax(240px,330px) 1fr;gap:26px;padding:26px;border:1px solid #d5e0e8;border-radius:24px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.08)}
.sp-profile-card .sp-form{margin-top:0}.sp-photo-editor{display:grid;align-content:start;gap:18px}.sp-photo-preview{position:relative;aspect-ratio:4/5;overflow:hidden;display:grid;place-items:center;border-radius:18px;background:#e8f0f5;color:#64748b}.sp-photo-preview img{display:block;width:100%;height:100%;object-fit:cover}.sp-photo-preview img[hidden],.sp-photo-preview span[hidden]{display:none!important}.sp-ranges{display:grid;gap:13px}.sp-ranges input{padding:0}
@media(max-width:700px){.sp-grid,.sp-profile-card{grid-template-columns:1fr}.sp-dashboard-head{align-items:flex-start;flex-direction:column}.sp-login-card,.sp-profile-card{border-radius:18px}.sp-profile-card{padding:18px}}
