/* Grundstile der internen Portale (shared/page/). Kopie, NICHT hier editieren.
   Braucht brand/tokens.css. Wird VOR dem eigenen CSS des Portals geladen: was ein Portal
   bewusst anders macht (Schriftgroessen, Innenabstand der Karten, Breite von main), steht
   dort und sticht diese Regeln aus. */
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-body); font-size: 15px; color: var(--neutral-900); background: var(--neutral-50); }
h1, h2 { font-family: var(--font-headline); font-weight: 800; color: var(--navy-900); margin: 0; }
a { color: var(--navy-600); text-decoration: none; }
.muted { color: var(--neutral-600); }
.error { color: #9B1C1C; background: #FDECEC; border-radius: 8px; padding: 8px 12px; }

/* Ankreuzfelder, Radios, Schieberegler und Dateifelder bleiben aussen vor:
   Rahmen und Innenabstand zerlegen sie. */
button, select, textarea, input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]) { font: inherit; border-radius: 8px; border: 1px solid var(--neutral-200); padding: 7px 10px; background: #fff; color: inherit; }
button { cursor: pointer; background: var(--navy-800); color: #fff; border-color: var(--navy-800); font-weight: 600; }
button:hover:not(:disabled) { background: var(--navy-600); }
button:disabled { opacity: .5; cursor: default; }
button.ghost { background: transparent; color: inherit; border-color: currentColor; font-weight: 500; opacity: .85; }
/* Helle Knopf-Varianten duerfen beim Hover nicht navy werden (dunkler Text waere unlesbar). */
button.ghost:hover:not(:disabled) { background: var(--neutral-100); }
:focus-visible { outline: 2px solid var(--gold-400); outline-offset: 2px; }

.card { background: #fff; border: 1px solid var(--neutral-100); border-radius: 12px; padding: 16px; }
.form { display: grid; gap: 10px; }
.form label { display: grid; gap: 4px; font-size: 13px; color: var(--neutral-600); }
