:root{--bg: #f6f8fb;--card: #ffffff;--text: #0c1425;--muted: #5b6579;--primary: #0b6efb;--danger: #d7263d;--border: #e5e9f2;--toolbar-h: 56px;--viewbar-h: 0px}*{box-sizing:border-box}html,body,#root{height:100%}html{overflow:hidden}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden}input,select,textarea,[contenteditable=true]{font-size:16px}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.toolbar{position:sticky;top:0;z-index:10;height:var(--toolbar-h);width:100%;background:#0000000d;border-bottom:1px solid var(--border);padding:0 16px;display:flex;align-items:center;font-size:16px;line-height:1.2}.viewbar{position:sticky;top:var(--toolbar-h);z-index:9;min-height:var(--viewbar-h);height:auto;background:var(--card);border-bottom:1px solid var(--border);padding:4px 16px;display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:0}.viewbtn{background:transparent;color:var(--text);font-weight:600;font-size:16px;line-height:1.25;text-align:center;white-space:normal;padding:10px 12px;border:0;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;height:100%}.viewbtn:hover{background:#0000000a}.viewbtn.is-active{color:var(--primary);background:#0b6efb14}.viewbtn.viewbtn-empty{cursor:default;pointer-events:none;background:transparent}.view-content{will-change:transform,opacity}.rotate-left{animation:view-rotate-left .36s ease both}.rotate-right{animation:view-rotate-right .36s ease both}@keyframes view-rotate-left{0%{transform:perspective(800px) rotateY(25deg) translate(24px);opacity:0}to{transform:perspective(800px) rotateY(0) translate(0);opacity:1}}@keyframes view-rotate-right{0%{transform:perspective(800px) rotateY(-25deg) translate(-24px);opacity:0}to{transform:perspective(800px) rotateY(0) translate(0);opacity:1}}.viewbar-dots{display:flex;justify-content:center;align-items:center;gap:8px;padding:6px 16px;margin-bottom:4px}.viewbar,.viewbar-dots{display:none!important}.viewdot{width:8px;height:8px;border-radius:50%;border:2px solid var(--muted);background:transparent;opacity:.6;cursor:pointer;padding:0}.viewdot.is-active{border-color:var(--primary);background:var(--primary);opacity:1}.viewdot:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tool-btn{flex:1 1 0;min-width:0;text-align:center;background:transparent;color:var(--text);font-weight:600;font-size:16px;padding:10px 12px;border:0;border-radius:6px;cursor:pointer;position:relative}.tool-btn:hover{background:#0000000a}.tool-btn-icon{flex:0 0 35%;padding:8px;text-align:left;display:flex;align-items:center}.toolbar .tool-btn.back{grid-column:1 / 2;display:flex;align-items:center;justify-content:flex-start;font-size:16px;padding:10px 12px;background:transparent;color:var(--text);border:none}.tool-btn{flex:1 1 0;min-width:0}.tool-btn+.tool-btn:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;background:#0000002e;border-radius:1px}.tool-btn-icon+.tool-btn:before{display:none}.content{flex:1;padding:16px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.content,.content *{touch-action:pan-y}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:8px}.content>.card{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}.content>.card[data-view=A1]{padding:0}.a1m-wrap{flex:1 1 auto;min-height:0;overflow:auto;position:relative}.a1m-table thead th{position:sticky;top:0!important;background:var(--card);z-index:20;box-shadow:0 1px #000}.a1{display:flex;flex-direction:column;height:100%;min-height:0}.a1-header{display:grid;grid-template-columns:1fr 1fr 1fr .6fr;gap:0;padding:0;border-top:1px solid #000;border-bottom:1px solid #000;background:var(--card);position:relative;z-index:2;font-weight:600}.a1-cell{display:flex;align-items:center}.a1-scroll{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.a1-scroll,.a1-scroll *{touch-action:pan-y}.a1-rows{display:grid;grid-auto-rows:minmax(44px,auto);row-gap:0}.a1-row{display:grid;grid-template-columns:1fr 1fr 1fr .6fr;gap:0;align-items:center;padding:0;border-bottom:1px solid #000}.a1-row:last-child{border-bottom:0}.a1-row input{width:100%;padding:6px 8px;border:1px solid transparent;border-radius:0;background:transparent;box-shadow:none}.a1-row input:focus{outline:none;background:transparent;border-color:transparent;border-radius:0;padding:6px 8px}.a1-add{position:sticky;bottom:0;left:0;right:0;background:var(--card);padding:0;border-top:1px solid #000;z-index:3;display:grid;grid-template-columns:1fr 1fr 1fr .6fr;gap:0}.a1-add>*{border-right:1px solid #000;padding:6px 8px}.a1-add>*:last-child{border-right:0}.a1-add input,.a1-add select{width:100%;border:1px solid transparent;border-radius:0;background:transparent;padding:6px 8px;border-right:1px solid #000}.a1-header,.a1-rows,.a1-add{border-left:1px solid #000}.a1-row .a1-cell:last-child,.a1-add>*:last-child,.a1-header>*:last-child{border-right:0}.a1-col-meal{position:relative;justify-content:center}.a1-meal-btn{appearance:none;background:transparent;border:0;padding:4px;line-height:0;cursor:pointer;color:#000;border-radius:6px}.a1-meal-btn img{display:block;width:18px;height:18px}.a1-meal-btn:hover{background:#0000000d}.a1-meal-btn:active{transform:translateY(1px)}.a1-meal-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.a1-meal-menu{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid #000;border-radius:8px;padding:4px;z-index:20;box-shadow:0 6px 20px #0000001f;min-width:180px}.a1-meal-option{width:100%;text-align:left;background:transparent;border:0;padding:8px 10px;border-radius:6px;cursor:pointer;color:inherit}.a1-meal-option:hover{background:#0000000d}.a1-meal-option.is-red{color:var(--danger)}.a1-meal-option.is-green{color:#2e7d32}.a1-meal-option.is-black{color:#000}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.table{width:100%;border-collapse:collapse;flex:1 1 auto;min-height:0}.table-add-footer{position:sticky;bottom:0;background:var(--card);z-index:120;box-shadow:0 -1px 0 var(--border);padding:8px}.table-add-footer .add-form{margin:0}.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.table thead th{position:sticky;top:calc(var(--toolbar-h) + var(--viewbar-h));background:var(--card);z-index:100;box-shadow:0 1px 0 var(--border)}.table thead{position:sticky;top:calc(var(--toolbar-h) + var(--viewbar-h));z-index:101;background:var(--card)}.table-wrap .table thead{top:0;z-index:101;background:var(--card)}.table-wrap .table thead th{top:0;z-index:102}.table input{width:100%;padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff}.table input{width:100%;color:inherit;background:transparent;border:1px solid transparent;border-radius:0;padding:6px 0;box-shadow:none}.table input:focus{outline:none;background:#fff;border-color:var(--primary);border-radius:8px;padding:8px}.table tr.row-selected{background:#0b6efb14}.table tr.row-selected td:first-child{position:relative}.table tr.row-selected td:first-child:before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:4px;background:var(--primary);border-radius:2px}.actions-col{width:64px;text-align:right}button{appearance:none;border:0;border-radius:8px;padding:8px 10px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer}button:hover{filter:brightness(.95)}button:active{transform:translateY(1px)}button:disabled{opacity:.6;cursor:default}button.danger{background:var(--danger)}.add-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px}.add-form button[type=submit]{grid-column:1 / -1;justify-self:end;margin-top:6px}.logo-img{display:block;height:16.8px;width:auto;object-fit:contain}.modal-backdrop{position:fixed;inset:0;background:#0c142573;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;width:min(92vw,360px);box-shadow:0 10px 30px #0003}.modal-title{margin:0 0 8px;font-size:16px}.modal-content{margin:0 0 12px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px}.th-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-clickable:hover{color:var(--primary)}.blood-group-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.blood-group-field label{margin:0;font-weight:700;font-size:18px}.blood-group-select{font:inherit;background:#fff;color:inherit;border:1px solid var(--border);border-radius:8px;padding:6px 10px;min-width:160px;height:36px}.blood-group-select:focus{outline:2px solid var(--primary);outline-offset:2px}.blood-group-selected{margin-left:4px;color:var(--muted)}.section-divider{border:0;border-top:1px solid var(--border);margin:12px 0}.allergies{margin-top:8px}.allergies-header strong{font-size:16px}.allergy-list{padding-left:18px;margin:6px 0 0}.allergy-list li{margin:2px 0}.allergy-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.icon-btn{appearance:none;background:transparent;border:0;color:#000;padding:4px;line-height:0;cursor:pointer}.icon-btn:hover{opacity:.8}.icon-btn:active{transform:translateY(1px)}.icon-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.icon-btn svg{width:18px;height:18px;display:block}.allergy-form{display:flex;gap:8px;align-items:center;margin-top:8px}.allergy-form input{flex:1 1 auto;min-width:160px;padding:8px;border:1px solid var(--border);border-radius:8px;height:36px;box-sizing:border-box}.allergy-form button{height:36px;padding:0 12px;display:inline-flex;align-items:center;border-radius:8px;box-sizing:border-box}.allergy-autocomplete{position:relative;flex:1 1 auto}.allergy-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:8px;padding:4px;margin:0;list-style:none;z-index:20;max-height:220px;overflow-y:auto;box-shadow:0 6px 20px #0000001f}.allergy-suggestions li+li{margin-top:2px}.suggestion-btn{width:100%;text-align:left;background:transparent;color:inherit;border:0;padding:8px 10px;border-radius:6px;cursor:pointer}.suggestion-btn:hover{background:#0000000d}.muted{color:var(--muted)}
