@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/JetBrainsMono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/JetBrainsMono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/JetBrainsMono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Onest-400-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Onest-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Onest-500-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Onest-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Onest-600-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Onest-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Onest-700-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Onest-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink-900: #071a1f;--ink-800: #0c2a31;--ink-500: #456b73;--ink-400: #6d9099;--line: #e2eaec;--line-strong: #cddadd;--canvas: #f5f8f8;--surface: #ffffff;--brand-700: #08545a;--brand-600: #0b6b72;--brand-500: #0e8a93;--brand-300: #6ec4cb;--brand-100: #dff2f3;--amber-600: #b45309;--amber-500: #d97706;--amber-100: #fdf0dc;--green-600: #15803d;--green-100: #dcf5e3;--red-600: #b3352e;--red-100: #fbe6e4;--r-md: 12px;--r-lg: 18px;--r-full: 999px;--font-ui: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;--font-num: "JetBrains Mono", ui-monospace, monospace;font-family:var(--font-ui);color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;min-height:100%}body{background:var(--canvas);color:var(--ink-900);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font-family:inherit}:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}.mono,.amt{font-family:var(--font-num);font-variant-numeric:tabular-nums}.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--canvas);display:flex;flex-direction:column;position:relative}.appbar{background:var(--surface);border-bottom:1px solid var(--line);padding:14px 18px;padding-top:max(14px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.appbar h1{font-size:16px;font-weight:700;letter-spacing:-.02em;margin:0;display:flex;align-items:center;gap:4px}.appbar h1:after{content:"";width:4px;height:4px;border-radius:50%;background:var(--brand-300)}.appbar .who{font-size:12px;color:var(--ink-400);margin-top:1px}.screen{flex:1;padding:18px 18px 96px}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:480px;background:var(--surface);border-top:1px solid var(--line);display:flex;padding-bottom:env(safe-area-inset-bottom);z-index:20}.tabbar a{flex:1;text-align:center;padding:9px 0 11px;color:var(--ink-400);text-decoration:none;font-size:11px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}.tabbar a.active{color:var(--brand-600)}.tabbar a.active:before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;border-radius:0 0 2px 2px;background:var(--brand-500)}.tabbar .tab-ico{font-size:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;background:var(--brand-600);color:#fff;padding:15px 18px;border-radius:var(--r-md);font-size:16px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:background .12s}.btn:active{background:var(--brand-700)}.btn:disabled{opacity:.55}.btn-ghost{background:var(--surface);color:var(--ink-800);border:1px solid var(--line-strong)}.btn-lg{padding:17px;font-size:17px}.capture{background:linear-gradient(165deg,var(--brand-600),#063f45);color:#fff;border-radius:22px;padding:38px 22px 26px;text-align:center;box-shadow:0 18px 40px #08545a47;position:relative;overflow:hidden}.capture:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(110,196,203,.22) 0%,transparent 70%);top:-80px;left:50%;transform:translate(-50%)}.capture .cam{font-size:46px;line-height:1;position:relative}.capture h2{margin:16px 0 5px;font-size:21px;font-weight:700;letter-spacing:-.02em;position:relative}.capture p{margin:0 0 22px;opacity:.82;font-size:14px;position:relative}.capture .btn{background:#fff;color:var(--brand-700);position:relative}.capture .btn:active{background:#eaf6f7}.capture .btn.secondary{background:#ffffff24;color:#fff;margin-top:10px;border:1px solid rgba(255,255,255,.2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px}.section-title{font-size:11px;font-weight:700;color:var(--ink-400);text-transform:uppercase;letter-spacing:.07em;margin:22px 4px 10px}.inv{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;margin-bottom:10px}.inv .thumb{width:44px;height:44px;border-radius:9px;object-fit:cover;background:#eef3f4;flex-shrink:0}.inv .grow{flex:1;min-width:0}.inv .amt{font-weight:700;font-size:15px}.inv .sub{font-size:12.5px;color:var(--ink-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;padding:3px 9px;border-radius:var(--r-full);font-size:11px;font-weight:700;border:1px solid transparent;white-space:nowrap}.badge-approved{background:var(--brand-100);color:var(--brand-700);border-color:#c4e6e8}.badge-confirmed{background:var(--green-100);color:var(--green-600);border-color:#bfe8ca}.badge-waiting{background:var(--amber-100);color:var(--amber-600);border-color:#f3ddba}.field{margin-bottom:15px}.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-500);margin-bottom:6px}input{width:100%;padding:14px;border:1px solid var(--line-strong);border-radius:var(--r-md);font-family:inherit;font-size:16px;background:#fff;color:var(--ink-900)}input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.error-box{background:var(--red-100);color:var(--red-600);border:1px solid #f0cfcc;padding:12px 14px;border-radius:var(--r-md);font-size:14px;margin-bottom:14px}.notice-ok{background:var(--green-100);color:var(--green-600);border:1px solid #bfe8ca;padding:12px 14px;border-radius:var(--r-md);font-size:14px}.empty{text-align:center;color:var(--ink-400);padding:56px 20px}.empty .big{font-size:38px;margin-bottom:10px}.spinner-wrap{display:flex;justify-content:center;padding:44px}.spinner{width:28px;height:28px;border:2.5px solid var(--line-strong);border-top-color:var(--brand-600);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--ink-400)}.center{text-align:center}.result-img{width:100%;border-radius:var(--r-md);border:1px solid var(--line);margin-bottom:16px;max-height:300px;object-fit:contain;background:#eef3f4}.kv{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}.kv:last-child{border-bottom:none}.kv .k{color:var(--ink-400);font-size:13.5px;min-width:0}.kv .v{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.kv .v.num{font-family:var(--font-num);font-weight:700}.login{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:26px;background:linear-gradient(170deg,var(--brand-600) 0%,#051f24 85%)}.login-card{background:#fff;border-radius:20px;padding:28px 22px}.login-logo{text-align:center;color:#fff;margin-bottom:24px}.login-logo .ico{font-size:40px}.login-logo h1{margin:8px 0 2px;font-size:25px;font-weight:700;letter-spacing:-.03em}.login-logo p{margin:0;opacity:.8;font-size:14px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
