:root{color-scheme:light;--bg: linear-gradient(180deg, #f2ede4 0%, #e8f0ef 100%);--card: rgba(255, 255, 255, .86);--ink: #17313a;--accent: #a73c2d;--line: rgba(23, 49, 58, .14)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}html{touch-action:manipulation}body{margin:0;font-family:Avenir Next,Helvetica Neue,sans-serif;background:var(--bg);color:var(--ink);position:fixed;top:0;right:0;bottom:0;left:0;overscroll-behavior:none}.shell{width:min(100%,1080px);height:100dvh;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));display:grid;gap:16px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.panel{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-grid,.actions{display:grid;gap:12px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}label{display:grid;gap:6px;font-size:14px}input,select,button{font:inherit;font-size:16px;border-radius:16px;border:1px solid var(--line);padding:12px 14px;max-width:100%}button{background:var(--ink);color:#fff;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.64}button[hidden]{display:none}.reader{min-height:280px;border-radius:20px;overflow:hidden;background:#dce4e3}pre{margin:0;white-space:pre-wrap;word-break:break-word;background:#17313a0f;border-radius:16px;padding:12px}[data-tone=ok]{color:#157347}[data-tone=warn]{color:#9a6700}[data-tone=error]{color:#b42318}.sync-state{min-height:1.5em;font-size:14px}.camera-review{border:1px solid rgba(167,60,45,.25);background:#a73c2d14;border-radius:16px;padding:12px}.quantity-panel{border:1px solid rgba(23,49,58,.14);background:#17313a0d;border-radius:16px;padding:12px}.quantity-title{margin:0 0 6px;font-weight:600}.quantity-note{margin:0 0 10px;font-size:13px}.quantity-custom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.camera-review-text{margin:0 0 10px;font-size:14px}.ghost-button{background:transparent;color:var(--ink)}.recent-scans{margin:0;padding-left:18px;font-size:14px}.recent-scans li{margin:4px 0}@media (min-width: 860px){.shell{grid-template-columns:1.1fr 1fr}.panel:last-child{grid-column:span 2}}@media (max-width: 859px){.shell{grid-template-columns:1fr;max-width:430px}.panel{border-radius:18px;padding:14px}.reader{min-height:clamp(180px,34dvh,280px)}.quantity-custom{grid-template-columns:1fr}}
