:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#183039;background:#f3f6f8;font-size:16px;font-synthesis:none;--navy:#102e3a;--teal:#067f81;--line:#dce5e8;--muted:#647780}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{outline-offset:4px}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:2.5rem;letter-spacing:-.06em;font-weight:650;margin-bottom:.6rem}h2{font-size:1.125rem;font-weight:650;margin:0}h3{font-size:1.1rem}p{color:var(--muted);line-height:1.6}button{border:0}label{display:grid;gap:.6rem;font-size:.875rem;font-weight:600;margin-bottom:1.2rem}input:not([type=checkbox]){width:100%;border:1px solid #cbd7dc;border-radius:6px;background:white;padding:.75rem;color:#183039;min-height:44px}input:focus{border-color:var(--teal)}input[type=checkbox]{accent-color:var(--teal);width:18px;height:18px;flex-shrink:0}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;min-height:46px;padding:.8rem 1.25rem;border-radius:6px;font-weight:600;font-size:.875rem;white-space:nowrap}.primary{background:var(--teal);color:white}.primary:hover:not(:disabled){background:#03676b}.secondary{background:white;color:var(--navy);border:1px solid var(--line)}.full{width:100%}.text-button{background:none;color:var(--teal);padding:.4rem;font-size:.875rem}.eyebrow{font-size:.75rem;letter-spacing:.16em;font-weight:700;color:var(--teal);margin-bottom:1rem}.brand-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:#1d5968;color:#b9f5df;font-weight:800;letter-spacing:-.1em;font-size:1.15rem}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--navy);color:white;padding:2rem 1.4rem;display:flex;flex-direction:column}.brand{display:flex;gap:.8rem;align-items:center;text-decoration:none;color:white;font-size:1.35rem;font-weight:650;letter-spacing:-.04em}.brand small{display:block;font-size:.65rem;letter-spacing:.16em;color:#8ba9b4;margin-top:.35rem}.nav-caption{font-size:.65rem;letter-spacing:.13em;color:#91abb5;margin:3.6rem .5rem 1rem}.nav-button{display:flex;align-items:center;gap:1rem;width:100%;background:none;color:#97b1bc;font-size:.8rem;text-align:left;padding:1rem .85rem;border-radius:6px;margin-bottom:.4rem}.nav-button span{font-size:.875rem}.nav-button.active{background:#234855;color:#dafff5}.sidebar-bottom{margin-top:auto;padding:.8rem}.sidebar-bottom p{color:#c5d8df;margin-top:1rem;margin-bottom:.3rem}.sidebar-bottom .text-button{color:#b6dedc;padding-left:0}.pill{font-size:.75rem;font-weight:650;border:1px solid var(--line);padding:.35rem .6rem;border-radius:5px;white-space:nowrap}.sidebar .pill{border-color:#3b5a68;color:#a9c9ce}main{margin-left:238px;padding:0 2.8rem 3rem}header{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);font-size:.7rem;letter-spacing:.08em;color:var(--muted)}header strong{font-weight:600;color:#254653}.header-meta{font-size:.75rem;letter-spacing:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:2.6rem 0 1.7rem}.page-heading p:last-child{font-size:.9rem;margin:0}.page-heading .eyebrow{margin-bottom:.7rem}.accent{color:var(--teal)}.sample-banner{border:1px solid #edddae;background:#fffaec;color:#725919;font-size:.875rem;padding:1rem 1.1rem;border-radius:6px;margin-bottom:1.5rem;line-height:1.5}.lab-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:1.4rem;align-items:start}.panel{background:white;border:1px solid var(--line);border-radius:8px;padding:1.5rem;margin-bottom:1.4rem}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.6rem}.panel-title>span{font-size:.75rem;color:var(--muted)}.helper{font-size:.8rem;margin:.7rem 0 0;line-height:1.6}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.875rem}th{font-size:.75rem;color:var(--muted);font-weight:500;padding:.7rem .5rem;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:.9rem .5rem;border-bottom:1px solid #edf1f3;line-height:1.5}td input[type=number]{min-width:66px;padding:.55rem;max-width:95px}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.ingredient-choice{display:flex;align-items:center;gap:.6rem;min-width:145px;font-size:.875rem;margin:0;font-weight:500}.subtext{display:block;font-size:.75rem;color:var(--muted);max-width:260px}.sample-text{color:#92701e}.check-label{display:flex;align-items:center;gap:.6rem;font-weight:400}.results{position:sticky;top:1.5rem;border-top:3px solid var(--teal)}.result-empty{text-align:center;padding:2.5rem .6rem 3rem}.result-empty p{font-size:.875rem}.result-symbol{font-size:3rem;color:#91acb3;font-family:Georgia,serif;margin-bottom:1.5rem}.cost-label{font-size:.8rem;color:var(--muted);margin-bottom:.4rem}.cost-value{font-size:2.35rem;font-weight:600;letter-spacing:-.06em;color:var(--navy)}.cost-unit{font-size:.8rem;color:var(--muted);margin-bottom:1.6rem}.result-total{display:flex;justify-content:space-between;padding:1rem 0;font-size:.875rem;font-weight:600}.result-nutrients{margin:1rem 0 1.6rem}.result-nutrient{display:flex;justify-content:space-between;font-size:.875rem;padding:.6rem 0;border-bottom:1px solid #edf1f3}.optimal{color:var(--teal)!important;background:#edfaf7}.failed{color:#a03a29!important;background:#fff1ed}#notice{position:sticky;top:0;z-index:3;margin-top:1rem;padding:1rem;background:#e2f3ee;border:1px solid #94c6b7;border-radius:6px;font-size:.875rem}#notice.error{background:#fff0ec;border-color:#e7b4a7;color:#922d1d}.empty{padding:2rem;text-align:center;font-size:.9rem}.history-card{display:flex;align-items:center;justify-content:space-between;gap:1rem}.history-card h2{margin-bottom:.7rem}.history-card p{font-size:.875rem;margin-bottom:0}.history-price{font-size:1.4rem;font-weight:650;margin-bottom:.6rem;text-align:right}.login-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-brand{background:var(--navy);padding:12vh 12%;color:white;display:flex;flex-direction:column;align-items:flex-start}.login-brand .brand-mark{width:64px;height:64px;font-size:1.6rem;margin-bottom:3.5rem}.login-brand .eyebrow{color:#90cdc8}.login-brand h1{font-size:3.5rem}.lead{font-size:2rem;line-height:1.4;color:#abc7cd;margin-top:1.5rem;letter-spacing:-.03em}.login-note{margin-top:auto;width:100%;padding-top:4rem;font-size:.7rem;letter-spacing:.1em;color:#83a2ad;display:flex;justify-content:space-between;gap:1rem}.login-card{align-self:center;width:min(420px,80%);margin:3rem auto}.login-card h2{font-size:2rem;letter-spacing:-.04em;margin-bottom:1rem}.login-card>p{font-size:.875rem;margin-bottom:2rem}.login-card button{width:100%;justify-content:space-between}.login-card [role=alert],#ingredient-error{color:#a43723;margin-top:1rem}dialog{border:1px solid var(--line);border-radius:10px;padding:2rem;width:min(600px,calc(100% - 2rem));max-height:90vh;color:#183039}dialog::backdrop{background:#102e3aaa;backdrop-filter:blur(3px)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}#version-dialog{width:min(740px,calc(100% - 2rem))}.version-constraints{margin:1rem 0;padding:1rem;background:#f3f6f8;font-size:.875rem;line-height:1.7}button:focus-visible,a:focus-visible{outline:3px solid #51bdb8}@media(min-width:1600px){main{max-width:1700px;margin-right:auto}}@media(max-width:1200px){main{padding:0 1.5rem 2rem}.sidebar{width:210px}main{margin-left:210px}.lab-layout{grid-template-columns:minmax(0,1fr)}.results{position:static}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:1rem;display:block}.brand small,.nav-caption,.sidebar-bottom .pill{display:none}.brand{font-size:1.15rem}.brand-mark{width:34px;height:34px}.sidebar nav{display:flex;gap:.4rem;margin-top:1rem;overflow-x:auto}.nav-button{padding:.7rem;min-width:max-content;width:auto;gap:.5rem;margin:0}.nav-button span{font-size:.8rem}.sidebar-bottom{display:flex;justify-content:space-between;align-items:center;padding:.7rem 0 0}.sidebar-bottom p{margin:0;font-size:.8rem}.sidebar-bottom .text-button{font-size:.8rem}main{margin:0;padding:0 1rem 2rem}header{min-height:60px}.header-meta{display:none}.page-heading{margin:1.8rem 0 1.4rem;align-items:flex-start;flex-direction:column}h1{font-size:2.1rem}.panel{padding:1.1rem}.lab-layout{gap:0}.login-layout{grid-template-columns:1fr}.login-brand{padding:2rem}.login-brand .brand-mark{margin-bottom:1.5rem}.login-brand h1{font-size:2.5rem}.lead,.login-note{display:none}.login-card{width:calc(100% - 3rem);margin:2.5rem auto}.history-card{align-items:flex-start;flex-direction:column}.history-price{text-align:left}.form-grid{grid-template-columns:1fr}dialog{padding:1.25rem}}

