.kapazitaet { display:flex; flex-direction:column; gap:1.4rem; overflow:auto; }
.kapazitaet :is(section,details) { flex-shrink:0; }
.kapazitaet h3 { margin:0 0 .6rem; font-size:1.15rem; color:var(--color-primary); }
.kapazitaet-kopf { display:flex; justify-content:space-between; align-items:center; min-height:2rem; }
.kapazitaet-kopf [data-field="status"] { font-size:.85rem; color:var(--color-text-secondary); }
.kapazitaet-tabelle { overflow-x:auto; }
.kapazitaet table { width:100%; border-collapse:collapse; font-size:clamp(.8rem,1vw,1rem); }
.kapazitaet :is(th,td) { text-align:left; padding:.35rem .55rem .35rem 0; border-bottom:1px solid var(--color-border); vertical-align:middle; }
.kapazitaet th { font-weight:600; }
.kapazitaet :is(input,select,button) { font:inherit; padding:.35rem .5rem; border:1px solid var(--color-border); border-radius:0; background:var(--color-surface); color:var(--color-text-primary); }
.kapazitaet input { width:6rem; max-width:100%; }
.kapazitaet select { max-width:100%; }
.kapazitaet button { cursor:pointer; }
.kapazitaet button:disabled { opacity:.5; cursor:default; }
.kapazitaet [data-field="neu"] { margin-top:.5rem; }
.kapazitaet :is(input,select,button,summary):focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; }
.kapazitaet-hinweis { font-size:.85rem; line-height:1.4; color:var(--color-text-secondary); margin:.5rem 0; }
.kapazitaet-summe { font-size:clamp(1.3rem,2vw,2rem); font-weight:700; color:var(--color-primary); margin:1rem 0; }
.kapazitaet-speicher { display:flex; gap:1.5rem; flex-wrap:wrap; }
.kapazitaet-speicher dt { font-size:.85rem; color:var(--color-text-secondary); }
.kapazitaet-speicher dd { font-weight:700; margin:.25rem 0 0; }
.kapazitaet-fehler { color:#a3291c; }
.kapazitaet details { border-top:1px solid var(--color-border); padding-top:.7rem; }
.kapazitaet summary { cursor:pointer; font-weight:600; }
.kapazitaet details p,.kapazitaet details li { line-height:1.45; }
.kapazitaet-eingaben { display:grid; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:1rem; margin:1rem 0; }
.kapazitaet-eingaben label { display:flex; flex-direction:column; align-items:flex-start; gap:.4rem; font-size:.9rem; }
@media(max-width:650px){.kapazitaet table { min-width:650px; }.kapazitaet [data-field="modellquellen"] { overflow-x:auto; }}

.kapazitaet input:invalid { border-color:#a3291c; }

.kapazitaet-zuordnung { margin:.45rem 0; line-height:1.45; }
.kapazitaet-serverliste { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,23rem),1fr)); gap:1rem; margin:1.2rem 0; }
.kapazitaet-server { border:1px solid var(--color-border); border-radius:14px; padding:1.2rem; background:var(--color-surface); min-width:0; }
.kapazitaet-server header { display:flex; justify-content:space-between; gap:.8rem; flex-wrap:wrap; align-items:baseline; }
.kapazitaet-server h4 { margin:0; font-size:1.15rem; }
.kapazitaet-server h4 a { color:var(--color-primary); text-decoration:none; }
.kapazitaet-server-system { color:var(--color-primary); }
.kapazitaet-server-modell { border-top:1px solid var(--color-border); margin-top:.9rem; padding-top:.8rem; }
.kapazitaet-server h5 { margin:0 0 .4rem; font-size:1rem; }
.kapazitaet-server-modell p { margin:.3rem 0; line-height:1.45; }
.kapazitaet-server-begruendung { font-size:.9rem; line-height:1.5; }
.kapazitaet-server meter { display:block; width:100%; height:1.2rem; accent-color:var(--color-primary); }
.kapazitaet-server-speicher { font-weight:600; margin:.5rem 0 1rem; }
.kapazitaet-server .kapazitaet-speicher { gap:.8rem 1.2rem; font-size:.85rem; }
