*{box-sizing:border-box}:root{--green: #1a5f3f;--red: #b3261e;--amber: #9a6b00;--ink: #1c1c1a;--muted: #6b6b66;--bg: #f5f5f2;--card: #ffffff;--line: #ddddd6}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:17px}header{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--green);color:#fff;flex-wrap:wrap}.brand{font-weight:700;font-size:1.1rem}header nav{display:flex;gap:4px}header nav a{color:#fff;text-decoration:none;padding:8px 14px;border-radius:8px;opacity:.85}header nav a.active{background:#ffffff2e;opacity:1}.nav-menu{position:relative}.nav-menu>button{background:none;border:none;color:#fff;font:inherit;padding:8px 14px;border-radius:8px;opacity:.85;cursor:pointer}.nav-menu>button.active{background:#ffffff2e;opacity:1}.nav-dropdown{position:absolute;top:100%;left:0;margin-top:4px;min-width:170px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px #0000002e;display:flex;flex-direction:column;padding:6px;z-index:20}header nav .nav-dropdown a{color:var(--ink);opacity:1;padding:10px 14px}header nav .nav-dropdown a.active{background:var(--green);color:#fff}.header-right{margin-left:auto;display:flex;align-items:center;gap:12px}.pw-dropdown{position:absolute;top:100%;right:0;margin-top:4px;width:280px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px #0000002e;padding:12px;z-index:20}.who{opacity:.9}.suggest-anchor{position:relative}.suggest-anchor input{width:100%}.suggest{position:absolute;top:100%;left:0;right:0;margin-top:2px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 18px #0000002e;max-height:320px;overflow-y:auto;z-index:30}.suggest-row{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:9px 12px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;font:inherit;color:inherit}.suggest-row:last-child{border-bottom:0}.suggest-row:hover,.suggest-row:focus{background:#0000000d}.th-sort{background:none;border:0;padding:0;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;white-space:nowrap}.tick-grid{display:flex;flex-wrap:wrap;gap:2px 18px}.tick-grid .field.check{min-width:190px;margin:0}main{max-width:960px;margin:0 auto;padding:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.center{display:grid;place-items:center;min-height:80vh}.login{width:min(400px,92vw)}h1,h2,h3{margin:0 0 12px}section h2{margin:20px 0 10px;font-size:1.05rem;color:var(--muted)}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.type-btn{display:block;padding:20px 16px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;font-weight:600;border-left-width:6px}.type-btn.CCP{border-left-color:var(--red)}.type-btn.QCP{border-left-color:var(--amber)}.type-btn.PRP{border-left-color:var(--green)}.record-form{display:grid;gap:14px;max-width:520px}.field{display:grid;gap:6px}.field span{font-weight:600;font-size:.95rem}.field.inline{grid-auto-flow:column;align-items:center;justify-content:start;gap:10px}.field.check{grid-auto-flow:column;justify-content:start;align-items:center;gap:10px}.field.check input{width:26px;height:26px}input,select,textarea{font:inherit;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;width:100%}input.bad{border-color:var(--red);background:#fdf0ef}button{font:inherit;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 16px}button.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:700;padding:14px 22px}button.primary:disabled{opacity:.5;cursor:default}button.small{padding:6px 12px;font-size:.9rem}button.danger{color:var(--red);border-color:var(--red)}button.link{background:none;border:none;padding:0;color:inherit;text-decoration:underline}.passfail{display:flex;gap:10px}.pf{flex:1;padding:16px;font-weight:700}.pf.pass.on{background:#e2f2e8;border-color:var(--green);color:var(--green)}.pf.fail.on{background:#fdf0ef;border-color:var(--red);color:var(--red)}.badge{padding:4px 10px;border-radius:999px;font-size:.85rem;font-weight:700}.badge.ok{background:#e2f2e8;color:var(--green)}.badge.warn{background:#fff3d6;color:var(--amber)}.badge.err{background:#fdf0ef;color:var(--red)}.tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.78rem;font-weight:700;margin-right:4px}.tag.CCP{background:#fdf0ef;color:var(--red)}.tag.QCP{background:#fff3d6;color:var(--amber)}.tag.PRP{background:#e2f2e8;color:var(--green)}.tag.void{background:var(--red);color:#fff}.tag.ca{background:#fff3d6;color:var(--amber)}.tag.amended{background:#e8e8ff;color:#3b3bb3}.tag.verified{background:#e2f2e8;color:var(--green)}.tag.pending{background:#eee;color:var(--muted)}.tag.low{background:var(--red);color:#fff}td.low-stock{color:var(--red);font-weight:600}.batch-line{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--card)}.batch-line-head{display:flex;align-items:center;justify-content:space-between;gap:10px}@media print{header,.no-print{display:none!important}body{background:#fff}main{max-width:none;padding:0}.card.report{border:none;border-radius:0;padding:0}}.alert{background:#fdf0ef;border:1px solid var(--red);color:var(--red);border-radius:10px;padding:12px;font-weight:600}.error{color:var(--red);font-weight:600}.toast{background:var(--green);color:#fff;padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:600}.muted{color:var(--muted)}.missed{border-left:6px solid var(--red)}.missed-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.missed-row:first-of-type{border-top:none}.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.subtabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.subtabs button.on{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;display:grid;place-items:center;z-index:50}.scanner-box{text-align:center;color:#fff;padding:16px}.scanner-box video{width:min(92vw,640px);max-height:60vh;border-radius:12px;background:#000}.scanner-box p{margin:12px 0}.scan-chips{display:flex;gap:8px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}.chip{padding:6px 12px;border-radius:999px;background:#ffffff26;color:#ccc;font-size:.9rem;font-weight:600}.chip.got{background:#e2f2e8;color:var(--green)}.scanner-actions{margin-top:4px}.file-btn{display:inline-block;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px 12px;font-size:.9rem}.label-preview{max-width:340px;border:1px solid var(--line);box-shadow:0 1px 4px #00000026;background:#fff;color:#000;display:flex;flex-direction:column;font-family:Arial,Helvetica,sans-serif}.lp-half{height:50%;padding:14px 17px 0;display:flex;flex-direction:column;overflow:hidden}.lp-half.lp-full{height:100%}.lp-top{display:flex;align-items:flex-start;min-height:41px}.lp-name{flex:1;font-size:1.85rem;line-height:1.05;margin-top:7px;padding-left:30px;overflow-wrap:break-word}.lp-qty{font-size:1.05rem;white-space:nowrap}.lp-title{text-align:center;font-size:1.65rem;line-height:1.1;margin-top:17px}.lp-title-big{display:flex;align-items:center;justify-content:center;min-height:58px;margin-top:0;font-size:2.3rem}.lp-rule{border-top:3px solid #888;margin:5px 0}.lp-middle{display:flex;flex-direction:column;text-align:center;gap:7px;padding:2px 7px}.lp-desc{font-size:.85rem;line-height:1.3;padding:0 10px}.lp-block{font-size:.7rem;line-height:1.22}.lp-block div:first-child{margin-bottom:2px}.lp-dates{display:flex;justify-content:space-between;font-size:.9rem;padding-top:3px}.lp-bb{font-weight:700}.spec-panel{background:#f2f7f4;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:8px;padding:8px 12px;font-size:.88rem;font-weight:400;display:grid;gap:2px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.85rem;color:var(--muted)}tr.voided td{opacity:.55;text-decoration:line-through}tr.voided td:last-child{text-decoration:none}td.summary,.summary{color:var(--muted);font-size:.9rem}td.detail{background:#fafaf7}td input[type=checkbox]{width:24px;height:24px}
