:root{--bg:#111417;--surface:#1a1e24;--surface-2:#232830;--border:#2c333c;--text:#eef1f4;--muted:#98a2ad;--accent:#2ec0cc;--accent-strong:#16a3b0;--danger:#ff5b6a;--radius:16px;--shadow:0 18px 50px #0000008c;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{height:100%;position:relative;overflow:hidden}.button{-webkit-appearance:none;appearance:none;background:linear-gradient(180deg, var(--accent), var(--accent-strong));color:#04222a;cursor:pointer;border:none;border-radius:999px;width:100%;padding:14px 20px;font-size:1rem;font-weight:700;transition:transform 80ms,filter .15s}.button:hover{filter:brightness(1.06)}.button:active{transform:translateY(1px)}.intro{padding:calc(env(safe-area-inset-top,0px) + 24px) 16px calc(env(safe-area-inset-bottom,0px) + 24px);background:radial-gradient(circle at 50% -10%, #17323a 0%, var(--bg) 60%);justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.intro__content{text-align:center;width:100%;max-width:560px;margin:auto 0}.intro__brand{letter-spacing:.35em;text-transform:uppercase;margin:0 0 18px;font-size:2rem;font-weight:300}.intro__title{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:1rem 0 0;font-size:1rem;font-weight:600}.intro__version{color:var(--accent);margin:6px 0 24px;font-size:.8rem}.intro__text{color:var(--text);text-wrap:balance;margin:0 0 16px;line-height:1.5}.intro__text a{color:var(--accent)}.intro__start{max-width:320px;margin-top:16px}.scan-view{position:absolute;top:0;bottom:0;left:0;right:0}.scan-view__camera{background:#000;position:absolute;top:0;bottom:0;left:0;right:0}.scan-view__signup{top:calc(env(safe-area-inset-top,0px) + 16px);color:#ffffffeb;text-shadow:0 1px 6px #000000b3;z-index:2;font-size:.85rem;text-decoration:none;position:absolute;left:50%;transform:translate(-50%)}.scan-view__signup u{color:var(--accent)}.scan-view__hint{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);text-align:center;color:#ffffffeb;text-shadow:0 1px 6px #000000b3;z-index:2;max-width:80%;margin:0;font-size:.9rem;line-height:1.4;position:absolute;transform:translate(-50%)}.loader{z-index:5;background:#111417eb;flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.loader__spinner{border:4px solid var(--surface-2);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite spin}.loader__label{color:var(--muted);margin:0;font-size:.95rem}@keyframes spin{to{transform:rotate(360deg)}}.banner{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:4;align-items:center;gap:12px;padding:14px 16px;animation:.2s ease-out rise;display:flex;position:absolute}.banner__icon{background:var(--danger);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-weight:800;display:grid}.banner__message{color:var(--text);flex:1;margin:0;font-size:.9rem;line-height:1.35}.banner__dismiss{-webkit-appearance:none;appearance:none;background:var(--surface-2);color:var(--accent);cursor:pointer;border:none;border-radius:999px;flex:none;padding:8px 14px;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.result{padding:24px 16px calc(env(safe-area-inset-bottom,0px) + 96px);background:radial-gradient(circle at 50% -10%, #17323a 0%, var(--bg) 60%);z-index:6;justify-content:center;align-items:flex-start;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.result__card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:660px;box-shadow:var(--shadow);border-radius:22px;padding:26px 24px 28px}.result__header{text-align:center;margin-bottom:22px}.result__badge{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:#2ec0cc1f;border:1px solid #2ec0cc59;border-radius:999px;padding:5px 12px;font-size:.85rem;font-weight:700;display:inline-block}.result__title{margin:12px 0 0;font-size:1.5rem;font-weight:700}.result__images{flex-wrap:wrap;justify-content:center;gap:14px;margin-bottom:24px;display:flex}.result__image{text-align:center;margin:0}.result__image img{border:1px solid var(--border);background:var(--surface-2);object-fit:cover;border-radius:10px;max-width:130px;max-height:100px;display:block}.result__image figcaption{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:6px;font-size:.72rem}.result__fields{margin:0 0 26px}.result__field{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:12px 0;display:flex}.result__field:first-child{border-top:1px solid var(--border)}.result__field dt{color:var(--muted);font-size:.85rem}.result__field dd{text-align:right;margin:0;font-size:1rem;font-weight:600}.result__empty{text-align:center;color:var(--muted);margin:0 0 24px}.result__json-toggle{-webkit-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-2);color:var(--accent);cursor:pointer;border-radius:999px;margin:0 auto;padding:7px 16px;font-size:.8rem;font-weight:700;display:block}.result__json{background:var(--surface-2);color:var(--text);border-radius:10px;margin:16px 0 0;font-size:1rem;line-height:1.5;overflow:auto}.result__scan-again{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 20px);width:auto;max-width:660px;box-shadow:var(--shadow);z-index:7;margin:0 auto;position:fixed}.error-view{background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.error-view__card{text-align:center;background:var(--surface);border:1px solid var(--border);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:22px;padding:32px 26px}.error-view__icon{width:52px;height:52px;color:var(--danger);background:#ff5b6a24;border:1px solid #ff5b6a66;border-radius:50%;place-items:center;margin-bottom:18px;font-size:1.6rem;font-weight:800;display:inline-grid}.error-view__title{margin:0 0 10px;font-size:1.3rem}.error-view__message{color:var(--muted);margin:0 0 24px;line-height:1.5}
