@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#16243f;--navy-700:#1f3358;--navy-600:#2b4470;--green:#3c7a3a;--green-600:#468a44;--green-50:#eef6ed;--silver:#9aa6b8;--bg:#eef1f6;--surface:#fff;--surface-2:#f4f6fa;--text:#16243f;--text-2:#3c4a63;--muted:#7c879c;--border:#e2e7f0;--primary:var(--navy);--accent:var(--green);--brand-ink:var(--navy);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--green-strong:#15803d;--red:#dc2626;--red-50:#fef2f2;--amber:#d97706;--amber-50:#fffbeb;--shadow-sm:0 1px 2px #10243f0f, 0 1px 3px #10243f0d;--shadow-md:0 4px 16px #10243f14;--shadow-lg:0 12px 32px #10243f24;--radius-sm:10px;--radius:14px;--radius-lg:18px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:22px;--space-6:32px;--z-topbar:20;--z-overlay:60;--z-modal:100;--z-toast:200;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Inter Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;letter-spacing:-.01em;line-height:1.45}h1,h2,h3{letter-spacing:-.02em;line-height:1.2}p{line-height:1.55}button{font:inherit;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:13px 18px;font-weight:600;transition:transform 60ms,background .15s,box-shadow .15s;display:inline-flex}button svg{flex-shrink:0}button:active{transform:scale(.98)}button.primary{background:linear-gradient(180deg, var(--navy-700), var(--navy));color:#fff;box-shadow:var(--shadow-sm)}button.primary:hover{background:linear-gradient(180deg, var(--navy-600), var(--navy-700))}button.accent{background:linear-gradient(180deg, var(--green-600), var(--green));color:#fff}button.ghost{border-color:var(--border);color:var(--text-2);background:0 0}button.danger{background:var(--red);color:#fff}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;min-height:50px;padding:13px 14px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:64px}input:focus,select:focus,textarea:focus{border-color:var(--navy-600);outline:none;box-shadow:0 0 0 3px #2b44701f}label{color:var(--text-2);margin-bottom:7px;font-size:13px;font-weight:500;display:block}a{color:var(--navy-700);text-decoration:none}:focus-visible{outline:2px solid var(--navy-600);outline-offset:2px}a:focus-visible,.tile:focus-visible,.list-item:focus-visible,.check-row:focus-visible{outline:2px solid var(--navy-600);outline-offset:2px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app-shell{background:var(--bg);flex-direction:column;max-width:720px;height:100%;margin:0 auto;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:var(--z-topbar);padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:10px;display:flex}.topbar .brand img{width:auto;height:34px}.topbar h1{color:var(--brand-ink);margin:0;font-size:16px;font-weight:700}.iconbtn{background:var(--surface-2);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;min-height:40px;padding:0;font-size:18px;display:inline-flex}.content{padding:18px 16px calc(24px + env(safe-area-inset-bottom));flex:1;animation:.24s both page-in;overflow-y:auto}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 2px 12px;font-size:13px;font-weight:600}.status-dot{color:var(--text-2);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:12px;padding:16px}.row{align-items:center;gap:10px;display:flex}.spread{justify-content:space-between}.stack>*+*{margin-top:12px}.muted{color:var(--muted)}.grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;position:relative;overflow:hidden}.metric:before{content:"";background:var(--accent);width:4px;position:absolute;top:0;bottom:0;left:0}.metric .big{color:var(--brand-ink);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1.1}.metric .lbl{color:var(--muted);margin-top:4px;font-size:12px;font-weight:500}.metric .ico{color:var(--accent);opacity:.32;position:absolute;top:12px;right:12px}.hour-row{align-items:center;gap:8px;display:flex}.hour-row .hl{width:88px;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.hour-row .htrack{background:var(--surface-2);border-radius:6px;flex:1;height:18px;overflow:hidden}.hour-row .hfill{background:linear-gradient(90deg, var(--navy-600), var(--navy));border-radius:6px;min-width:3px;height:100%;transition:width .4s}.hour-row .hfill.peak{background:linear-gradient(90deg, var(--green-600), var(--green))}.hour-row .hc{text-align:right;font-variant-numeric:tabular-nums;width:28px;font-size:12px;font-weight:600}.tiles{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);text-align:center;box-shadow:var(--shadow-sm);color:var(--text);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:22px 14px;transition:transform 80ms,box-shadow .15s;display:flex}.tile:active{transform:scale(.97)}.tile .tile-icon{background:var(--green-50);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:flex}.tile .tile-icon.navy{background:#2b44701a}.tile .tile-label{font-size:14px;font-weight:600}.list-item{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:space-between;align-items:center;padding:13px 15px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.list-item:active{background:var(--surface-2)}@media (hover:hover){.tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}a:hover .list-item{border-color:var(--navy-600);box-shadow:var(--shadow-md)}}.avatar{background:linear-gradient(135deg, var(--navy-600), var(--navy));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:14px;font-weight:700;display:flex}.scanner{aspect-ratio:1;width:100%;box-shadow:var(--shadow-md);background:#0a0f1a;border-radius:20px;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.scanner .reticle{border-radius:18px;position:absolute;inset:16%;box-shadow:0 0 0 100vmax #0a0f1a73}.scanner .reticle:before,.scanner .reticle:after,.scanner .corner{content:"";border:3px solid #fff;width:32px;height:32px;position:absolute}.scanner .reticle:before{border-bottom:none;border-right:none;border-top-left-radius:12px;top:-3px;left:-3px}.scanner .reticle:after{border-top:none;border-left:none;border-bottom-right-radius:12px;bottom:-3px;right:-3px}.scan-hint{text-align:center;color:var(--text-2);margin-top:14px;font-size:14px}.result-overlay{z-index:var(--z-overlay);text-align:center;color:#fff;flex-direction:column;justify-content:center;align-items:center;padding:28px;animation:.18s ease-out pop;display:flex;position:fixed;inset:0}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.result-overlay.approved{background:linear-gradient(160deg,#1aa251,#15803d)}.result-overlay.denied{background:linear-gradient(160deg,#ef4444,#b91c1c)}.result-overlay.queued{background:linear-gradient(160deg,#f59e0b,#b45309)}.result-overlay .icon-circle{background:#ffffff2e;border:3px solid #fff6;border-radius:50%;justify-content:center;align-items:center;width:116px;height:116px;font-size:64px;font-weight:800;display:flex}.result-overlay .name{letter-spacing:.04em;opacity:.92;margin-top:18px;font-size:22px;font-weight:700}.result-overlay .who{max-width:340px;margin-top:6px;font-size:30px;font-weight:800;line-height:1.15}.result-overlay .msg{opacity:.95;max-width:320px;margin-top:8px;font-size:17px}.result-overlay button{color:var(--navy);width:100%;max-width:320px;box-shadow:var(--shadow-lg);background:#fff;margin-top:30px;font-size:17px;font-weight:700}.badge{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge.paid{background:var(--green-50);color:var(--green-strong);border-color:#cce6cb}.badge.pending{background:var(--amber-50);color:var(--amber);border-color:#fde68a}.badge.ok{background:var(--green-50);color:var(--green-strong);border-color:#cce6cb}.banner{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:12px;margin-bottom:12px;padding:11px 14px;font-size:14px;font-weight:500}.banner.warn{background:var(--amber-50);color:#92580a;border-color:#fde68a}.banner.err{background:var(--red-50);color:#b91c1c;border-color:#fecaca}.banner.ok{background:var(--green-50);color:var(--green-strong);border-color:#cce6cb}.auth-page{background:radial-gradient(1200px 600px at 50% -10%, #20355c 0%, var(--navy) 45%, #0e1830 100%);flex-direction:column;min-height:100%;display:flex}.auth-hero{text-align:center;color:#fff;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;padding:40px 24px 26px;display:flex}.auth-hero .logo-badge{width:116px;height:116px;box-shadow:var(--shadow-lg);background:#fff;border-radius:28px;justify-content:center;align-items:center;margin-bottom:18px;display:flex}.auth-hero .logo-badge img{width:84px;height:auto}.auth-hero h1{margin:0;font-size:24px}.auth-hero p{opacity:.8;margin:8px 0 0;font-size:14px}.auth-card{background:var(--surface);padding:28px 22px calc(28px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;box-shadow:0 -10px 40px #00000040}.auth-card .form-wrap{max-width:380px;margin:0 auto}.spinner{vertical-align:-3px;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.spinner.dark{border-color:#16243f40;border-top-color:var(--navy)}@keyframes spin{to{transform:rotate(360deg)}}.check-row{background:var(--surface);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:12px;justify-content:space-between;align-items:center;padding:15px 16px;font-weight:500;display:flex}.check-row input{width:24px;height:24px;min-height:24px;accent-color:var(--green)}.toaster{left:0;right:0;bottom:calc(16px + env(safe-area-inset-bottom));z-index:var(--z-toast);pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed}.toast{pointer-events:auto;color:#fff;background:var(--navy);max-width:440px;box-shadow:var(--shadow-lg);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;animation:.2s toast-in;display:flex}.toast.ok{background:linear-gradient(180deg, var(--green-600), var(--green))}.toast.err{background:linear-gradient(#e2453f,#c0322d)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--border) 37%, var(--surface-2) 63%);background-size:400% 100%;animation:1.4s infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{text-align:center;color:var(--muted);padding:40px 20px}.empty .emoji{font-size:40px}.modal-overlay{z-index:var(--z-modal);background:#0f172a8c;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal{border-radius:18px 18px 0 0;width:100%;max-width:520px;max-height:92vh;margin:0;overflow-y:auto}@media (width>=600px){.modal-overlay{align-items:center;padding:20px}.modal{border-radius:18px}}