select,textarea{font:inherit;border:1px solid #cbd7dc;border-radius:6px;padding:.7rem;background:white;color:#183039;min-height:44px;width:100%}textarea{min-height:80px;resize:vertical}.advanced-panel{border-top:1px solid var(--line);margin-top:1.1rem;padding-top:1rem;margin-bottom:1.2rem}.advanced-panel summary{cursor:pointer;font-weight:600;font-size:.9rem;margin-bottom:1rem}.advanced-panel .form-grid{margin-top:1rem}#profile-dialog{width:min(850px,calc(100% - 2rem))}#ingredient-dialog{width:min(760px,calc(100% - 2rem))}.constraint-label{display:flex;gap:.5rem;align-items:center;font-weight:400;margin:0}.constraint-label span{min-width:140px}.constraint-label small{display:block;color:var(--muted);font-size:.75rem}.profile-actions{display:flex;gap:.6rem;flex-wrap:wrap}.profile-card{display:grid;gap:1rem}.profile-card h2{margin-bottom:.5rem}.profile-card p{font-size:.875rem;margin:0;overflow-wrap:anywhere}.profile-card .pill{display:inline-block}.constraint-checks{margin-top:1.2rem}.constraint-checks th,.constraint-checks td{font-size:.8rem}.missing-list{padding-left:1.1rem;font-size:.875rem;line-height:1.6}#profile-error{color:#a43723}.status-note{font-size:.8rem;color:#725919;background:#fffaec;padding:.7rem;border-radius:5px;margin-bottom:1rem}input:disabled{background:#f4f6f7;color:#829198}#boot-screen{max-width:640px;margin:15vh auto}@media(max-width:760px){#boot-screen{margin:2rem 1rem}.constraint-label span{min-width:125px}}
.reference-tabs{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.reference-row{display:flex;gap:16px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line,#dbe5e8);padding:16px 0}.reference-row>div{min-width:0;overflow-wrap:anywhere}.reference-row button{flex-shrink:0}#reference-dialog{width:min(1080px,94vw);max-width:94vw}#reference-dialog table{font-size:13px}#reference-dialog td{overflow-wrap:anywhere}#reference-error{color:#b42318}#reference-detail>button{margin:16px 0}#reference-detail .check-label{align-items:flex-start}#reference-search button{align-self:end}@media(max-width:600px){.reference-row{align-items:flex-start;flex-direction:column}.reference-tabs button{flex:1}#reference-dialog{padding:16px}}
.workflow-steps{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.workflow-steps button{flex:1;min-width:150px}.diagnosis{text-align:left;margin-top:18px}.batch-panel{margin-top:24px}#workbench-error{color:#b42318}#print-ticket{display:none}#batch-result{margin-top:24px}#batch-result h1{font-size:28px}#comparison th,#batch-result th{white-space:normal}#comparison td,#batch-result td{overflow-wrap:anywhere}@media print{@page{size:A4 landscape;margin:12mm}body>*{display:none!important}body>#print-ticket{display:block!important;color:#111;font:10pt Arial,sans-serif}#print-ticket .table-scroll{overflow:visible}#print-ticket table{width:100%;border-collapse:collapse;table-layout:fixed}#print-ticket th,#print-ticket td{padding:5px;border:1px solid #aaa;overflow-wrap:anywhere}#print-ticket tr{break-inside:avoid}#print-ticket thead{display:table-header-group}#print-ticket h1{font-size:18pt}#print-ticket h2{font-size:14pt}#print-ticket .sample-banner{border:2px solid #222;background:white;color:black;padding:8px}}

@media print{html,body,#print-ticket{background:white!important}#print-ticket p,#print-ticket th{color:#111!important}#print-ticket .status-note{background:white;border:1px solid #555}}
@media print{#print-ticket p{margin:5px 0;line-height:1.3}#print-ticket h3{margin:10px 0 5px;break-after:avoid}#print-ticket h1{margin:0 0 6px}#print-ticket .sample-banner,#print-ticket .status-note{margin:8px 0;padding:6px}#print-ticket th,#print-ticket td{padding:4px;font-size:9pt;line-height:1.3}}

#lot-dialog,#review-dialog{width:min(1050px,95vw)}#production-error,#review-error,#lot-error{color:#a43723}.lot-selection{margin:8px 0 0;font-size:.7rem;font-weight:400}.lot-selection select{max-width:320px;font-size:.75rem;padding:6px}.reference-row h3{margin:6px 0 12px}#review-content p,#review-content td{overflow-wrap:anywhere}#review-form{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}

#technical-nav summary{cursor:pointer;padding:1rem .85rem;color:#c5d8df;font-size:.875rem}#technical-nav .nav-button{font-size:.7rem}.sidebar nav{overflow-y:auto;min-height:0}.sidebar-bottom{flex-shrink:0}.operator-steps{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:24px}.operator-steps span{display:flex;gap:10px;align-items:center;font-size:.9rem}.operator-steps b{display:grid;place-items:center;background:#e0f3ee;color:#075c5d;width:30px;height:30px;border-radius:50%}#factory-fieldset{border:0;padding:0;margin:0;min-width:0}#factory-fieldset:disabled{opacity:.55}#factory-context{margin:-8px 0 24px}#factory-error{color:#a43723;white-space:pre-line}#factory-unavailable li{margin:14px 0;line-height:1.5}#factory-output h1{font-size:1.8rem}.operator-ticket td{vertical-align:top}.weigh-amount{font-size:1.2rem;color:#075c5d;white-space:nowrap}.operator-mass{font-size:1.1rem}.operator-checks{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.operator-checks .check-label{line-height:1.5;align-items:flex-start}.signature-line{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.guide-grid .panel{margin:0}.guide-grid h2{margin-bottom:18px}.guide-grid a,.operator-help a{color:var(--teal)}.guide-grid dt{font-weight:600}.guide-grid dd{margin:4px 0 16px;color:var(--muted);line-height:1.5}.operator-help summary{cursor:pointer;font-weight:600}.operator-help li{margin:12px 0;line-height:1.5}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.guide-grid{grid-template-columns:1fr}.sidebar nav details{min-width:180px;flex-shrink:0}.operator-steps{gap:10px}.operator-steps span{font-size:.8rem}.operator-ticket table{min-width:560px}.signature-line{display:block}#factory-form .primary{width:100%}}@media print{#print-ticket .operator-ticket table{min-width:0}#print-ticket .operator-ticket .eyebrow{color:#111}#print-ticket .weigh-amount{font-size:13pt;color:#111}#print-ticket .signature-line{display:flex;justify-content:space-between}#print-ticket .operator-ticket p{font-size:10pt}}

@media screen and (max-width:760px){.operator-ticket table{min-width:0}.operator-ticket thead{display:none}.operator-ticket tbody,.operator-ticket tbody tr,.operator-ticket tbody td{display:block}.operator-ticket tbody tr{border:1px solid var(--line);border-radius:6px;margin:12px 0;padding:12px}.operator-ticket tbody td{border:0;padding:6px 0}.operator-ticket tbody td::before{content:attr(data-label);display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.operator-ticket tbody td:last-child{display:none}.operator-ticket .weigh-amount{font-size:1.6rem}.operator-ticket tfoot,.operator-ticket tfoot tr{display:block}.operator-ticket tfoot td{display:inline-block;padding:12px 8px 12px 0}}

#operations-dialog{width:min(960px,95vw);max-width:95vw}.op-spec{border:1px solid var(--border,#dce3e0);border-radius:10px;padding:16px;margin:12px 0}.operator-instructions{white-space:pre-wrap;background:#f1f6f2;padding:16px;border-radius:8px}.op-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}#management-body td button,#operations-body>button{margin:4px}#operations-error,#management-error,#orders-error{color:#a42828}
@media(max-width:640px){#orders-list table,#orders-list tbody,#orders-list tr,#orders-list td{display:block;width:100%}#orders-list thead{display:none}#orders-list tr{padding:8px 0}#orders-list td{border:0;padding:8px 0;white-space:normal}#orders-list td:nth-child(2)::before{content:'Mẻ (kg): ';font-weight:600}#orders-list td:last-child button{width:100%;min-height:48px}#orders-list .table-scroll{overflow:visible}}

#analysis-dialog{width:min(960px,95vw);max-width:95vw}#analysis-error,#analysis-page-error{color:#a42828}.analysis-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.analysis-metrics>div{background:#edf5f3;border-radius:10px;padding:18px;display:grid;gap:8px}.analysis-metrics strong{font-size:22px}.analysis-metrics small{color:#49636d}#analysis-detail td{white-space:normal}@media(max-width:640px){.analysis-metrics{grid-template-columns:1fr}}
