:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#202124;background:#f3f4f6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:8px;padding:12px 16px;color:#fff;background:linear-gradient(#ec3439,#d31f24);box-shadow:0 4px #8e171a;cursor:pointer}button:active{transform:translateY(2px);box-shadow:0 2px #8e171a}button:disabled,button:disabled *{opacity:.65;cursor:not-allowed!important}button:disabled:active{transform:none;box-shadow:0 4px #8e171a}input,select,textarea{width:100%;min-height:44px;border:1px solid #d6d9de;border-radius:8px;padding:10px 12px;background:#fff}textarea{min-height:88px;resize:vertical}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(420px,100%);display:grid;gap:12px;padding:28px;background:#fff;border:1px solid #e1e4e8;border-radius:8px;box-shadow:0 16px 48px #00000014}.brand-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:8px;color:#fff;background:#d31f24}.login-panel h1{margin:0 0 8px}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.mobile-topbar,.sidebar-backdrop{display:none}aside{display:flex;flex-direction:column;gap:10px;padding:20px;color:#fff;background:#26282c}aside button{justify-content:flex-start;color:#f8f8f8;background:#3a3d42;box-shadow:none}aside button.active{background:#d31f24}.side-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-weight:800}.content{min-width:0;padding:24px}header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}header span{color:#6b7280}header h2{margin:2px 0 0}.toast,.notice,.success{color:#087443}.panel{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:20px}.panel h3{margin-top:0}.quick-grid,.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.summary-strip{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.form-panel{display:grid;gap:12px;max-width:760px}.date-buttons{display:flex;flex-wrap:wrap;gap:10px}.date-buttons button{color:#333;background:linear-gradient(#f2f3f5,#d4d7dc);box-shadow:0 4px #a6abb3}.date-buttons button.selected{color:#fff;background:linear-gradient(#ec3439,#d31f24);box-shadow:0 4px #8e171a}.date-buttons button.loaded,.date-buttons button.enrolled{color:#fff;background:linear-gradient(#24a65a,#087443);box-shadow:0 4px #065a34}.date-buttons button.closed{color:#fff;background:linear-gradient(#9ca3af,#6b7280);box-shadow:0 4px #4b5563}.date-buttons button.selected.loaded,.date-buttons button.selected.enrolled{background:linear-gradient(#2fc96f,#087443)}.date-buttons button.selected.closed{background:linear-gradient(#9ca3af,#6b7280);box-shadow:0 4px #4b5563}.form-fields{display:grid;gap:12px;min-width:0;margin:0;padding:0;border:0}.form-fields:disabled{opacity:.72}.form-fields:disabled input,.form-fields:disabled select,.form-fields:disabled textarea{color:#4b5563;background:#eef0f3;cursor:not-allowed}.readonly-note{margin:0;color:#6b7280;font-weight:700}.dish-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(100px,auto) minmax(100px,auto) minmax(130px,auto);align-items:center;gap:10px}.meal-type-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(140px,1fr);gap:10px}.import-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.import-row span{color:#5f6670}.guest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.file-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:fit-content;border-radius:8px;padding:12px 16px;color:#fff;background:linear-gradient(#5d6572,#3a3d42);box-shadow:0 4px #20242b;cursor:pointer}.file-button input{display:none}.file-button:has(input:disabled){opacity:.65;cursor:not-allowed!important}.file-button:has(input:disabled) *{cursor:not-allowed!important}.list,.summary-card{display:grid;gap:8px}.meal-card-list{display:grid;gap:10px}.meal-card{display:grid;gap:6px;padding:12px;border:1px solid #eceff3;border-radius:8px;background:#fafafa}.meal-card-header,.meal-card-header>div{display:flex;justify-content:space-between;gap:10px}.meal-card-header{align-items:flex-start}.meal-card-header>div{flex:1;min-width:0}.meal-card p{margin:0}.meal-card span,.meal-card small{color:#5f6670}.row,.day-line,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.row{padding:10px 0;border-bottom:1px solid #eceff3}.row-actions{display:inline-flex;flex-wrap:wrap;gap:8px}.row-actions button{padding:8px 10px}.action-icon-button{width:44px;min-width:44px;height:40px;padding:0;justify-content:center}.action-icon-button svg{width:19px;height:19px}.edit-button{background:linear-gradient(#facc15,#d97706);box-shadow:0 4px #92400e}.danger-button{width:auto;min-width:116px;padding:8px 10px;background:linear-gradient(#f36a6f,#b91c1c);box-shadow:0 4px #7f1d1d}.danger-button.action-icon-button{width:44px;min-width:44px;padding:0}.row.total{border-bottom:0;font-weight:800}.check{display:inline-flex;align-items:center;gap:8px}.check input,.day-line input{width:auto;min-height:auto}.day-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,auto);align-items:center}.day-line label{display:inline-flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}.day-line label:last-child{justify-self:end}.error{color:#b42318}.label-print-area{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.food-label{width:4cm;min-height:4cm;display:grid;align-content:start;gap:3px;border:1px solid #202124;border-radius:4px;padding:7px;background:#fff;overflow:hidden}.label-name{font-size:12px;line-height:1.1;overflow-wrap:anywhere}.food-label span,.food-label p,.food-label small{margin:0;font-size:10px;line-height:1.2;overflow-wrap:anywhere}.label-date,.label-flags,.label-food{font-weight:700}.food-label button{margin-top:4px;padding:6px 8px}footer{margin-top:20px;color:#7b8087;text-align:center;font-size:12px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.app-shell{display:block;grid-template-columns:1fr;padding-top:64px}.mobile-topbar{position:fixed;top:0;right:0;left:0;z-index:30;display:flex;align-items:center;gap:12px;height:64px;padding:10px 16px;color:#fff;background:#26282c;box-shadow:0 8px 24px #0000002e}.mobile-menu-button{width:44px;height:44px;padding:0;background:#d31f24;box-shadow:0 4px #8e171a}.mobile-brand{display:inline-flex;align-items:center;gap:8px;font-weight:800}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:block;width:100%;min-height:100vh;padding:0;border-radius:0;background:#0000006b;box-shadow:none}aside{position:fixed;top:0;bottom:0;left:0;z-index:40;width:min(82vw,300px);padding:20px;overflow-y:auto;transform:translate(-105%);transition:transform .2s ease;box-shadow:16px 0 34px #00000042}aside.open{transform:translate(0)}.side-brand{margin-bottom:16px;font-size:16px}aside button{width:100%;min-height:48px;justify-content:flex-start;padding:12px 14px;font-size:16px}aside button svg{width:20px;height:20px}.content{padding:16px}.home-actions{display:none}.panel{padding:16px}header h2{font-size:28px;line-height:1.1}header,.row,.day-line,.toolbar{align-items:stretch;flex-direction:column}.day-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,auto);align-items:center}.day-line label:last-child{justify-self:end}.dish-row,.meal-type-row,.guest-grid{grid-template-columns:1fr}}@media print{@page{size:4cm 4cm;margin:0}html,body{width:4cm;min-height:4cm;background:#fff}body *{visibility:hidden!important}.label-print-area,.label-print-area *{visibility:visible!important}.print-hide,.print-hide *{display:none!important}.app-shell,.content,.panel{display:block;width:4cm;min-height:auto;margin:0;padding:0;border:0;background:#fff}.label-print-area{position:absolute;top:0;left:0;display:block;width:4cm;margin:0;padding:0}.food-label{width:4cm;height:4cm;min-height:4cm;max-height:4cm;break-after:page;page-break-after:always;margin:0;border:0;border-radius:0;padding:2mm;box-shadow:none;overflow:hidden}.label-name{font-size:9pt}.food-label span,.food-label p,.food-label small{font-size:7pt;line-height:1.08}}
