/* Mitgliederbereich RapidTech 3D — sitzung8 fuer Carl, 01.10.2026 */
:root { --blau:#1E2C5E; --hell:#009FE3; --rot:#E6355A; --gruen:#1E9E5A; --grau:#5A6684; --linie:#E5E9F2; --flaeche:#F4F8FC; --muted:#8A93AC; }
* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, Helvetica, sans-serif; color: var(--blau); background: var(--flaeche); font-size: 15px; }
a { color: var(--hell); }
.leiste { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--linie); border-top: 5px solid var(--hell); }
.leiste-innen { padding: 8px 16px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }   /* volle Breite: Vorstandsmenue passt bei 1280 px in eine Zeile */
.logo img { height: 28px; display: block; }
.marke { font-weight: 700; color: var(--grau); text-decoration: none; margin-right: 6px; font-size: 14px; }
.knopf-klein, .burger { border: 1px solid var(--linie); background: #fff; color: var(--blau); border-radius: 6px; width: 36px; height: 34px; font-size: 17px; cursor: pointer; flex: none; }
.burger { display: none; }
/* Menueleiste (03.10.2026): oberste Ebene + Gruppen als Aufklappmenues (details/summary, Steuerung in intern.js) */
.nav { display: flex; gap: 2px; flex-wrap: wrap; flex: 1; align-items: center; }
.nav a, .nav summary { text-decoration: none; color: var(--blau); padding: 7px 8px; border-radius: 6px; font-weight: 600; font-size: 14px; white-space: nowrap; }
.nav summary { list-style: none; margin: 0; cursor: pointer; display: flex; align-items: center; gap: 5px; user-select: none; }
.nav summary::-webkit-details-marker { display: none; }
.nav summary::after { content: ""; border: 4px solid transparent; border-top: 5px solid currentColor; border-bottom: 0; opacity: .75; transition: transform .15s; }
.nav .gruppe[open] > summary::after { transform: rotate(180deg); }
.nav a:hover, .nav summary:hover, .nav .gruppe[open] > summary { background: var(--flaeche); }
.nav a.aktiv, .nav .gruppe.aktiv > summary { color: var(--hell); background: var(--flaeche); box-shadow: inset 0 -2px 0 var(--hell); }
.nav a:focus-visible, .nav summary:focus-visible, .knopf-klein:focus-visible, .burger:focus-visible { outline: 2px solid var(--hell); outline-offset: 1px; }
.gruppe { position: relative; }
.gruppe-menue { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: 220px; display: flex; flex-direction: column; gap: 2px;
  background: #fff; border: 1px solid var(--linie); border-radius: 8px; box-shadow: 0 10px 28px rgba(30,44,94,.16); padding: 6px; }
.gruppe.rechts .gruppe-menue { left: auto; right: 0; }
.nav .gruppe-menue a { padding: 9px 12px; }
.nav .gruppe-menue a.aktiv { box-shadow: inset 3px 0 0 var(--hell); }
.konto { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; line-height: 1.3; flex: none; max-width: 9em; }   /* Name ueber „Abmelden“, lange Namen mit … (voller Name im title) */
.wer { color: var(--grau); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.abmelden { font-size: 13px; white-space: nowrap; }
.id { font-family: monospace; color: var(--muted); font-size: 13px; margin-right: 6px; }
main { max-width: 1100px; margin: 0 auto; padding: 18px 16px 60px; }
h1 { font-size: 24px; margin: 6px 0 16px; }
.karte { background: #fff; border: 1px solid var(--linie); border-radius: 8px; margin-bottom: 14px; }
.karte > summary, .karte > .kopf { padding: 14px 18px; font-weight: 700; font-size: 16px; cursor: pointer; list-style: none; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }   /* Hinweis-Kennzeichen brechen am Handy um statt seitlich zu ragen */
.karte > summary::before { content: "▸"; color: var(--hell); } .karte[open] > summary::before { content: "▾"; }
.karte > summary::-webkit-details-marker { display: none; }
.karte .rumpf { padding: 0 18px 16px; }
.liste-rahmen { max-height: 62vh; overflow: auto; border: 1px solid var(--linie); border-radius: 6px; }
table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--linie); vertical-align: top; }
th { position: sticky; top: 0; background: var(--flaeche); font-size: 13px; color: var(--grau); }
form.reihe { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
label.feld { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; margin-bottom: 10px; }
input, select, textarea { border: 1px solid #D4DBEA; border-radius: 4px; padding: 9px 11px; font-size: 15px; font-family: inherit; color: var(--blau); }
.raster2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
button.haupt, a.haupt { background: var(--hell); color: #fff; border: none; border-radius: 4px; padding: 10px 18px; font-weight: 700; font-size: 15px; cursor: pointer; text-decoration: none; display: inline-block; }
button.zweit { background: #fff; color: var(--blau); border: 1px solid var(--linie); border-radius: 4px; padding: 9px 14px; cursor: pointer; }
.meldung { background: #E7F6FE; border-left: 4px solid var(--hell); padding: 10px 14px; border-radius: 4px; margin-bottom: 14px; }
.meldung.fehler { background: #FDECEF; border-left-color: var(--rot); }
.schalter { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-bottom: 1px solid var(--linie); } .schalter input { margin-top: 3px; }
.ja { color: var(--gruen); font-weight: 700; } .nein { color: var(--rot); font-weight: 700; } .hinweis { color: var(--grau); font-size: 13.5px; }
.anmeldung { max-width: 420px; margin: 40px auto; }
@media (max-width: 768px) {
  .burger { display: inline-block; }
  .konto { margin-left: auto; }
  /* Burger: alle Gruppen als Ueberschriften mit ihren Eintraegen untereinander, eigener Scrollrahmen unter der Kopfleiste */
  .nav { display: none; order: 10; flex-basis: 100%; flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; border-top: 1px solid var(--linie);
         padding: 4px 0 10px; max-height: calc(100vh - 64px); max-height: calc(100dvh - 64px); overflow-y: auto; overscroll-behavior: contain; }
  body.menue-offen .nav { display: flex; }
  .nav > * { flex-shrink: 0; }
  .nav a { padding: 11px 10px; font-size: 15px; }
  .nav a.aktiv { box-shadow: inset 3px 0 0 var(--hell); }
  .gruppe { position: static; }
  .nav .gruppe > summary, .nav .gruppe[open] > summary, .nav .gruppe.aktiv > summary { pointer-events: none; cursor: default; padding: 14px 10px 4px;
         font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--grau); background: none; box-shadow: none; border-radius: 0;
         border-top: 1px solid var(--linie); margin-top: 6px; }
  .nav .gruppe.aktiv > summary { color: var(--hell); }
  .nav .gruppe > summary::after { display: none; }
  .gruppe-menue { position: static; min-width: 0; border: 0; border-radius: 0; box-shadow: none; padding: 0; gap: 0; }
  .nav .gruppe-menue a { padding: 11px 10px 11px 18px; }
  .wer { display: none; } .raster2 { grid-template-columns: 1fr; } .logo img { height: 24px; }
  th, td { padding: 7px 6px; font-size: 14px; }
}
@media (max-width: 480px) { .marke { display: none; } .logo img { height: 22px; } }
/* Ziehen und Ablegen von Dateien (intern.js) */
.ablage-aktiv { outline: 3px dashed #009FE3; outline-offset: 2px; background: rgba(0, 159, 227, .06); }
.ablage-hinweis { margin: 6px 0 0; color: #0F7B3F; font-weight: 700; font-size: 14px; overflow-wrap: anywhere; }
.ablage-knopf { box-shadow: 0 0 0 4px rgba(0, 159, 227, .35); }
