:root{color:#1f2b2a;font-synthesis:none;--brand:#173f3a;--brand-hover:#0f312d;--accent:#d7b65c;--line:#dce3e1;--muted:#667571;background:#f3f5f4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px}body{background:#f3f5f4;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-header{color:#fff;background:var(--brand);border-bottom:4px solid var(--accent);align-items:center;gap:16px;min-height:92px;padding:20px clamp(24px,5vw,72px);display:flex}.brand-mark{width:48px;height:48px;color:var(--brand);letter-spacing:-.04em;background:#fff;border-radius:8px;place-items:center;font-weight:800;display:grid}.app-header h1{letter-spacing:-.01em;margin:0;font-size:20px}.app-header p{color:#c9d5d2;margin:4px 0 0;font-size:13px}.local-badge{color:#e2ebe9;align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.local-badge span{background:#78c697;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #78c69726}main{padding:34px clamp(20px,4vw,64px) 70px}.workspace,.preview-section{max-width:1440px;margin:0 auto}.panel{border:1px solid var(--line);background:#fff;border-radius:10px;box-shadow:0 5px 18px #203a360d}.upload-card{grid-template-columns:minmax(280px,1fr) minmax(380px,1.25fr);align-items:center;gap:34px;min-height:160px;padding:28px 30px;display:grid}.eyebrow{color:#75837f;letter-spacing:.12em;margin:0 0 8px;font-size:11px;font-weight:800}h2{letter-spacing:-.025em;margin:0;font-size:23px}.section-copy{color:var(--muted);margin:8px 0 0;font-size:14px}.file-picker{cursor:pointer;background:#fafcfb;border:1px dashed #aab9b5;border-radius:8px;align-items:center;gap:16px;min-height:62px;padding:8px;transition:border-color .15s,background .15s;display:flex}.file-picker:hover{border-color:var(--brand);background:#f5f9f7}.file-picker input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.file-picker-action{background:var(--brand);color:#fff;white-space:nowrap;border-radius:6px;padding:12px 18px;font-size:14px;font-weight:700}.file-picker-name{color:#53615e;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.file-hint{color:#82908c;grid-column:2;margin:-24px 8px 0;font-size:12px}.notice{border:1px solid;border-radius:7px;margin-top:14px;padding:13px 16px;font-size:14px}.notice.success{color:#245d3e;background:#edf8f1;border-color:#b9ddc8}.notice.error{color:#8b302c;background:#fff1f0;border-color:#ebc0bc}.notice.warning{color:#755814;background:#fff9e9;border-color:#eadcae}.test-print-action{color:var(--muted);justify-content:flex-end;align-items:center;gap:16px;margin-top:12px;padding:12px 14px;font-size:12px;display:flex}.data-panel{margin-top:22px;overflow:hidden}.panel-heading{border-bottom:1px solid #e9eeec;justify-content:space-between;gap:28px;padding:26px 30px 22px;display:flex}.sheet-selector{background:#edf1f0;border-radius:8px;align-items:stretch;padding:4px;display:flex}.sheet-selector button{color:#667571;text-align:left;background:0 0;border:0;border-radius:6px;min-width:116px;padding:8px 16px}.sheet-selector button.active{color:var(--brand);background:#fff;box-shadow:0 2px 8px #223c381a}.sheet-selector span{font-weight:750;display:block}.sheet-selector small{color:inherit;opacity:.75;margin-top:2px;font-size:11px;display:block}.filter-row{background:#fbfcfc;border-bottom:1px solid #e9eeec;align-items:center;gap:20px;padding:18px 30px;display:flex}.search-box{background:#fff;border:1px solid #ccd6d3;border-radius:7px;align-items:center;gap:10px;width:min(540px,60%);height:42px;padding:0 13px;display:flex}.search-box:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #173f3a14}.search-box>span{color:#71807c;font-size:20px;line-height:1}.search-box input{color:#273431;background:0 0;border:0;outline:0;width:100%}.selection-summary{color:var(--muted);margin-left:auto;font-size:13px}.selection-summary strong{color:var(--brand)}.table-actions{gap:18px;padding:13px 30px 8px;display:flex}.text-button{color:var(--brand);background:0 0;border:0;padding:5px 0;font-size:13px;font-weight:700}.text-button:hover{text-decoration:underline}.table-wrap{max-height:520px;overflow:auto}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}th{z-index:1;color:#65736f;text-align:left;text-transform:uppercase;letter-spacing:.055em;background:#f1f4f3;border-top:1px solid #e1e7e5;border-bottom:1px solid #dce3e1;padding:11px 14px;font-size:10px;position:sticky;top:0}td{color:#394744;vertical-align:top;border-bottom:1px solid #edf0ef;padding:14px}tbody tr:hover td{background:#fafcfb}tbody tr.selected-row td{background:#f0f7f4}.check-cell{text-align:center;width:48px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--brand)}.date-cell{white-space:nowrap;font-variant-numeric:tabular-nums;width:118px}.unit-cell{color:#213330;min-width:210px;font-weight:650}.menu-cell{min-width:350px;max-width:560px;line-height:1.5}.count-pill{color:#31413e;text-align:center;background:#edf1f0;border-radius:99px;min-width:42px;padding:3px 8px;font-weight:700;display:inline-block}.panel-footer{border-top:1px solid var(--line);min-height:72px;color:var(--muted);background:#fbfcfc;justify-content:space-between;align-items:center;gap:20px;padding:14px 30px;font-size:13px;display:flex}.primary-button,.secondary-button{border-radius:6px;min-height:42px;padding:0 20px;font-size:14px;font-weight:750}.primary-button{border:1px solid var(--brand);color:#fff;background:var(--brand)}.primary-button:hover{background:var(--brand-hover)}.secondary-button{color:var(--brand);background:#fff;border:1px solid #bcc8c5}.empty-state{text-align:center;color:var(--muted);padding:60px 20px 70px}.empty-state h3{color:#34423f;margin:12px 0 4px}.empty-state p{margin:0}.empty-mark{color:#7b8985;border:1px solid #cad4d1;border-radius:50%;place-items:center;width:48px;height:48px;margin:auto;font-weight:800;display:grid}.preview-section{margin-top:34px}.preview-toolbar{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;padding:22px 24px;display:flex}.preview-toolbar p:not(.eyebrow){color:var(--muted);margin:6px 0 0;font-size:13px}.preview-actions{gap:10px;display:flex}.print-sheet{width:var(--media-width);box-sizing:border-box;padding-left:var(--left-margin);padding-right:var(--right-margin);transform:translate(var(--print-offset-x), var(--print-offset-y));transform-origin:0 0;margin:0 auto}.label-row{width:var(--label-row-width);height:var(--label-height);grid-template-columns:repeat(var(--label-columns), var(--label-width));column-gap:var(--horizontal-gap);margin:0;padding:0;display:grid}.label-row+.label-row{margin-top:var(--vertical-gap)}.label{width:var(--label-width);height:var(--label-height);box-sizing:border-box;color:#101413;page-break-inside:avoid;break-inside:avoid;background:#fff;border:0;grid-template-rows:1fr;grid-template-columns:minmax(0,1fr);margin:0;padding:.8mm 3.4mm;line-height:1;display:grid;position:relative;overflow:hidden}.label-side{place-items:center;width:2.4mm;min-width:0;min-height:0;display:grid;position:absolute;top:.8mm;bottom:.8mm;overflow:hidden}.label-side-left{left:.65mm}.label-side-right{right:.65mm}.label-date,.label-meal{writing-mode:vertical-rl;text-orientation:sideways;letter-spacing:.01em;white-space:nowrap;max-height:35mm;font-size:5pt;font-weight:800;overflow:hidden}.label-date{transform:rotate(180deg)}.label-meal{text-transform:uppercase}.label-center{text-align:center;grid-column:1;grid-template-rows:minmax(0,auto) 1fr minmax(0,auto);place-items:center;min-width:0;min-height:0;padding:2.5mm 0;display:grid;overflow:hidden}.label-unit{text-transform:uppercase;overflow-wrap:anywhere;width:100%;max-height:8mm;font-size:5pt;font-weight:800;line-height:1;overflow:hidden}.label-count{letter-spacing:-.05em;font-variant-numeric:tabular-nums;align-self:center;max-width:100%;font-size:19pt;font-weight:950;line-height:.9;overflow:hidden}.label-menu{overflow-wrap:anywhere;width:100%;max-height:8mm;font-size:4.6pt;font-weight:700;line-height:1;overflow:hidden}.label-menu.menu-long{font-size:4.1pt}.label-menu.menu-very-long{font-size:3.7pt;line-height:1}.label-test{border:.15mm solid #222;place-items:center;padding:0;display:grid}.test-number{font-size:24pt;font-weight:950;line-height:1}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@media (width<=820px){.app-header{padding-inline:20px}.local-badge{display:none}main{padding-inline:12px}.upload-card{grid-template-columns:1fr;gap:20px;padding:22px}.file-hint{grid-column:1;margin:-12px 8px 0}.panel-heading{flex-direction:column;padding:22px}.sheet-selector button{flex:1}.filter-row{padding-inline:20px}.search-box{width:100%}.selection-summary{display:none}.preview-toolbar{flex-direction:column;align-items:flex-start}}@media print{@page{margin:0}html,body{width:104mm;background:#fff!important;margin:0!important;padding:0!important}body *{visibility:hidden}.preview-section,.preview-section *,.print-sheet,.label-row,.label{visibility:visible}.no-print,.preview-toolbar{display:none!important}main,.preview-section{width:104mm!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important}.print-sheet{margin:0!important}.label-row{break-inside:avoid;page-break-inside:avoid}}
