:root{--accent: #43c6ac;--bg: #0b0f12;--panel: #171d22;--text: #f2f5f7;--muted: #9aa5ad;--danger: #e0433d;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,system-ui,sans-serif;-webkit-text-size-adjust:100%;overscroll-behavior:none}#app{height:100%;display:flex;flex-direction:column}button{font:inherit;border:0;border-radius:12px;padding:12px 18px;background:var(--panel);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4}button.primary{background:var(--accent);color:#05110e;font-weight:600}button.danger{background:var(--danger);color:#fff}button.icon{width:48px;height:48px;padding:0;border-radius:24px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;background:#00000073}button.icon.active{background:var(--accent);color:#05110e}input,textarea{font:inherit;width:100%;padding:12px;border-radius:10px;border:1px solid #2b343b;background:var(--panel);color:var(--text)}textarea{min-height:64px;resize:vertical}label{display:block;color:var(--muted);font-size:14px;margin:14px 0 6px}h2{margin:8px 0}.screen{flex:1;display:flex;flex-direction:column;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--safe-top) + 10px) 14px 10px}.topbar h1{font-size:18px;margin:0}.topbar>span{min-width:72px}.content{flex:1;overflow-y:auto;padding:0 16px calc(var(--safe-bottom) + 16px)}.bottombar{display:flex;gap:12px;align-items:center;justify-content:center;padding:14px 16px calc(var(--safe-bottom) + 14px)}.camera{position:relative;flex:1;background:#000;overflow:hidden}.camera video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .1s}.camera .overlay-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:calc(var(--safe-top) + 10px) 14px 0}.camera .overlay-top>div{display:flex;gap:10px}.camera .overlay-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;padding:20px 16px calc(var(--safe-bottom) + 24px);background:linear-gradient(transparent,#0009)}.shutter{width:76px;height:76px;border-radius:38px;background:#fff;border:5px solid rgba(255,255,255,.4);background-clip:padding-box;padding:0}.shutter:active{transform:scale(.94)}.done{position:absolute;right:16px}.banner{padding:8px 14px;font-size:14px;text-align:center;background:#2a3138}.banner.error{background:var(--danger);color:#fff}.banner.hidden{display:none}.notice{padding:24px;text-align:center;color:var(--muted);position:relative}.camera .notice{position:absolute;top:30%;left:0;right:0;color:#fff;background:#0009}.photo-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #222a30}.photo-row img{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:none}.photo-row .fields{flex:1;display:flex;flex-direction:column;gap:8px}.photo-row .fields textarea{min-height:56px}.photo-row .fields button{align-self:flex-end;padding:8px 14px}.message{margin-top:12px;color:var(--muted)}.message.error{color:var(--danger)}.message.ok{color:var(--accent)}.scan-frame{position:absolute;left:12%;right:12%;top:35%;height:30%;border:2px solid var(--accent);border-radius:12px}.result dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px;margin:12px 0}.result dt{color:var(--muted)}.result dd{margin:0}.stack{display:flex;flex-direction:column;gap:10px;margin-top:16px}.file-fallback input{margin-top:12px}
