:root{--green: #14532d;--green-dark: #0c3a1f;--gold: #c8901a;--gold-light: #f3d488;--ink: #22271f;--muted: #8a917f;--error: #d33a2f;--ok: #1a7f37;--bg: #10241a}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:#eef3ec;font-family:-apple-system,Segoe UI,Roboto,sans-serif}#root{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--green-dark);border-bottom:2px solid var(--gold);position:sticky;top:0;z-index:10}.topbar b{font-size:15px}.topbar small{color:var(--gold-light);display:block;font-weight:400}.topbar button{background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:7px;padding:6px 10px;font-size:12px}.screen{padding:16px;flex:1}.offline-banner{background:var(--error);color:#fff;text-align:center;padding:8px;font-size:13px;font-weight:600}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}.tile{background:#1a3527;border:1px solid #2c4a38;border-radius:14px;padding:20px 14px;text-align:center;cursor:pointer;color:#eef3ec;font-size:14px;font-weight:600}.tile span{display:block;font-size:32px;margin-bottom:8px}.tile:active{background:#234534}.card{background:#1a3527;border:1px solid #2c4a38;border-radius:14px;padding:16px;margin-bottom:14px}.card h3{margin:0 0 10px;font-size:15px;color:var(--gold-light)}input,select{width:100%;padding:12px;border-radius:9px;border:1px solid #3a5a46;background:#0f2018;color:#fff;font-size:15px;margin-bottom:10px}input::placeholder{color:#6f8577}.btn{display:block;width:100%;padding:15px;border:0;border-radius:11px;background:var(--gold);color:var(--green-dark);font-size:16px;font-weight:800;cursor:pointer;text-align:center}.btn.green{background:var(--ok);color:#fff}.btn.ghost{background:transparent;border:1px solid #3a5a46;color:#cfe0d2}.btn.red{background:var(--error);color:#fff}.btn:disabled{opacity:.45}.btn+.btn{margin-top:10px}.result-valid{border:2px solid var(--ok);border-radius:14px;padding:18px;background:#1a7f3726}.result-dup{border:2px solid var(--error);border-radius:14px;padding:18px;background:#d33a2f26}.result-valid h2,.result-dup h2{margin:0 0 8px}.kv{display:flex;justify-content:space-between;font-size:14px;padding:4px 0;border-bottom:1px dashed #2c4a38}.kv span:first-child{color:var(--muted)}video{width:100%;border-radius:12px;background:#000}.scan-frame{position:relative}.scan-frame:after{content:"";position:absolute;top:12%;right:12%;bottom:12%;left:12%;border:3px solid var(--gold);border-radius:12px;pointer-events:none}.mode-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.mode-row button{padding:12px 4px;border-radius:9px;border:1px solid #3a5a46;background:#0f2018;color:#cfe0d2;font-size:13px}.mode-row button.sel{background:var(--gold);color:var(--green-dark);font-weight:700;border-color:var(--gold)}.qty-row{display:flex;align-items:center;gap:16px;justify-content:center;margin-bottom:10px}.qty-row button{width:52px;height:52px;font-size:24px;border-radius:10px;border:1px solid var(--gold);background:none;color:var(--gold)}.qty-row b{font-size:26px}.amount{background:#c8901a1f;border:1px dashed var(--gold);border-radius:10px;padding:12px;margin-bottom:12px;font-size:14px}.amount .row{display:flex;justify-content:space-between;padding:2px 0}.amount .total{font-weight:800;font-size:17px;border-top:1px solid var(--gold);margin-top:6px;padding-top:6px}.err{color:#ff9d94;font-size:13px;margin:8px 0}.ok-msg{color:#8fdc9f;font-size:13px;margin:8px 0}.ticket{text-align:center;background:#fff;color:var(--ink);border-radius:12px;padding:14px;margin-bottom:10px}.ticket img{width:170px;height:170px}.ticket .code{font-family:monospace;font-size:10px;color:#666;word-break:break-all}.chip{display:inline-block;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700}.chip.pending{background:#4a3a12;color:var(--gold-light)}.chip.dispatched{background:#14324a;color:#9fcdf3}.chip.delivered{background:#163a22;color:#8fdc9f}.deliv-row{border-bottom:1px solid #2c4a38;padding:12px 0;font-size:14px}.deliv-row small{color:var(--muted);display:block}.back{color:var(--gold-light);font-size:14px;cursor:pointer;margin-bottom:12px;display:inline-block}
