/* Gemeinsame Bausteine: Karte, Button, Reiter, Eingabe, Pille, Fortschritt, Leerzustand.
   Ohne !important. Seiten nutzen diese Klassen statt eigener Regeln; der Seitenkopf kommt aus page-shell.css ([data-ds-page-hero]). */
.ds-c-card{box-sizing:border-box;min-width:0;padding:18px;border:1px solid var(--ds-border);border-radius:18px;background:var(--ds-card);color:var(--ds-text)}
/* Kartenraster: Karten einer Reihe teilen sich die Zeilen, darum stehen Lehrer, Hinweis und Button auf einer Hoehe. Der freie Platz bleibt nach der Beschreibung. */
.ds-c-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--ds-card-min,280px)),1fr));gap:14px}
.ds-c-card--stack{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:0;padding:0;overflow:hidden}
.ds-c-card__main{display:grid;align-content:start;gap:10px;min-width:0;padding:14px 14px 4px}
.ds-c-card__person,.ds-c-card__note{min-width:0;padding:6px 14px 0}
.ds-c-card__foot{display:flex;flex-wrap:wrap;align-self:end;gap:8px;min-width:0;padding:12px 14px 14px}
.ds-c-card__foot .ds-c-btn{flex:1 1 auto}
.ds-c-card__msg:not(:empty){padding:0 14px 14px}
@supports not (grid-template-rows:subgrid){.ds-c-card--stack{display:flex;flex-direction:column}.ds-c-card__main{flex:1}}
.ds-c-eyebrow{margin:0 0 4px;color:var(--ds-accent);font:700 12px/1.3 var(--ds-font,system-ui,sans-serif);letter-spacing:.08em;text-transform:uppercase}
.ds-c-btn,a.ds-c-btn,a.ds-c-btn:visited{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--ds-border);border-radius:12px;background:var(--ds-card);color:var(--ds-text);font:600 14px/1.2 var(--ds-font,system-ui,sans-serif);text-align:center;text-decoration:none;cursor:pointer}
.ds-c-btn:hover{border-color:var(--ds-accent)}
.ds-c-btn:focus-visible,.ds-c-tabs>button:focus-visible,.ds-c-input:focus-visible{outline:3px solid var(--ds-accent);outline-offset:2px}
.ds-c-btn:disabled{opacity:.6;cursor:not-allowed}
.ds-c-btn.ds-c-btn--primary,a.ds-c-btn.ds-c-btn--primary,a.ds-c-btn.ds-c-btn--primary:visited{border-color:transparent;background:var(--ds-accent);color:var(--ds-on-accent,#111)}
.ds-c-btn.ds-c-btn--danger,a.ds-c-btn.ds-c-btn--danger{color:#ef4444}
.ds-c-btn--icon{width:44px;padding:0;flex:none}
.ds-c-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ds-c-tabs>button{box-sizing:border-box;min-height:42px;padding:0 14px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-card);color:var(--ds-text);font:600 14px/1.2 var(--ds-font,system-ui,sans-serif);cursor:pointer}
.ds-c-tabs>button.is-on{border-color:transparent;background:var(--ds-accent);color:var(--ds-on-accent,#111)}
.ds-c-input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--ds-border);border-radius:10px;background:var(--ds-bg);color:var(--ds-text);font:400 16px/1.3 var(--ds-font,system-ui,sans-serif)}
.ds-c-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border:1px solid var(--ds-border);border-radius:999px;color:var(--ds-text);font:600 12px/1.2 var(--ds-font,system-ui,sans-serif)}
.ds-c-progress{display:block;overflow:hidden;height:8px;border-radius:999px;background:color-mix(in srgb,var(--ds-text) 12%,transparent)}
.ds-c-progress>i{display:block;height:100%;border-radius:inherit;background:var(--ds-accent)}
.ds-c-empty{display:grid;gap:8px;justify-items:start;padding:24px;color:var(--ds-text)}
.ds-c-empty p{margin:0;color:var(--ds-muted2,var(--ds-text))}
.ds-c-loading{display:flex;align-items:center;gap:10px;padding:20px;color:var(--ds-muted2,var(--ds-text))}
