* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", Arial, sans-serif; background: #f4f6f4; color: #1d2b1f; }
header { display: flex; align-items: center; gap: 2rem; background: #2d5a34; color: #fff; padding: 0.6rem 1.2rem; }
.brand { font-size: 1.2rem; font-weight: 600; }
nav { display: flex; gap: 0.3rem; flex-wrap: wrap; }
nav a { color: #dce8dd; text-decoration: none; padding: 0.45rem 0.9rem; border-radius: 6px; }
nav a:hover { background: #3d7245; color: #fff; }
nav a.aktiv { background: #fff; color: #2d5a34; font-weight: 600; }
main { max-width: 1100px; margin: 1.2rem auto; padding: 0 1rem; }
h1 { font-size: 1.4rem; margin: 0.4rem 0 1rem; }
h2 { font-size: 1.1rem; margin: 1.4rem 0 0.6rem; }
.flash { padding: 0.7rem 1rem; border-radius: 8px; margin-bottom: 0.8rem; }
.flash.ok { background: #dcefdd; border: 1px solid #7cb87f; }
.flash.error { background: #fbe2e0; border: 1px solid #d98880; }
.karten { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0.8rem; }
.karte { background: #fff; border-radius: 10px; padding: 0.9rem 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.karte .name { font-weight: 600; }
.karte .zahl { font-size: 1.7rem; font-weight: 700; margin: 0.2rem 0; }
.karte .sub { color: #5c6e5e; font-size: 0.85rem; }
.karte.warn { border-left: 4px solid #c0392b; }
.balken { height: 6px; background: #e3e9e3; border-radius: 3px; margin-top: 0.5rem; overflow: hidden; }
.balken > div { height: 100%; background: #4a8f54; }
.balken > div.voll { background: #c0392b; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
th, td { padding: 0.5rem 0.7rem; text-align: left; border-bottom: 1px solid #edf1ed; font-size: 0.92rem; }
th { background: #eaf0ea; }
tr:last-child td { border-bottom: none; }
td.num, th.num { text-align: right; }
form.zeile { display: flex; gap: 0.6rem; align-items: flex-end; flex-wrap: wrap; margin-bottom: 1rem; }
label { display: flex; flex-direction: column; font-size: 0.85rem; gap: 0.25rem; color: #445446; }
input, select, textarea { padding: 0.45rem 0.6rem; border: 1px solid #b8c4b9; border-radius: 6px; font-size: 0.95rem; background: #fff; }
button, .btn { background: #2d5a34; color: #fff; border: none; padding: 0.55rem 1.1rem; border-radius: 6px; font-size: 0.95rem; cursor: pointer; text-decoration: none; display: inline-block; }
button:hover, .btn:hover { background: #3d7245; }
button.klein { padding: 0.25rem 0.6rem; font-size: 0.8rem; background: #a94438; }
.hinweis { color: #a94438; font-size: 0.88rem; }
.grossform { background: #fff; padding: 1.2rem; border-radius: 10px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); max-width: 640px; }
.grossform .felder { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.grossform .felder .breit { grid-column: 1 / -1; }
.grossform button { margin-top: 1rem; }
.chartbox { background: #fff; border-radius: 10px; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.hilfetext { font-size: 0.85rem; color: #5c6e5e; margin-top: 0.3rem; }
.karte.gesamt { background: #2d5a34; color: #fff; }
.karte.gesamt .sub { color: #c4d6c6; }
.gesamtzeile { margin-bottom: 0.8rem; }
.monatsgrid td, .monatsgrid th { padding: 0.15rem 0.35rem; }
.monatsgrid input.zelle { width: 5.5rem; padding: 0.25rem 0.4rem; text-align: right; }
.monatsgrid input.zelle.kg { width: 6.5rem; }
.monatsgrid .bestand { font-weight: 600; color: #2d5a34; }
.monatsgrid .autowert { color: #5c6e5e; }
.monatsgrid tr:nth-child(even) { background: #f6f9f6; }
kbd { background: #eaf0ea; border: 1px solid #b8c4b9; border-radius: 4px; padding: 0 0.3rem; font-size: 0.85em; }
.verkaufstabelle td { padding: 0.25rem 0.4rem; }
.verkaufstabelle tr.offen { background: #fdf6e3; }
.verkaufstabelle input { padding: 0.25rem 0.4rem; }
