:root{
  --navy:#0d1b2e;
  --navy-soft:#1c3352;
  --blue:#2f5fe0;
  --blue-light:#4f8ef0;
  --box:#d99a4e;
  --box-deep:#b97a2f;
  --bg:#f4f6f8;
  --surface:#ffffff;
  --line:#e2e6ec;
  --grey:#5f6a7a;
  --green:#2f7a52;
  --red:#a1261d;
}
*{box-sizing:border-box;}
body{
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  background:var(--bg); color:var(--navy); margin:0;
}
a{color:var(--blue);}
.topbar{
  background:var(--navy); color:#fff; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:10px; position:relative;
}
.topbar .brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:16px;}
.topbar .brand .ez{color:var(--blue-light);}
.topbar nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13.5px;}
.topbar nav a{color:#cdd6e3;text-decoration:none;}
.topbar nav a:hover, .topbar nav a.active{color:#fff;}
.topbar .user{font-size:12.5px;color:#9fb0c9;display:flex;align-items:center;gap:12px;}
.topbar .user a{color:#9fb0c9;}
.nav-toggle{display:none;background:none;border:1px solid #3a4a63;color:#fff;border-radius:6px;padding:8px 11px;font-size:16px;cursor:pointer;}
.nav-panel{display:contents;}

.wrap{max-width:900px;margin:0 auto;padding:32px 20px 60px;}
.wrap.wide{max-width:1200px;}

h1{font-size:22px;color:var(--navy);margin:0 0 4px;}
h2{font-size:17px;color:var(--navy);margin:0 0 14px;}
.subtitle{color:var(--grey);font-size:14px;margin:0 0 24px;}

.card{
  background:var(--surface); border-radius:10px; padding:24px;
  box-shadow:0 2px 10px rgba(13,27,46,.06); margin-bottom:20px;
}

label.feld-label{display:block;font-size:13px;font-weight:600;color:#333;margin:16px 0 6px;}
input[type=text], input[type=email], input[type=password], input[type=number], select, textarea{
  width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px;
  font-size:15px; box-sizing:border-box; font-family:inherit;
}
textarea{resize:vertical;min-height:70px;}

.btn{
  display:inline-block; padding:11px 20px; border-radius:7px; border:none;
  font-weight:700; font-size:14px; cursor:pointer; text-decoration:none;
}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--blue);}
.btn-secondary{background:#eef1f5; color:var(--navy);}
.btn-secondary:hover{background:#e2e6ec;}
.btn-danger{background:#fdecea; color:var(--red);}
.btn-danger:hover{background:#fadbd8;}
.btn-sm{padding:6px 12px;font-size:12.5px;}

table{width:100%; border-collapse:collapse; font-size:14px;}
th, td{text-align:left; padding:10px 12px; border-bottom:1px solid var(--line);}
th{color:var(--grey); font-size:12px; text-transform:uppercase; letter-spacing:.03em; font-weight:700;}
tr:hover td{background:#fafbfc;}

.badge{display:inline-block; padding:3px 10px; border-radius:100px; font-size:11.5px; font-weight:700;}
.badge-zugang{background:#e7f4ec; color:var(--green);}
.badge-abgang{background:#fdecea; color:var(--red);}
.badge-rolle-admin{background:#eaf0fe; color:var(--blue);}
.badge-rolle-verwalter{background:#fbf1e2; color:var(--box-deep);}
.badge-rolle-mitarbeiter{background:#eef1f5; color:var(--grey);}
.badge-storniert{background:#eee;color:#999;}
.badge-korrektur{background:#f0e9fb;color:#6b3fa0;}

.fehler{background:#fdecea; color:var(--red); padding:10px 14px; border-radius:6px; font-size:14px; margin-bottom:16px;}
.erfolg{background:#e7f4ec; color:var(--green); padding:10px 14px; border-radius:6px; font-size:14px; margin-bottom:16px;}

.saldo-plus{color:var(--green); font-weight:700;}
.saldo-minus{color:var(--red); font-weight:700;}
.saldo-null{color:var(--grey);}

.pos-row{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  margin-bottom:12px; padding:10px; border:1px solid var(--line); border-radius:8px;
}
.pos-row select, .pos-row input{margin:0;width:auto;}
.pos-row-kopf{display:flex; align-items:center; gap:10px; flex:2 1 260px;}
.pos-row-kopf .feld-ladungstraeger{flex:1 1 auto;}
.pos-row .feld-typ{flex:1 1 120px;}
.pos-row .feld-menge{flex:1 1 90px;}
.pos-thumb{
  width:48px; height:48px; border-radius:6px; background:#eef1f5 center/cover no-repeat;
  border:1px solid var(--line); flex:none;
}
.pos-thumb.hat-bild{border-color:var(--blue);}
.pos-remove{background:none;border:none;color:var(--red);font-size:22px;cursor:pointer;line-height:1;padding:4px 8px;margin-left:auto;}
.pos-add{margin-top:6px;}
.pos-mini-label{display:none;font-size:11px;color:var(--grey);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;}

.login-wrap{max-width:380px; margin:80px auto; padding:0 20px;}
.login-card{background:var(--surface); border-radius:12px; padding:34px; box-shadow:0 4px 20px rgba(13,27,46,.08);}
.login-card .brand{display:flex;align-items:center;gap:8px;font-weight:800;font-size:18px;margin-bottom:24px;color:var(--navy);}
.login-card .brand .ez{color:var(--blue);}
.login-links{text-align:center;margin-top:16px;font-size:13px;}

.filter-bar{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:18px; align-items:end;}
.filter-bar > div{flex:1; min-width:160px;}

@media print{
  .topbar, .no-print{display:none !important;}
  body{background:#fff;}
  .card{box-shadow:none; border:1px solid #ccc;}
}

@media (max-width:760px){
  .wrap, .wrap.wide{padding:20px 14px 50px;}
  .card{padding:18px;}

  /* Topbar: Hamburger-Menü statt wild umbrechender Linkliste */
  .nav-toggle{display:inline-block;}
  .nav-panel{
    display:none; position:absolute; top:100%; left:0; right:0;
    background:var(--navy); flex-direction:column; padding:14px 20px 18px;
    box-shadow:0 8px 16px rgba(0,0,0,.2); z-index:40;
  }
  .nav-panel.offen{display:flex;}
  .topbar nav{flex-direction:column; gap:14px; font-size:15px;}
  .topbar .user{flex-direction:column; align-items:flex-start; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid #2a3a52; font-size:13.5px;}

  /* Belegformular: Positionszeile gestapelt statt eng nebeneinander */
  .pos-row{flex-direction:column; align-items:stretch; gap:8px; position:relative;}
  .pos-row .feld-ladungstraeger, .pos-row .feld-typ, .pos-row .feld-menge{flex:1 1 auto;width:100%;}
  .pos-row-kopf{display:flex; align-items:center; gap:12px;}
  .pos-thumb{width:56px;height:56px;}
  .pos-mini-label{display:block;}
  .pos-remove{position:absolute; top:6px; right:6px; margin-left:0;}

  table{font-size:13px;}
  th, td{padding:8px 6px;}
  .filter-bar{flex-direction:column;align-items:stretch;}
  .filter-bar > div{min-width:0;}
}
