/* This stylesheet is deliberately scoped to the portal inside the active WordPress theme. */
.ssm-portal{box-sizing:border-box;max-width:1040px;margin:clamp(28px,5vw,60px) auto;padding:0 18px 70px;color:#082f49;font:16px/1.5 Inter,Arial,sans-serif}
.ssm-portal *{box-sizing:border-box}
.ssm-portal>header,.ssm-portal .card{background:#fff;border:1px solid #d4e3eb;border-radius:18px;padding:clamp(18px,3vw,32px);margin-bottom:18px}
.ssm-portal>header{border-top:5px solid #ff790d}
.ssm-portal h1{font-size:clamp(28px,4vw,44px);line-height:1.1;margin:8px 0}
.ssm-portal h2{margin:0 0 14px;font-size:23px}
.ssm-portal h3{margin:18px 0 8px}
.ssm-portal .eyebrow{color:#d45a00;font-size:12px;letter-spacing:.1em;font-weight:800;text-transform:uppercase}
.ssm-portal .muted{color:#5d7484}
.ssm-portal .notice{background:#e4f7ec;border:1px solid #8fcbb0;padding:12px 16px;border-radius:10px;margin:12px 0}
.ssm-portal .row{display:flex;gap:12px;flex-wrap:wrap;align-items:end}
.ssm-portal .row>*{flex:1 1 200px}
.ssm-portal label{display:block;font-weight:700;margin:9px 0}
.ssm-portal input,.ssm-portal select,.ssm-portal textarea{width:100%;min-height:46px;border:1px solid #b8cfda;border-radius:9px;padding:9px;font:inherit;background:#fff;color:#082f49}
.ssm-portal input[type=file]{height:auto}
.ssm-portal button,.ssm-portal .button{display:inline-block;min-height:44px;border:0;border-radius:9px;background:#ff790d;color:#fff;padding:11px 18px;font:700 15px Inter,Arial,sans-serif;cursor:pointer;text-decoration:none}
.ssm-portal .button.alt,.ssm-portal button.alt{background:#104e71}
.ssm-portal .button.ghost,.ssm-portal button.ghost{background:#f3f8fa;color:#104e71;border:1px solid #b8cfda}
.ssm-portal .doc{padding:14px 0;border-top:1px solid #dce8ee}
.ssm-portal .doc strong{display:block}
.ssm-portal .doc form{margin:10px 0}
.ssm-portal .badge{display:inline-block;background:#e7f7ee;color:#146342;padding:3px 10px;border-radius:20px;font-size:13px;font-weight:800}
.ssm-portal .badge.missing{background:#fff0db;color:#915000}
.ssm-portal small{color:#617b8c}
.ssm-portal .downloads a{display:inline-block;margin:4px 8px 4px 0}
.ssm-portal .exam-box{background:#f2f9fc;border:1px solid #c8e0eb;border-left:4px solid #ff790d;border-radius:12px;padding:20px;margin:24px 0}
.ssm-portal .choice{display:flex;align-items:center;gap:10px;font-weight:600}
.ssm-portal .choice input{width:18px;min-height:18px;flex:none}
.ssm-portal .exam-box input[type=date]{max-width:280px}
@media(max-width:650px){.ssm-portal{padding:0 14px 50px}.ssm-portal .card{padding:20px 16px}.ssm-portal button{max-width:100%}}
.ssm-portal .customer-details{margin:12px 0 26px;background:#f4f9fb;border-radius:10px;padding:12px 16px}.ssm-portal .customer-details summary{cursor:pointer;font-weight:700}
.ssm-portal .sbf-flow{background:#f2f9fc;border:1px solid #c8e0eb;border-left:4px solid #ff790d;border-radius:12px;padding:22px;margin:24px 0}
.ssm-portal .sbf-flow ol{padding-left:22px;line-height:1.55}.ssm-portal .sbf-flow li{margin:8px 0}
.ssm-portal .sbf-alert{background:#fff5e7;border:1px solid #f7bd76;border-radius:10px;padding:13px 15px;line-height:1.5}
.ssm-portal .sbf-fees{background:#e6f6ed;border:1px solid #9bd2b2;color:#174d35;border-radius:10px;padding:13px 15px;line-height:1.5}
.ssm-portal .sbf-plan{background:#fff;border:1px solid #d5e5ec;border-radius:12px;padding:18px;margin:20px 0}
.ssm-portal .sbf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ssm-portal .sbf-date{color:#0d4a6a;font-size:17px}
.ssm-portal .preview-picker{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.ssm-portal .preview-picker button{margin-bottom:9px}
.ssm-portal .sbf-plan fieldset{border:0;padding:0;margin:0;min-width:0}
.ssm-portal .sbf-plan legend{font-size:13px;font-weight:700;color:#617b8c;margin-bottom:8px}
@media(max-width:750px){.ssm-portal .preview-picker{grid-template-columns:1fr}}
@media(max-width:650px){.ssm-portal .sbf-grid{grid-template-columns:1fr}.ssm-portal .sbf-flow{padding:16px}.ssm-portal .sbf-flow .button{display:block}}

/* Topic-specific portal forms */
.ssm-portal .portal-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.ssm-portal .portal-fields label { min-width:0; }
.ssm-portal .passport-options { padding:14px 18px; border:1px solid #d3e5ee; background:#f4f9fc; border-radius:12px; margin:14px 0; }
.ssm-portal .passport-options p { margin:0 0 10px; }
.ssm-portal .exam-box { margin:20px 0; }
.ssm-portal .exam-box h3 { margin-top:0; }
@media(max-width:680px){.ssm-portal .portal-fields {grid-template-columns:1fr;}}

/* 1.10.12: Prüfungswege und persönliche Unterlagen */
.ssm-portal .portal-section-title{font-size:clamp(28px,4vw,42px);line-height:1.1;margin:30px 0 6px;color:#082f49}
.ssm-portal .exams-intro{margin:0 0 14px}
.ssm-portal .exam-path{margin-top:12px}
.ssm-portal .personal-docs{margin-top:30px;border:2px solid #ff790d;border-radius:14px;background:#fff8f1;padding:4px 14px 14px}
.ssm-portal .personal-docs>summary{font-size:20px;font-weight:800;color:#082f49;padding:14px 4px;cursor:pointer}
.ssm-portal .personal-docs-box{background:#fff;border-color:#ffd2ad;margin:4px 0 8px}

/* 1.10.19: Links in Formularen klar als Links kennzeichnen */
.ssm-portal .downloads .button.alt,.ssm-portal .exam-box a.button.alt,.ssm-portal .sbf-flow a.button.alt{background:#fff;color:#104e71;border:2px solid #104e71;box-shadow:none}.ssm-portal .downloads .button.alt:hover,.ssm-portal .exam-box a.button.alt:hover,.ssm-portal .sbf-flow a.button.alt:hover{background:#edf6fa;color:#083d5b}

/* 1.10.21: dezentere aufklappbare Portal-Navigation */
.ssm-portal details.portal-step{margin:10px 0 12px}
.ssm-portal details.portal-step>summary{list-style:none;cursor:pointer;display:block;width:100%;padding:11px 14px;border:1px solid #c6d7e1;border-radius:9px;background:#fbfdfe;color:#123f5b;font-weight:700;line-height:1.25;box-shadow:0 1px 2px rgba(8,47,73,.035);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.ssm-portal details.portal-step>summary::-webkit-details-marker{display:none}
.ssm-portal details.portal-step>summary:before{content:"›";display:inline-block;margin-right:9px;font-size:20px;line-height:0;transform:translateY(1px);transition:transform .15s ease}
.ssm-portal details.portal-step>summary:hover{background:#f5f9fb;border-color:#9fb9c8}.ssm-portal details.portal-step[open]>summary{background:#f3f8fa;border-color:#aec4d0;box-shadow:none}
.ssm-portal details.portal-step[open]>summary:before{transform:rotate(90deg) translateX(1px)}
.ssm-portal details.portal-step>section{margin-top:10px}
.ssm-portal .learning-title{margin-top:32px}

/* 1.10.26: Kursauswahl im Frageformular klar kennzeichnen */
.course-question-select{display:block;margin:14px 0}.course-question-select small{display:block;margin:4px 0 8px;color:#587084;font-weight:500}.course-question-select select{border:1px solid #8fb6ce;background:#fff;padding-right:42px;box-shadow:0 0 0 3px rgba(16,85,125,.04)}

/* 1.10.29: gebuchte Kurse im Kopf besser lesbar */
.ssm-portal .card>.eyebrow{display:block;font-size:14px;line-height:1.45;letter-spacing:.055em;margin-bottom:10px}


/* 1.10.30: Kursnamen im Buchungskopf optisch von Label und Rechnungsnummer trennen */
.ssm-portal .booking-heading{display:flex;flex-wrap:wrap;align-items:center;gap:7px 10px;margin:0 0 14px}
.ssm-portal .booking-heading-label,.ssm-portal .booking-heading-invoice{color:#b94e00;font-size:11px;line-height:1.3;letter-spacing:.09em;font-weight:800;text-transform:uppercase}
.ssm-portal .booking-heading-courses{display:flex;flex-wrap:wrap;gap:6px}
.ssm-portal .booking-course-name{display:inline-flex;align-items:center;padding:5px 10px;border-radius:8px;background:#eef6fa;border:1px solid #c9dde8;color:#082f49;font-size:14px;line-height:1.25;letter-spacing:0;text-transform:none}
.ssm-portal .booking-heading-invoice{margin-left:auto;color:#647789;letter-spacing:.045em}
@media(max-width:680px){.ssm-portal .booking-heading{align-items:flex-start}.ssm-portal .booking-heading-label{width:100%}.ssm-portal .booking-heading-invoice{width:100%;margin-left:0}.ssm-portal .booking-course-name{font-size:13px}}
