:root{font-family:system-ui,-apple-system,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;padding:0;background:#f5f3ef}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-header{padding:10px 12px;border-bottom:1px solid #ddd;background:#fff;display:flex;align-items:center;gap:12px}.app-header h1{font-size:16px;margin:0;flex:1;min-width:0}.new-sud{flex:0 0 auto;font-size:14px;padding:10px 14px;min-height:44px;border:1px solid #888;background:#fff;border-radius:8px;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.app-board{flex:1;overflow:hidden}.app-scroll{flex:1;overflow-y:auto}.error{color:#b00}.error.banner{padding:10px 12px;background:#fee;border-bottom:1px solid #fbb;font-size:13px}.warning.banner{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:#fdf3d7;border-bottom:1px solid #ecd9a0;font-size:13px}.warning.banner div{flex:1}.warning.banner p{margin:0 0 4px}.warning.banner p:last-child{margin-bottom:0}.queue.banner{padding:10px 12px;background:#e8f0fe;border-bottom:1px solid #c4d7f5;font-size:13px}.queue-pending,.queue-conflict{display:flex;align-items:flex-start;gap:12px}.queue-pending span,.queue-conflict span{flex:1}.queue-conflict{margin-top:6px;color:#8a1f1f}.empty{padding:16px;color:#666}.kellerblick{padding:12px;max-width:560px;margin:0 auto;width:100%}.kellerblick h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#888;margin:16px 0 8px}.kellerblick .section-hint{font-size:12px;color:#999;margin:-4px 0 8px}.card{background:#fff;border:1px solid #e2ddd4;border-radius:12px;padding:12px 14px;margin-bottom:10px;box-shadow:0 1px 2px #0000000a}.card header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.card .beer{font-weight:600;margin-bottom:2px}.card .muted,.muted{color:#777;font-size:13px}.card footer{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.card footer button{flex:1;min-height:44px;font-size:14px;padding:10px 12px;border-radius:8px;border:none;background:#2a6;color:#fff;cursor:pointer}.card footer button.secondary{background:#fff;color:#333;border:1px solid #bbb}.card footer button.tank-leer{flex:1 0 100%}.aufgaben{display:flex;gap:8px;margin-top:8px}.aufgaben .aufgabe{flex:1;min-height:38px;font-size:13px;padding:8px 10px;border-radius:8px;border:1px solid #bbb;background:#fff;color:#333;cursor:pointer}.aufgaben .aufgabe.faellig{border-color:#c0392b;background:#fdecea;color:#8c2318;font-weight:600}.aufgaben .aufgabe.erledigt{border-color:#2a6;background:#eaf7f0;color:#1d6b45}.card.planned,.card.unplanned{background:#fbfaf7;border-style:dashed}.card.warn{background:#fdf6d8;border-color:#e6d38a}.card .warn-note{color:#9a6b00;font-size:13px;margin-top:6px}.card.klickbar{cursor:pointer;transition:background .12s ease}.card.klickbar:active{background:#f3efe7}.card button.karte-auf{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;border:none;background:none;padding:0;font:inherit;font-weight:600;text-align:left;cursor:pointer;min-height:32px}.karte-auf .karte-pfeil{color:#b5ac9e;font-size:22px;line-height:1}.anmeldung{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}.anmeldung form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.anmeldung label{display:flex;flex-direction:column;gap:6px;font-size:14px}.anmeldung input{font-size:16px;padding:12px;border:1px solid #d8d2c4;border-radius:8px}.anmeldung button[type=submit]{background:#264;color:#fff;border:none;border-radius:8px;padding:14px;font-size:16px}.storno-zeile{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.festschreiben-zeile{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;border-top:1px solid #eee6d8;padding-top:10px;margin-top:2px}.rezept-tabelle tr.jahres-summe th,.rezept-tabelle tr.klassen-kopf th{background:#f2ede2;border-top:1px solid #e6dcc8;font-size:13px;padding-top:8px;text-align:left}.jahresmeldung h2 select{font:inherit;margin-left:4px}.rezept-tabelle tr.zugemacht td{color:#8b8578}.rezept-tabelle tr.klickbar{cursor:pointer}.rezept-tabelle tr.klickbar td{padding-top:6px;padding-bottom:6px}.rezept-tabelle tr.klickbar:active td{background:#ece6d9}.rezept-tabelle button.sud-auf{font:inherit;color:#264;border:none;background:transparent;padding:0;cursor:pointer}.rezept-tabelle button.sud-auf .karte-pfeil{color:#b5ac9e;font-size:17px;line-height:1;margin-left:4px}.rezept-tabelle button.menge-auf{font:inherit;font-variant-numeric:tabular-nums;color:#264;border:none;background:transparent;padding:4px 0 4px 8px;cursor:pointer}.rezept-tabelle .warn-note{color:#9a6b00;margin-top:2px}.rezept-tabelle tr.zugemacht button.sud-auf{color:inherit}.rezept-tabelle button.sorte-auf{font:inherit;font-weight:inherit;color:inherit;border:none;background:transparent;padding:0;text-align:left;cursor:pointer}.ausstoss-summe,.steuerklassen{font-variant-numeric:tabular-nums}.festschreiben-aktion{display:flex;align-items:center;gap:8px}.wer-wahl{font:inherit;color:#264;border:none;background:transparent;padding:0;min-height:44px;cursor:pointer}.zeitplan{display:flex;flex-direction:column;height:100%;min-height:0}.zeitplan-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;font-size:13px}.zeitplan-gruppe-block{display:inline-flex;align-items:center;gap:6px}.zeitplan-heute{margin-left:auto}.zeitplan-toolbar button{min-width:44px;min-height:36px;border-radius:8px;border:1px solid #bbb;background:#fff;cursor:pointer;font-size:15px}.zeitplan-scroll{flex:1;overflow:auto;min-height:0;border-top:1px solid #e4ded2}.zeitplan-header{display:flex;position:sticky;top:0;z-index:3;background:#f5f3ef;border-bottom:1px solid #ddd6c8}.zeitplan-days{position:relative;height:26px}.zeitplan-day{position:absolute;top:0;height:100%;font-size:10px;color:#666;border-left:1px solid #eee6d8;padding-left:2px;overflow:hidden;white-space:nowrap}.zeitplan-day.weekend{background:#efe9dd}.zeitplan-row{display:flex;border-bottom:1px solid #eee6d8}.zeitplan-tanklabel{position:sticky;left:0;z-index:2;width:140px;min-width:140px;background:#fff;border-right:1px solid #ddd6c8;padding:6px 8px;display:flex;flex-direction:column;font-size:12px}.zeitplan-header .zeitplan-tanklabel{background:#f5f3ef;border-bottom:none}.zeitplan-track{position:relative;height:44px}.zeitplan-now{position:absolute;top:0;bottom:0;width:2px;background:#c0392b;z-index:1}.zeitplan-block{position:absolute;top:6px;height:32px;border:none;border-radius:6px;color:#fff;font-size:11px;overflow:hidden;white-space:nowrap;cursor:pointer;padding:0 6px;text-align:left;display:flex;align-items:center}.zeitplan-blocklabel{position:sticky;left:148px;overflow:hidden;text-overflow:ellipsis}.zeitplan-block.warn{background:#f6e9b2;color:#5f4c00;border:1px solid #e6d38a}.zeitplan-block.selected{outline:3px solid #226644;outline-offset:1px;z-index:2}.zeitplan-actionbar{border-top:2px solid #226644;background:#fff;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.zeitplan-actioninfo{display:flex;justify-content:space-between;gap:8px;font-size:14px;flex-wrap:wrap}.zeitplan-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.zeitplan-segment{display:inline-flex;gap:2px;background:#eceff1;border-radius:8px;padding:2px}.zeitplan-segment button{border:none;background:transparent;border-radius:6px;min-height:36px;padding:6px 10px}.zeitplan-segment button.active{background:#2a6;color:#fff;font-weight:600}.zeitplan-jahr{min-height:36px}.zeitplan-block.kette{outline:2px solid #1a1a1a;outline-offset:1px}.zeitplan-block.fremd{opacity:.35}.zeitplan-gruppe{font-size:13px;color:#555;min-width:38px}.zeitplan-actions button,.zeitplan-actions select{min-height:44px;padding:8px 12px;border-radius:8px;border:1px solid #bbb;background:#fff;font-size:14px;cursor:pointer}.zeitplan-actions button.secondary{margin-left:auto}.rezepte{padding:12px}.rezepte h2{font-size:15px;margin:16px 4px 8px;display:flex;align-items:center;gap:8px}.bierfarbe{width:28px;height:28px;padding:0;border:1px solid #bbb;border-radius:6px;background:none;cursor:pointer}.rezepte .card.history{background:#fbfaf7;border-style:dashed;margin-left:16px}.einkauf{padding:12px}.einkauf h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:#888;margin:16px 0 8px}.einkauf-zeitraum{display:flex;gap:12px}.einkauf-zeitraum label{flex:1;display:flex;flex-direction:column;gap:4px;font-size:13px;color:#555}.einkauf-zeitraum input{padding:8px;font-size:15px;border:1px solid #ccc;border-radius:6px}.einkauf-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:7px 2px;border-bottom:1px solid #eee;font-size:14px}.einkauf-row.einkauf-summe{border-bottom:none;font-weight:600}.tankverwaltung{padding:12px}.tankverwaltung h2{font-size:15px;margin:16px 4px 8px;display:flex;align-items:center;gap:8px}.tankverwaltung .location-edit{border:none;background:transparent;color:#888;font-size:14px;cursor:pointer;padding:4px 8px}.tankverwaltung .tank-actions{display:flex;gap:8px;margin-top:12px}.tankverwaltung .tank-actions button{min-height:44px;padding:10px 16px;border-radius:8px;border:none;background:#2a6;color:#fff;cursor:pointer}.tankverwaltung .tank-actions button.secondary{background:#fff;color:#333;border:1px solid #bbb}.tank-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:52px;padding:12px 14px;margin-bottom:8px;background:#fff;border:1px solid #ddd6c8;border-radius:12px;font-size:15px;text-align:left;cursor:pointer}div.tank-row{cursor:default}.lieferant-row button{flex:1;min-height:44px;padding:0;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.lieferant-row a{display:flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid #ddd6c8;border-radius:8px;color:#555;font-size:14px;text-decoration:none}.sorten-schalter{min-height:36px;margin:0 0 8px;padding:4px 10px;border:1px solid #ddd6c8;border-radius:8px;background:#fff;font:inherit;font-size:13px;color:#555;cursor:pointer}.sortenliste{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.sortenliste .sorte{min-height:36px;padding:6px 10px;border:1px solid #ddd6c8;border-radius:8px;background:#fff;font:inherit;font-size:13px;cursor:pointer}.sortenliste .sorte.neu{border-style:dashed;color:#555}.tank-row button.secondary{min-height:36px;padding:6px 10px;border-radius:8px;background:#fff;border:1px solid #bbb;cursor:pointer}.dialog button.lock-toggle{margin-top:10px;min-height:44px;width:100%;padding:10px 12px;border-radius:8px;border:1px solid #bbb;background:#fff;cursor:pointer}.dialog button.danger{margin-top:10px;min-height:44px;width:100%;padding:10px 12px;border-radius:8px;border:1px solid #c0392b;background:#fff;color:#c0392b;cursor:pointer}.confirm-delete{margin-top:10px}.typenschild{margin-top:12px;border-top:1px solid #eee;padding-top:10px}.typenschild summary{min-height:44px;display:flex;align-items:center;color:#666;font-size:14px;cursor:pointer}.typenschild dl{margin:4px 0 0}.typenschild dl>div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #f2efe8}.typenschild dt,.typenschild dd{margin:0;font-size:14px}.typenschild dd{text-align:right;word-break:break-word}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-end;justify-content:center;z-index:100;touch-action:none}body.dialog-offen{overscroll-behavior:none}body.dialog-offen .app-scroll{overflow:hidden}@media(min-width:480px){.dialog-backdrop{align-items:center}}.dialog{background:#fff;padding:20px;border-radius:16px 16px 0 0;width:100%;max-width:480px;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px}@media(min-width:480px){.dialog{border-radius:12px}}.dialog h2{margin:0 0 4px;font-size:16px}.dialog label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#444}.dialog label.checkbox{flex-direction:row;align-items:center;gap:8px}.dialog input,.dialog select{padding:12px;border:1px solid #bbb;border-radius:8px;font:inherit;min-height:44px}.dialog textarea{padding:12px;border:1px solid #bbb;border-radius:8px;font:inherit;font-size:16px;resize:vertical}.sud-notiz-feld{margin-top:8px}.brauzeit-feld{margin-top:4px}.notiz-zeile{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.dialog .herkunft{margin:6px 0 0;font-size:12px;line-height:1.4}.card .sud-notiz{white-space:pre-wrap;border-left:2px solid #e2ddd4;padding-left:8px;margin-top:6px}.dialog .error{padding:8px 10px;border:1px solid #fbb;background:#fee;border-radius:8px;font-size:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.sud-kopf{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:4px}.sud-kopf select{width:auto;min-height:36px;padding:4px 8px;font-size:14px}.fassungs-notiz{margin:0 0 6px}.aufteilung{margin:8px 0;padding:8px 10px;border:1px dashed #d8d2c4;border-radius:8px}.aufteilung ul{margin:4px 0 6px;padding-left:18px}.stationen-hinweis{margin-top:0}.dialog-actions button{min-height:44px;padding:10px 16px;border-radius:8px;border:1px solid #bbb;background:#fff;font:inherit;cursor:pointer}.dialog-actions button[type=submit]{background:#2a6;color:#fff;border-color:#185}.allocation-row{display:flex;gap:8px}.kette{margin-top:16px;border-top:1px solid var(--rand, #ddd);padding-top:12px}.kette h3{margin:0 0 8px;font-size:.95rem}.kette ol{margin:0;padding-left:18px;font-size:.9rem;line-height:1.6}.allocation-row select{flex:1;min-width:0}.allocation-row select.breit{flex:2}.allocation-row input{flex:1;min-width:0}.dialog label.keg-row{flex-direction:row;align-items:center;gap:8px}.keg-row .keg-size{flex:1;font-size:14px;color:#222}.keg-row input{flex:0 0 96px;text-align:center}.station{display:flex;gap:8px;align-items:flex-end}.station label:first-child{flex:2}.station label{flex:1;min-width:0}.station button{flex:0 0 auto}.allocation-row button{flex:0 0 44px;min-height:44px;border-radius:8px;border:1px solid #bbb;background:#fff;cursor:pointer}.dialog button.secondary{min-height:44px;border-radius:8px;border:1px dashed #bbb;background:#fff;font:inherit;cursor:pointer}button.link{min-height:36px;padding:6px 12px;border-radius:8px;border:1px solid #bbb;background:#fff;color:#333;font:inherit;cursor:pointer}button.link:hover:not(:disabled){border-color:#185;color:#185}button.link:disabled{opacity:.5;cursor:default}.verlauf-seite{padding:12px}.verlauf{list-style:none;margin:12px 0;padding:0}.verlauf li{padding:8px 0;border-bottom:1px solid #eee;font-size:14px}.verlauf h3{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#666;margin:16px 0 6px}.bottom-nav{display:flex;border-top:1px solid #ddd;background:#fff;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{flex:1;min-height:52px;padding:8px 4px;border:none;background:transparent;font-size:13px;color:#333;cursor:pointer}.bottom-nav button.active{color:#2a6;font-weight:600;box-shadow:inset 0 -3px #2a6}.profil{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;background:transparent;color:#333;cursor:pointer}.dialog button.menue-eintrag{width:100%;min-height:48px;margin-bottom:8px;padding:10px 12px;border:1px solid #bbb;border-radius:8px;background:#fff;color:#333;font-size:15px;cursor:pointer}.dialog button.menue-eintrag.aktiv{border-color:#2a6;color:#2a6;font-weight:600}.rezept-block{margin-top:10px}.rezept-block h4{font-size:13px;margin:0 0 4px}.rezept-tabelle{width:100%;border-collapse:collapse;font-size:13px}.rezept-tabelle th{text-align:left;font-weight:600;color:#666;border-bottom:1px solid #e2ddd4;padding:2px 6px 3px 0}.rezept-tabelle td{padding:3px 6px 3px 0;border-bottom:1px solid #f1ede5}.rezept-tabelle th.zahl,.rezept-tabelle td.zahl{text-align:right;white-space:nowrap}.rezept-kennzahlen{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:#555}.rezept-rolle{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 12px;border-bottom:1px solid #f1ede5;background:#fbf9f5}.rezept-rolle label{display:flex;align-items:center;gap:6px;font-size:13px;color:#666}.rezept-rolle select{min-width:0;font-size:14px;padding:6px 8px}.rezept-tabelle tr.summe td{border-top:1px solid #e2ddd4;border-bottom:none;font-weight:600}.allocation-row.spaltenkopf{font-size:12px;color:#666;margin-top:6px}.allocation-row.spaltenkopf span{flex:1;min-width:0;padding:0 12px;border:1px solid transparent;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.allocation-row.spaltenkopf .platzhalter{flex:0 0 44px;min-width:44px;padding:0}.jahr-wahl{display:flex;align-items:center;justify-content:center;gap:16px;margin:4px 0 8px;font-size:18px}.jahr-wahl button{min-width:44px;min-height:44px;border-radius:8px;border:1px solid #bbb;background:#fff;font-size:18px;cursor:pointer}.plan-zeilen{display:flex;flex-direction:column;gap:6px;margin-top:8px}.plan-zeile{display:flex;align-items:center;justify-content:space-between;gap:8px}.plan-zeile.monatsbier{margin-top:8px;padding-bottom:8px;border-bottom:1px solid #eee}.plan-zeile select{max-width:60%;min-height:40px;font-size:15px;padding:6px 8px;border:1px solid #bbb;border-radius:8px}.plan-zeile input{width:72px;min-height:40px;text-align:right;font-size:16px;padding:6px 8px;border:1px solid #bbb;border-radius:8px}.einkauf-zurueck{margin-top:10px;min-height:40px;padding:8px 12px;border-radius:8px;border:1px solid #bbb;background:#fff;cursor:pointer}.abweichung{border:1px solid #e6d38a;background:#fdf6d8;border-radius:8px;padding:10px 12px;margin-top:8px}.abweichung p{margin:0 0 8px;font-weight:600}.dialog .abweichung label.radio,.dialog .abweichung label.checkbox{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;padding:2px 0;font-size:14px;color:#333;cursor:pointer}.dialog .abweichung input[type=radio],.dialog .abweichung input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:0}
