body{color:#18212f;background:#f5f7fb;margin:0;font-family:Segoe UI,Tahoma,sans-serif}#app{min-height:100dvh}.page{box-sizing:border-box;flex-direction:column;align-items:center;gap:16px;max-width:680px;min-height:100dvh;margin:0 auto;padding:32px 16px;display:flex}h1{text-align:center;margin:0;font-size:32px}.scan-btn{color:#fff;cursor:pointer;background:#1d4ed8;border:none;border-radius:12px;padding:12px 20px;font-size:16px}.scan-btn:disabled{cursor:default;background:#8299d6}.back-btn{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:10px 16px;font-size:15px}.actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.status{color:#334155;margin:0;font-size:15px}.camera{aspect-ratio:3/4;object-fit:cover;background:#000;border-radius:12px;width:100%;max-width:460px;max-height:62dvh}.hint{color:#334155;margin:0;font-size:16px}.split-actions{grid-template-rows:1fr 1fr;gap:12px;width:100%;max-width:460px;min-height:58vh;display:grid}.half{color:#fff;cursor:pointer;border:none;border-radius:16px;font-size:24px;font-weight:700}.action-scan{background:#2563eb}.action-upload{background:#0f766e}.upload-input{flex-direction:column;gap:8px;width:100%;max-width:460px;font-size:16px;display:flex}.upload-input input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.upload-input span{cursor:pointer;text-align:center;background:#fff;border:1px solid #94a3b8;border-radius:14px;justify-content:center;align-items:center;min-height:54px;padding:12px;display:inline-flex}.loader-wrap{flex-direction:column;align-items:center;gap:10px;display:flex}.crop-mode-toggle{grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:460px;display:grid}.crop-mode-btn{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;font-size:15px}.crop-mode-btn--active{color:#fff;background:#1d4ed8;border-color:#1d4ed8}.crop-mode-btn:disabled{cursor:default;opacity:.6}.crop-stage{-webkit-user-select:none;user-select:none;background:#0f172a;border-radius:12px;justify-content:center;align-items:center;width:100%;max-width:460px;min-height:180px;display:flex;position:relative;overflow:hidden}.crop-stage--pan{touch-action:none;cursor:grab}.crop-stage--pan:active{cursor:grabbing}.crop-stage--select{touch-action:none;cursor:crosshair}.crop-transform{transform-origin:50%;will-change:transform;width:100%;position:relative}.uploaded-preview{object-fit:contain;pointer-events:none;width:100%;max-height:52dvh;display:block}.crop-frame{pointer-events:none;background:#22c55e2e;border:2px solid #22c55e;position:absolute;box-shadow:0 0 0 9999px #0f172a6b}.crop-reset-btn{margin-top:-4px}.loader{border:4px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.scan-controls{flex-direction:column;gap:10px;width:100%;max-width:460px;display:flex}.control-field{flex-direction:column;gap:6px;display:flex}.control-field span{color:#334155;font-size:14px}.control-field select,.control-field input[type=range]{width:100%}.wallet-input-wrap{flex-direction:column;gap:10px;width:100%;max-width:460px;display:flex}.wallet-input{box-sizing:border-box;background:#fff;border:1px solid #94a3b8;border-radius:12px;width:100%;padding:12px;font-size:16px}@keyframes spin{to{transform:rotate(360deg)}}.result{color:#1e3a8a;box-sizing:border-box;background:#dbeafe;border-radius:12px;width:100%;max-width:460px;padding:14px}.result p{margin:0 0 4px}.error{color:#b91c1c;text-align:center;margin:0}.order-number{box-sizing:border-box;text-align:center;letter-spacing:.03em;color:#0f172a;word-break:break-all;font-variant-numeric:tabular-nums;width:100%;max-width:100%;margin:0;padding:4px 0 0;font-size:clamp(2rem,9vw,3.25rem);font-weight:800;line-height:1.15}@media (orientation:landscape) and (height<=520px){.page{gap:10px;padding:14px 12px}h1{font-size:22px}.split-actions{grid-template-rows:1fr;grid-template-columns:1fr 1fr;min-height:42dvh}.half{font-size:20px}.camera{aspect-ratio:16/9;max-height:44dvh}.uploaded-preview{max-height:42dvh}}@media (width<=640px){.upload-input span{aspect-ratio:1;width:min(70vw,260px);margin:0 auto;font-size:18px;font-weight:700}}
