/* Kinderinsel Mitgliederverwaltung – Frontend */
.kim-form-wrap,.kim-portal{--kim-blue:#2E79B8;--kim-deep:#122A36;--kim-sand:#F3F1EB;--kim-coral:#D96A41;--kim-lagoon:#68BFA4;--kim-sun:#EFB700;--kim-line:#D9DEE2;color:var(--kim-deep);max-width:860px;margin:0 auto;font-size:16px;line-height:1.55}
.kim-form-wrap *,.kim-portal *{box-sizing:border-box}
.kim-steps{display:flex;gap:8px;list-style:none;margin:0 0 20px;padding:0;counter-reset:s;flex-wrap:wrap}
.kim-steps li{counter-increment:s;flex:1 1 120px;padding:10px 12px;border-radius:10px;background:var(--kim-sand);font-weight:600;font-size:14px;opacity:.6}
.kim-steps li:before{content:counter(s) ". "}
.kim-steps li.is-active{background:var(--kim-blue);color:#fff;opacity:1}
.kim-steps li.is-done{opacity:1}
.kim-form fieldset{border:0;margin:0 0 24px;padding:24px;background:#fff;border-radius:16px;box-shadow:0 2px 16px rgba(18,42,54,.08)}
.kim-form legend{font-family:Poppins,inherit;font-weight:600;font-size:1.25em;padding:0;margin-bottom:16px;float:left;width:100%}
.kim-form fieldset>*:not(legend){clear:both}
.kim-js .kim-step{display:none}.kim-js .kim-step.is-active{display:block}
.kim-choices{display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:16px}
.kim-choice{display:flex;gap:12px;align-items:flex-start;padding:16px;border:2px solid var(--kim-line);border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s}
.kim-choice:hover{border-color:var(--kim-blue)}
.kim-choice:has(input:checked){border-color:var(--kim-blue);background:#EEF5FB}
.kim-choice input{margin-top:5px;accent-color:var(--kim-blue)}
.kim-choice-body strong{display:block;font-size:1.05em;margin-bottom:4px}
.kim-choice-body span{font-size:.92em;opacity:.85}
.kim-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
.kim-col-2{grid-column:span 2}.kim-col-3{grid-column:1/-1}
.kim-field{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.kim-field label,.kim-label{font-weight:600;font-size:.92em}
.kim-form input[type=text],.kim-form input:not([type]),.kim-form input[type=email],.kim-form input[type=tel],.kim-form input[type=date],.kim-form select,.kim-form textarea,.kim-portal input:not([type=checkbox]):not([type=radio]):not([type=submit]),.kim-portal select{width:100%;padding:11px 13px;border:1.5px solid var(--kim-line);border-radius:10px;font:inherit;background:#fff;color:inherit}
.kim-form input:focus,.kim-form select:focus,.kim-form textarea:focus{outline:3px solid rgba(46,121,184,.25);border-color:var(--kim-blue)}
.kim-form .is-invalid{border-color:var(--kim-coral)!important;background:#FFF6F2!important}
.kim-inline{margin-right:18px;font-weight:400}
.kim-check{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;font-size:.95em}
.kim-check input{margin-top:4px;width:18px;height:18px;flex:none;accent-color:var(--kim-blue)}
.kim-check.is-invalid span{color:var(--kim-coral)}
.kim-hint{font-size:.88em;opacity:.8;margin:6px 0 0}
.kim-fee-box{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--kim-sand);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.kim-fee-amount{font-family:Poppins,inherit;font-weight:700;font-size:1.6em;color:var(--kim-blue);white-space:nowrap}
.kim-facts{margin:16px 0 0;padding-left:20px}.kim-facts li{margin-bottom:6px}
.kim-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.kim-nav .kim-next:only-child{margin-left:auto}
.kim-btn{appearance:none;border:0;border-radius:999px;padding:13px 26px;font:inherit;font-weight:600;cursor:pointer;background:var(--kim-blue);color:#fff;transition:filter .15s}
.kim-btn:hover{filter:brightness(1.08)}
.kim-btn:focus-visible{outline:3px solid var(--kim-sun);outline-offset:2px}
.kim-btn-ghost{background:transparent;color:var(--kim-deep);border:1.5px solid var(--kim-line)}
.kim-submit{background:var(--kim-coral)}
.kim-box{border-radius:12px;padding:14px 18px;margin:0 0 18px}
.kim-error{background:#FFF1EC;border-left:4px solid var(--kim-coral)}
.kim-info{background:#EEF5FB;border-left:4px solid var(--kim-blue)}
.kim-success{background:#EEF8F4;border-left:4px solid var(--kim-lagoon)}
.kim-error ul{margin:6px 0 0 18px}
.kim-summary{background:var(--kim-sand);border-radius:12px;padding:14px 18px;margin:8px 0 12px;font-size:.93em}
.kim-summary dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}.kim-summary dt{opacity:.7}.kim-summary dd{margin:0}
.kim-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.kim-fees{width:100%;border-collapse:collapse;margin:0 0 8px}.kim-fees th,.kim-fees td{text-align:left;padding:10px 12px;border-bottom:1px solid #E3E7EA}.kim-fees th{background:#F3F1EB}
.kim-small{font-size:.85em;opacity:.75}
.kim-portal h3{font-family:Poppins,inherit;margin:28px 0 10px}
.kim-portal .kim-card{background:#fff;border-radius:16px;box-shadow:0 2px 16px rgba(18,42,54,.08);padding:20px 22px;margin-bottom:18px}
.kim-portal table{width:100%;border-collapse:collapse}.kim-portal td,.kim-portal th{padding:8px 6px;border-bottom:1px solid #EEF0F1;text-align:left;vertical-align:top}
.kim-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.82em;font-weight:600;background:#EEF5FB;color:var(--kim-blue)}
.kim-badge.is-ok{background:#EEF8F4;color:#2F7D62}.kim-badge.is-warn{background:#FFF6DA;color:#8A6A00}.kim-badge.is-bad{background:#FFF1EC;color:#B24E28}
.kim-docs{list-style:none;margin:0;padding:0}.kim-docs li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #EEF0F1}
.kim-danger summary{cursor:pointer;color:var(--kim-coral);font-weight:600}
@media (max-width:700px){.kim-choices{grid-template-columns:1fr}.kim-grid{grid-template-columns:1fr}.kim-col-2,.kim-col-3{grid-column:auto}.kim-form fieldset{padding:18px}.kim-steps li{flex-basis:45%;font-size:13px}.kim-fee-box{flex-direction:column;align-items:flex-start}.kim-nav{flex-direction:column-reverse}.kim-btn{width:100%}}
.kim-form [hidden],.kim-portal [hidden]{display:none!important}
.kim-form-wrap{container-type:inline-size}
@container (max-width:640px){.kim-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kim-col-2,.kim-col-3{grid-column:1/-1}.kim-choices{grid-template-columns:1fr}}
@container (max-width:420px){.kim-grid{grid-template-columns:1fr}}
/* Radios/Checkboxen unabhängig vom Theme sauber ausrichten */
.kim-form input[type=radio],.kim-form input[type=checkbox],.kim-portal input[type=checkbox]{margin:0!important;vertical-align:middle;accent-color:var(--kim-blue);flex:none;position:static!important;top:auto!important}
.kim-entity .kim-inline{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-weight:500;cursor:pointer;line-height:1.3}
.kim-entity .kim-inline[hidden]{display:none!important}
.kim-entity .kim-inline input{width:18px;height:18px}
.kim-check{align-items:flex-start}.kim-check input{margin-top:3px!important}
.kim-choice input{margin-top:4px!important;width:18px;height:18px}
