:root{--bg:#f3f4f1;--surface:#ffffff;--surface-strong:#17201b;--text:#17201b;--muted:#65706a;--line:#d9ded8;--accent:#1f7a5a;--accent-soft:#dceee6;--warning:#b86a20;--shadow:0 18px 50px rgba(23,32,27,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{background:var(--accent);border:0;border-radius:6px;color:#ffffff;cursor:pointer;font-size:14px;font-weight:700;min-height:42px;padding:10px 14px}button:disabled{cursor:not-allowed;opacity:.55}.smallButton{font-size:12px;min-height:32px;padding:6px 10px}.shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--surface-strong);color:#f7fbf7;padding:24px 18px}.brand{display:flex;align-items:center;gap:12px;padding:4px 6px 28px}.brandMark{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.28);background:#2d8b68;font-weight:800}.brand h1,.brand p,.moduleRow p,.panelHeader h3,.panelHeader p,.statusGrid p,.topbar h2,.topbar p{margin:0}.brand h1{font-size:18px;line-height:1.1}.brand p{color:rgba(247,251,247,.68);font-size:12px;margin-top:3px}.navList{display:grid;grid-gap:4px;gap:4px}.navList a{border-radius:6px;color:rgba(247,251,247,.78);font-size:14px;padding:10px 12px}.navList a:first-child,.navList a:hover{background:rgba(255,255,255,.1);color:#ffffff}.workspace{min-width:0;padding:26px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:18px;margin-bottom:20px}.sectionLabel{color:var(--accent);font-size:13px;font-weight:700}.topbar h2{font-size:28px;line-height:1.2;margin-top:4px}.stackNote{background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:13px;padding:10px 12px}.statusGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:18px}.panel,.statusGrid>div{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.statusGrid>div{min-height:126px;padding:16px}.statusGrid span{color:var(--muted);display:block;font-size:12px;font-weight:700;margin-bottom:12px;text-transform:uppercase}.statusGrid strong{display:block;font-size:20px;line-height:1.2}.statusGrid p{color:var(--muted);font-size:13px;line-height:1.45;margin-top:10px}.contentBand{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:18px;gap:18px}.panel{padding:18px}.panelHeader{align-items:baseline;display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.panelHeader h3{font-size:17px}.panelHeader p{color:var(--muted);font-size:13px}.moduleTable{border-top:1px solid var(--line)}.moduleRow{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1fr) 96px;min-height:72px;padding:12px 0}.moduleRow strong{display:block;font-size:15px}.moduleRow p{color:var(--muted);font-size:13px;line-height:1.35;margin-top:4px}.moduleRow span{background:var(--accent-soft);border-radius:999px;color:var(--accent);font-size:12px;font-weight:700;padding:6px 8px;text-align:center}.sideStack{display:grid;grid-gap:18px;gap:18px}.nextList,.tagList{margin:0;padding:0}.tagList{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.tagList li{background:#f3f7f4;border:1px solid var(--line);border-radius:6px;color:#35423b;font-size:12px;font-weight:700;padding:8px}.nextList{color:#35423b;display:grid;grid-gap:10px;gap:10px;font-size:14px;line-height:1.35;padding-left:20px}.adminPage,.analyticsPage,.masterDataPage,.scanPage,.trackingPage{min-height:100vh;padding:26px}.adminHeader{align-items:center;display:flex;justify-content:space-between;gap:18px;margin-bottom:16px}.adminHeader h1{font-size:28px;line-height:1.2;margin:4px 0 0}.textButton{background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:14px;font-weight:700;padding:10px 12px}.messageBar{background:#fff7e8;border:1px solid #eed7b7;border-radius:8px;color:#6f481d;font-size:14px;margin-bottom:16px;padding:12px 14px}.adminGrid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.formPanel{align-content:start;display:grid;grid-gap:12px;gap:12px}.formPanel h2,.resultPanel h2{font-size:17px;margin:0}label{color:var(--muted);display:grid;font-size:12px;font-weight:700;grid-gap:6px;gap:6px}.requiredMark{color:#c7352b;font-weight:800}input,select{background:#fbfcfb;border:1px solid var(--line);border-radius:6px;color:var(--text);min-height:40px;padding:8px 10px;width:100%}.formRow{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.scanGrid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:360px minmax(0,1fr) 420px}.inlineForm,.scanButtonRow{display:grid;grid-gap:10px;gap:10px}.scanButtonRow{grid-template-columns:repeat(2,minmax(0,1fr))}.cameraPanel{background:#f6f8f6;border:1px dashed var(--line);border-radius:8px;display:none;gap:10px;padding:10px}.cameraPanel.active{display:grid}.cameraPanel video{aspect-ratio:4/3;background:#18211d;border-radius:6px;display:block;object-fit:cover;width:100%}.cameraPanel strong{display:block;font-size:14px}.cameraPanel p{color:var(--muted);font-size:12px;line-height:1.4;margin:4px 0 0}.secondaryButton{background:#eef2ef;color:var(--text)}.scanInfo{display:grid;grid-gap:10px;gap:10px;margin:0}.scanInfo>div{border-bottom:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:120px minmax(0,1fr);padding:8px 0}.scanInfo dd,.scanInfo dt{margin:0}.scanInfo dt{color:var(--muted);font-size:12px;font-weight:700}.scanInfo dd{font-size:14px;font-weight:700;min-width:0;overflow-wrap:anywhere}.taskActionGrid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.taskActionGrid button{min-height:56px}.exceptionBox{background:#fbfcfb;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:12px}.taskList{border-top:1px solid var(--line);display:grid}.taskList>div{border-bottom:1px solid var(--line);display:grid;grid-gap:4px;gap:4px;padding:10px 0}.taskList strong{font-size:14px}.taskList p,.taskList span{color:var(--muted);font-size:12px;margin:0}.trackingSearch{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) 120px;margin-bottom:16px}.trackingOrders,.trackingStack{display:grid;grid-gap:16px;gap:16px}.trackingProduct h2{font-size:18px;margin:0}.statusPill{background:var(--accent-soft);border-radius:999px;color:var(--accent);font-size:12px;font-weight:800;padding:6px 10px;white-space:nowrap}.trackingOrder{border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;padding-top:12px}.trackingBatchHeader,.trackingOrderHeader{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:1.2fr .8fr .8fr 1fr}.trackingOrderHeader{color:var(--muted);font-size:13px}.trackingBatchHeader strong,.trackingOrderHeader strong{color:var(--text)}.trackingBatch{background:#fbfcfb;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:12px}.trackingBatchHeader{color:var(--muted);font-size:12px}.etaPanel{background:#f3f7f4;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.etaPanel p,.etaPanel span{color:var(--muted);font-size:12px}.etaPanel strong{display:block;font-size:15px;margin-top:4px}.etaPanel p{grid-column:1/-1;line-height:1.4;margin:0}.progressStrip{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(5,minmax(0,1fr))}.progressStep{border:1px solid var(--line);border-radius:8px;min-height:92px;padding:10px}.progressStep span,.progressStep strong{display:block}.progressStep strong{font-size:13px}.progressStep p,.progressStep span{color:var(--muted);font-size:12px;line-height:1.35;margin:6px 0 0}.progressStep.running{border-color:#1f7a5a;background:#e8f5ee}.progressStep.completed{border-color:#b8d9c9;background:#f0f8f4}.progressStep.exception{border-color:#d98c83;background:#fff0ee}.exceptionNotice{background:#fff7e8;border:1px solid #eed7b7;border-radius:6px;color:#6f481d;font-size:13px;padding:10px}.analyticsGrid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.analyticsWide{grid-column:1/-1}.analyticsTable{border-top:1px solid var(--line);display:grid;overflow-x:auto}.analyticsTableHeader,.analyticsTableRow{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-auto-flow:column;grid-auto-columns:minmax(110px,1fr);min-width:680px;padding:10px 0}.analyticsTableHeader{color:var(--muted);font-size:12px;font-weight:800}.analyticsTableRow{font-size:13px}.masterDataGrid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:380px minmax(0,1fr);margin-bottom:16px}.stackedForms{align-content:start;display:grid;grid-gap:16px;gap:16px}.masterTable{border-top:1px solid var(--line);display:grid;overflow-x:auto}.masterTableHeader,.masterTableRow{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;grid-template-columns:140px 1fr 110px 160px 80px 90px;min-width:820px;padding:10px 0}.masterTableHeader{color:var(--muted);font-size:12px;font-weight:800}.masterTableRow{font-size:13px}.userTable .masterTableHeader,.userTable .masterTableRow{grid-template-columns:1fr 180px 90px 90px;min-width:540px}.checkLine{align-items:center;display:flex;gap:8px}.checkLine input{min-height:auto;width:auto}.resultPanel{margin-bottom:20px}.taskStrip{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.taskStrip>div{background:#f7faf7;border:1px solid var(--line);border-radius:8px;min-height:96px;padding:12px}.taskStrip strong{color:var(--accent);display:block;font-size:18px}.taskStrip span{display:block;font-size:14px;font-weight:700;margin-top:8px}.emptyState p,.mutedText,.taskStrip p{color:var(--muted);font-size:13px;line-height:1.4;margin:6px 0 0}.emptyState{padding:18px 0}@media (max-width:980px){.contentBand,.shell{grid-template-columns:1fr}.sidebar{padding:16px}.navList,.statusGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.adminGrid,.taskStrip{grid-template-columns:1fr}}@media (max-width:640px){.workspace{padding:16px}.panelHeader,.topbar{align-items:flex-start;flex-direction:column}.navList,.statusGrid{grid-template-columns:1fr}}