*{box-sizing:border-box}
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#20252b;background:#f3f5f7}
body{margin:0;line-height:1.5}
.wrap{width:min(1180px,calc(100% - 2rem));margin:auto}
.site-header{background:#222b35;color:#fff;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px #0002}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{font-size:1.2rem;font-weight:800;color:#fff;text-decoration:none}
nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
nav a,.link-button{color:#fff;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:.3rem}
main{padding:2rem 0}
.card{background:#fff;border-radius:14px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 5px 24px #0000000d}
.narrow{max-width:560px;margin:2rem auto}
.hero{padding:3rem 2rem}
h1{margin-top:0}h2{font-size:1.05rem}
label{display:block;font-weight:650;margin:.8rem 0}
input,select,textarea,button,.button{font:inherit}
input,select,textarea{width:100%;padding:.7rem;border:1px solid #cbd2d9;border-radius:8px;background:#fff}
button,.button{display:inline-block;padding:.65rem 1rem;border:1px solid #b8c0c8;border-radius:8px;background:#fff;text-decoration:none;color:#20252b;cursor:pointer}
.primary{background:#8c1d18;color:#fff;border-color:#8c1d18}
.actions{display:flex;gap:.7rem;flex-wrap:wrap}
.inline{display:inline}
.alert{padding:1rem;border-radius:9px;margin-bottom:1rem}
.alert.error{background:#fde8e7;color:#8c1d18}.alert.success{background:#e7f6eb;color:#17652a}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0 2rem}
.product{border:1px solid #e0e4e8;border-radius:10px;padding:1rem}
.product .price{font-weight:800;font-size:1.1rem}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.form-grid label:nth-last-child(-n+2){grid-column:span 2}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:.7rem;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
th{background:#f6f7f8}
.badge{display:inline-block;padding:.25rem .5rem;border-radius:99px;font-size:.85rem;font-weight:750}
.badge.delivery{background:#ffe2d8;color:#9a3518}.badge.pickup{background:#dff1ff;color:#075985}
.row-delivery{background:#fff3ef}.row-pickup{background:#eff8ff}
.small{padding:.35rem .6rem;font-size:.9rem}.total{text-align:right;font-size:1.2rem;font-weight:800}
footer{padding:2rem 0;color:#66717c}
@media(max-width:800px){.product-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid label:nth-last-child(-n+2){grid-column:auto}}
@media(max-width:560px){.product-grid{grid-template-columns:1fr}.header-inner{align-items:flex-start;padding:.7rem 0}.hero{padding:2rem 1rem}}
@media print{body{background:#fff}.site-header,footer,.print-hide{display:none!important}.card{box-shadow:none;padding:0}.wrap{width:100%}.row-delivery{background:#fff0eb!important}.row-pickup{background:#eef8ff!important}}

.danger{color:#9b1c1c;border-color:#e2a5a5}.inline{display:inline}.daily select{width:auto;padding:.35rem}
.date-filter{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap}.date-filter label{min-width:150px;margin:.25rem 0}.date-filter input{min-width:150px}.summary-heading{margin-top:2.5rem;padding-top:1.5rem;border-top:3px solid #8c1d18}.daily-summary{margin:1.25rem 0 2rem;break-inside:avoid}.daily-summary h3{margin-bottom:.5rem;background:#f6f7f8;padding:.6rem .8rem}.need-table{max-width:850px}.need-table .qty{text-align:right;white-space:nowrap}.need-table tfoot{border-top:2px solid #20252b}.article-subtotal td{font-size:.92rem;color:#4b5563}.row-cancelled{opacity:.7;background:#f2f2f2!important;text-decoration-color:#777}.cancel-note{display:block;font-size:.8rem;color:#9b1c1c;margin-top:.35rem}.print-note{font-size:.9rem;color:#4b5563}@media print{.date-filter{display:none!important}.daily-summary{break-inside:avoid}.summary-heading{break-before:page}.row-cancelled{opacity:1;background:#eee!important}}

/* Monatskalender in der Anbieter-Ansicht */
.order-calendar{width:min(100%,390px);margin:1.2rem 0 1.8rem;padding:1rem;border:1px solid #e0e4e8;border-radius:12px;background:#fbfcfd}
.order-calendar-heading h2{margin:0 0 .2rem;font-size:1rem}
.order-calendar-heading p,.order-calendar-hint{margin:.2rem 0 .7rem;color:#59636e;font-size:.78rem;line-height:1.35}
.order-calendar-month{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.4rem 0 .75rem}
.order-calendar-month a{display:grid;place-items:center;width:32px;height:32px;border:1px solid #d4dbe2;border-radius:8px;background:#fff;color:#20252b;text-decoration:none;font-size:1.5rem;line-height:1}
.order-calendar-month a:hover,.order-calendar-month a:focus-visible{background:#f0e0de;border-color:#8c1d18}
.order-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}
.order-calendar-weekday{text-align:center;color:#64707c;font-size:.76rem;font-weight:700;padding:.2rem 0}
.order-calendar-day{position:relative;display:flex;align-items:center;justify-content:center;min-height:43px;border:1px solid #e6e9ed;border-radius:8px;background:#fff;color:#374151;text-decoration:none;font-variant-numeric:tabular-nums;font-size:.87rem}
.order-calendar-day.is-today{border:2px solid #b76a32}
.order-calendar-day.has-orders{background:#f9e2df;border-color:#d79b96;color:#7c1c17;font-weight:750;cursor:pointer}
.order-calendar-day.has-orders:hover,.order-calendar-day.has-orders:focus-visible{background:#8c1d18;border-color:#8c1d18;color:#fff;z-index:20;outline:none}
.order-calendar-day.has-orders:focus-visible{box-shadow:0 0 0 3px #dcb8b4}
.order-calendar-count{position:absolute;top:2px;right:3px;min-width:15px;height:15px;padding:0 3px;border-radius:10px;background:#fff;color:#8c1d18;text-align:center;font-size:.65rem;line-height:15px}
.order-calendar-tooltip{display:none;position:absolute;z-index:30;top:calc(100% + 7px);left:0;width:min(340px,calc(100vw - 2.5rem));max-height:min(370px,70vh);overflow:auto;padding:.75rem .9rem;border:1px solid #d6dce3;border-radius:10px;background:#fff;color:#20252b;box-shadow:0 10px 28px #17212c35;text-align:left;font-size:.82rem;font-weight:400;line-height:1.4;cursor:default}
.order-calendar-day.tooltip-right .order-calendar-tooltip{left:auto;right:0}
.order-calendar-day.has-orders:hover .order-calendar-tooltip,.order-calendar-day.has-orders:focus .order-calendar-tooltip{display:block}
.order-calendar-tooltip-title{display:block;font-weight:800;padding-bottom:.45rem;border-bottom:1px solid #e5e7eb}
.order-calendar-entry{display:block;padding:.55rem 0;border-bottom:1px solid #eef0f2}
.order-calendar-entry:last-child{padding-bottom:0;border-bottom:0}
.order-calendar-entry-title{display:flex;align-items:center;gap:.3rem .45rem;flex-wrap:wrap;margin-bottom:.2rem}
.order-calendar-kind{padding:.1rem .35rem;border-radius:4px;font-size:.72rem;font-weight:700}
.order-calendar-kind.delivery{background:#ffe2d8;color:#9a3518}
.order-calendar-kind.pickup{background:#dff1ff;color:#075985}
.order-calendar-item{display:block;margin-left:.35rem;padding-left:.45rem;border-left:2px solid #e8ecef;font-size:.78rem}
.order-calendar-hint{margin:.75rem 0 0}
@media(max-width:620px){.order-calendar-tooltip,.order-calendar-day.tooltip-right .order-calendar-tooltip{position:fixed;top:auto;bottom:1rem;left:1rem;right:1rem;width:auto;max-height:55vh}}
