:root{--ink: #f6efe8;--muted: #9d8d82;--paper: #14100e;--card: #1d1815;--line: #3a312c;--accent: #c94b73;--accent-2: #3f9a6b;--sidebar: #0e0b0a;--warn: #f3d7a0;--ok: #c8f0db;--input: #14110f;--shadow: none}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;color:var(--ink);background:var(--paper)}h1,h2,.logo,.brand{font-family:Fraunces,Georgia,serif}h1{margin:0 0 .35rem;font-size:2rem;color:#fff8f2}h2{margin:0 0 1rem;font-size:1.2rem;color:#fff8f2}a{color:#f4a7be}p{line-height:1.45}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;background:var(--paper)}aside{background:var(--sidebar);color:#f6efe6;padding:1.4rem 1.1rem;display:flex;flex-direction:column;gap:1rem;border-right:1px solid var(--line)}.logo{margin:0;font-size:1.35rem}.logo-sub{margin:0;color:var(--muted);font-size:.85rem}aside nav{display:flex;flex-direction:column;gap:.35rem}aside nav a{color:#f6efe6;text-decoration:none;padding:.5rem .7rem;border-radius:10px}aside nav a.active{background:#c94b73;color:#fff}aside nav a:hover:not(.active){background:#221c19}.user-box{margin-top:auto;display:flex;flex-direction:column;gap:.2rem;font-size:.9rem}.user-box span{color:var(--muted);text-transform:capitalize}.linkish,button.ghost,.button.ghost{background:transparent;border:1px solid #5a4d46;color:inherit}main{padding:1.25rem 1.5rem 2.5rem}.page,.wizard{display:flex;flex-direction:column;gap:1rem;max-width:1280px}.page-head,.wizard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--muted);margin:0 0 .2rem}.muted,.hint{color:var(--muted)}.error{background:#3a1c1c;color:#ffc9c1;padding:.7rem .9rem;border-radius:10px}.ok{background:#173328;color:var(--ok);padding:.7rem .9rem;border-radius:10px}.warn{background:#3a2a12;color:var(--warn);padding:.8rem;border-radius:10px;margin:.8rem 0}.pad{padding:2rem}.card,.wiz-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.1rem 1.2rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.filters{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap}.grow{flex:1;min-width:220px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem}.form-grid .wide{grid-column:1 / -1}label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:500}input,select,textarea{font:inherit;padding:.55rem .7rem;border:1px solid #4a403a;border-radius:10px;background:var(--input);color:var(--ink)}input::placeholder,textarea::placeholder{color:#7a6c64}.check{flex-direction:row;align-items:center;gap:.5rem;font-weight:400}button,.button{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--accent);color:#fff;border-radius:12px;padding:.65rem 1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}button.ghost,.button.ghost{color:var(--ink)}.product-list{margin-top:.8rem;max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:.4rem}.product-row{text-align:left;background:var(--input);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.15rem}.product-row span{color:var(--muted);font-size:.82rem}.product-row.active{border-color:var(--accent)}.meta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem}.meta dt{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.meta dd{margin:.15rem 0 0;font-weight:600}.totals{text-align:right}.totals strong{display:block;font-size:2rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem .4rem;border-bottom:1px solid var(--line);font-size:.92rem}th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.login-page{min-height:100vh;display:grid;place-items:center;background:#0e0b0a}.login-card{width:min(420px,92vw);display:flex;flex-direction:column;gap:.75rem}.login-card h1{font-size:1.8rem}.logo-preview{max-height:72px;background:#fff;border-radius:8px;padding:4px}.label-sheet{display:flex;flex-direction:column;gap:8mm;align-items:flex-start}.product-label{background:#fff;border:1px solid #111;padding:3mm;font-size:8.5pt;color:#111;break-after:page;page-break-after:always}.product-label h1{font-size:12pt;margin:0;color:#111;font-family:Fraunces,Georgia,serif}.label-brand{display:flex;gap:3mm;align-items:center}.label-logo{height:12mm}.brand{margin:0;font-size:8pt;letter-spacing:.06em;text-transform:uppercase;color:#111}.code,.desc,.ingredients,.allergens,.shelf,.address,.price{margin:1.5mm 0}.barcode-wrap{display:flex;justify-content:center;margin:2mm 0}.barcode-wrap.compact{justify-content:flex-start}.dates{display:grid;grid-template-columns:1fr 1fr;gap:2mm;margin:2mm 0}.dates dt{font-size:7pt;text-transform:uppercase;color:#444}.dates dd{margin:0;font-weight:700}.nutrition{width:100%;border-collapse:collapse;font-size:7.5pt}.nutrition caption{text-align:left;font-weight:700;margin-bottom:1mm;color:#111}.nutrition th,.nutrition td{border-top:.3pt solid #999;padding:.6mm 0;color:#111;text-transform:none;letter-spacing:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem}.section-head h2{margin:0}.nutrition-editor{display:flex;flex-direction:column;gap:.6rem}.nutrition-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}.tabs{display:flex;gap:.4rem}.tab{background:var(--input);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.4rem .8rem}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.change-list{margin:0;padding-left:1.1rem}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.capitalize{text-transform:capitalize}.print-root{min-height:100vh;background:var(--paper)}.print-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.2rem;gap:1rem;background:#1d1815;border-bottom:1px solid var(--line)}.print-toolbar div{display:flex;gap:.5rem}@media print{body{background:#fff;color:#111}.no-print,aside{display:none!important}.print-root{padding:0;background:#fff}.product-label{border:0}}@media(max-width:900px){.app-shell,.grid-2,.form-grid{grid-template-columns:1fr}}.wizard{max-width:1280px;display:flex;flex-direction:column;gap:1rem}.wizard h1,.wizard h2,.success-tiles strong{font-family:Fraunces,Georgia,serif;color:#fff8f2}.wizard h1{font-size:2.1rem;margin:0}.wizard h2{font-size:1.2rem;margin:0 0 .9rem}.wizard-lead{color:#b7a89d;margin:.35rem 0 0;max-width:52rem}.wizard-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.stepper{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;padding:0;margin:0}.stepper button{width:100%;background:#221c19;color:#d8c8bc;border-radius:12px;padding:.7rem .75rem;display:flex;gap:.55rem;align-items:flex-start;text-align:left}.stepper strong{display:block;font-size:.92rem;color:inherit;font-family:inherit}.stepper em{display:block;font-style:normal;font-size:.75rem;color:#8f8176}.step-num{width:1.5rem;height:1.5rem;border-radius:999px;display:grid;place-items:center;background:#3a312c;font-size:.78rem;flex:none}.stepper .current button{background:#c94b73;color:#fff}.stepper .current .step-num{background:#fff;color:#c94b73}.stepper .done button{background:#1d2a22;color:#d7efe3}.stepper .done .step-num{background:#3f9a6b;color:#fff}.wizard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:1rem}.wiz-card{background:#1d1815;border:1px solid #3a312c;border-radius:18px;padding:1.1rem 1.15rem}.wizard .muted{color:#9d8d82}.wizard .error{background:#3a1c1c;color:#ffc9c1}.wizard .warn{background:#3a2a12;color:#f3d7a0}.info-banner,.ok-banner{border-radius:10px;padding:.7rem .85rem;font-size:.9rem;margin:.4rem 0 .9rem}.info-banner{background:#173246;color:#c7e4f5}.ok-banner{background:#173328;color:#c8f0db}.search-input{width:100%;margin-bottom:.8rem}.wizard input,.wizard select,.wizard textarea{background:#14110f;border-color:#4a403a;color:#f6efe8}.wizard input:read-only{opacity:.85}.field-help{font-size:.75rem;color:#8f8176;font-weight:400}.product-table{max-height:420px}.wizard table th{color:#8f8176;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.wizard table td,.wizard table th{border-bottom-color:#3a312c}.wizard tr.selected td{background:#c94b731f}.compact{padding:.35rem .7rem;border-radius:8px}.recent-row{width:100%;text-align:left;background:transparent;color:#f6efe8;border-radius:0;border-bottom:1px solid #3a312c;padding:.7rem 0;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.recent-row span{color:#9d8d82;font-size:.8rem;font-weight:400}.impact{display:flex;flex-direction:column;gap:.75rem}.impact dt{color:#8f8176;font-size:.75rem;text-transform:uppercase}.impact dd{margin:.2rem 0 0;font-size:1.35rem;font-family:Fraunces,Georgia,serif}.barcode-panel{background:#fff;border-radius:12px;padding:.8rem;display:flex;justify-content:center;margin:.8rem 0 1rem}.template-list{display:flex;flex-direction:column;gap:.55rem}.template-option{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem;border:1px solid #3a312c;border-radius:12px;background:#161311}.template-option.active{border-color:#c94b73;background:#2a1820}.template-option strong{display:block}.template-option em{display:block;font-style:normal;color:#9d8d82;font-size:.82rem;font-weight:400}.template-option code{color:#c94b73;font-size:.75rem}.preview-card{overflow:hidden;background:#2a241f;display:flex;flex-direction:column;min-height:0}.preview-card h2{flex:none}.label-fit{width:100%;flex:1;min-height:420px;max-height:min(68vh,620px);overflow:hidden;display:flex;justify-content:center;align-items:flex-start}.label-fit-inner{overflow:hidden;position:relative;flex:none}.label-fit .label-sheet{position:absolute;top:0;left:0}.verify-list{display:grid;gap:.55rem}.verify-list>div{display:grid;grid-template-columns:140px 1fr;gap:.6rem;align-items:start}.verify-list dt{color:#8f8176}.verify-list dd{margin:0}.pill{display:inline-block;background:#173328;color:#8ee0b3;border-radius:999px;padding:.05rem .45rem;font-size:.72rem}.ok-pill{background:#3f9a6b;color:#fff}.tag-row{display:flex;gap:.35rem;flex-wrap:wrap}.allergen-tag{background:#3a1c1c;color:#ffb3ae;border-radius:999px;padding:.1rem .5rem;font-size:.78rem}.confirm-check{margin-top:1rem}.wizard-foot{display:flex;justify-content:space-between}.wizard-foot button:not(.ghost),.success-actions button:not(.ghost),.wizard .button:not(.ghost){border-radius:12px;background:#c94b73}.wizard button.ghost,.wizard .button.ghost{background:transparent;border:1px solid #5a4d46;color:#f6efe8}.success-card{text-align:center;padding:2.2rem 1.5rem}.success-mark{width:4rem;height:4rem;margin:0 auto 1rem;border-radius:999px;background:#3f9a6b;color:#fff;display:grid;place-items:center;font-size:1.8rem}.success-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin:1.4rem 0}.success-tiles div{background:#14110f;border-radius:12px;padding:.8rem .5rem}.success-tiles span{display:block;color:#8f8176;font-size:.72rem;text-transform:uppercase}.success-tiles strong{display:block;font-size:1.35rem;margin-top:.25rem}.success-actions{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap}.reprint-page{max-width:1280px}.reprint-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.reprint-page .wiz-card label{margin-bottom:.75rem}.reprint-page .wiz-card button[type=submit]{margin-top:.4rem}.role-pill,.type-pill{border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.role-pill.operator{background:#173246;color:#9fd0ef}.role-pill.supervisor{background:#2a2e18;color:#d5e08a}.type-pill.void{background:#3a1c1c;color:#ffb3ae}.type-pill.reprint{background:#2a2e18;color:#d5e08a}.danger-banner{background:#3a1c1c;color:#ffc9c1;border-radius:10px;padding:.7rem .85rem;font-size:.9rem;margin:.4rem 0 .9rem}.report-page{max-width:1320px}.report-actions{display:flex;gap:.5rem;flex-wrap:wrap}.filter-label{margin:0 0 .45rem;color:#8f8176;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.report-dates{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem}.preset-row,.chip-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.preset,.chip{background:#14110f;color:#f6efe8;border:1px solid #4a403a;border-radius:999px;padding:.35rem .75rem;font-size:.82rem}.preset.active,.chip.on{background:#c94b73;border-color:#c94b73}.report-search{display:flex;gap:.6rem;margin:.85rem 0 .7rem}.report-search input{flex:1}.chip-count{margin-left:auto}.kpi-row,.chart-row{display:grid;gap:.8rem}.kpi-row{grid-template-columns:repeat(5,minmax(0,1fr))}.chart-row{grid-template-columns:1fr 1fr}.kpi span,.kpi em{display:block;color:#8f8176;font-size:.8rem;font-style:normal}.kpi strong{display:block;font-size:2rem;margin:.25rem 0;font-family:Fraunces,Georgia,serif}.warn-num{color:#f0c36b}.danger-num{color:#ff8b84}.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;height:180px;align-items:end}.bar-col{display:flex;flex-direction:column;align-items:center;height:100%;gap:.25rem}.bar-track{flex:1;width:100%;display:flex;align-items:end;background:#14110f;border-radius:8px;overflow:hidden}.bar-fill{width:100%;background:#f4a7be;border-radius:8px 8px 0 0;min-height:2px}.bar-col span,.bar-col em{font-size:.72rem;color:#8f8176;font-style:normal}.rank-list{display:flex;flex-direction:column;gap:.65rem}.rank-row{display:grid;grid-template-columns:1fr 140px auto;gap:.6rem;align-items:center}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-track{height:8px;background:#14110f;border-radius:99px;overflow:hidden}.rank-fill{height:100%;background:#f4a7be}.who{display:inline-flex;align-items:center;gap:.45rem}.who i{width:1.6rem;height:1.6rem;border-radius:999px;background:#3a2a24;display:grid;place-items:center;font-style:normal;font-size:.68rem;font-weight:700}.status-pill.done{background:#173328;color:#8ee0b3;border-radius:999px;padding:.1rem .5rem;font-size:.75rem}@media(max-width:980px){.wizard-grid,.stepper,.success-tiles,.reprint-grid,.kpi-row,.chart-row{grid-template-columns:1fr}}
