@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff)format("woff");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:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff");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}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff)format("woff");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:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff");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}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff)format("woff");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:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff");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}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-ext-700-normal-CJIcxD6K.woff2)format("woff2"),url(/assets/dm-sans-latin-ext-700-normal-BLI3TTWz.woff)format("woff");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:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg0:#e8eef5;--bg1:#d5e4ef;--ink:#132033;--muted:#5b6b7c;--surface:#ffffffd1;--surface-solid:#f7fafc;--line:#1320331a;--teal:#0f766e;--teal-deep:#115e59;--mint:#ccfbf1;--amber:#b45309;--amber-soft:#fff7ed;--danger:#b91c1c;--ok:#047857;--shadow:0 12px 40px #13203314;--radius:18px;--font:"DM Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;font-family:var(--font);color:var(--ink);background:var(--bg0);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.4}*{box-sizing:border-box}html,body,#root{min-height:100dvh;margin:0}body{background:radial-gradient(120% 80% at 10% -10%, #b8d4e8 0%, transparent 55%), radial-gradient(90% 70% at 100% 0%, #9fd4c8 0%, transparent 45%), linear-gradient(180deg, var(--bg0), var(--bg1));background-attachment:fixed}button,input{font:inherit}code{font-family:var(--mono);color:var(--muted);font-size:.82rem}.app-shell{grid-template-rows:auto 1fr auto;max-width:520px;min-height:100dvh;margin:0 auto;display:grid}.brand-bar{padding:calc(.85rem + env(safe-area-inset-top)) 1.1rem .65rem;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.brand{letter-spacing:-.03em;color:var(--teal-deep);font-size:1.35rem;font-weight:700}.brand-sub{color:var(--muted);font-size:.78rem}.app-main{padding:.25rem 1rem 1rem;overflow:auto}.panel-header{margin-bottom:1rem}.panel-header.row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.panel h1{letter-spacing:-.03em;margin:0;font-size:1.55rem}.panel h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .65rem;font-size:.95rem}.lede{color:var(--muted);margin:.2rem 0 0;font-size:.95rem}.stat-grid{grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:1.25rem;display:grid}.stat{background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.25rem;min-height:5.5rem;padding:.85rem .7rem;display:flex}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem}.stat-value{letter-spacing:-.04em;font-size:1.85rem;line-height:1}.stat-hint{color:var(--muted);font-size:.7rem}.stat.available{background:linear-gradient(160deg, #ecfdf5, var(--surface))}.stat.exception.hot{background:linear-gradient(160deg, var(--amber-soft), var(--surface))}.stat.exception.hot .stat-value{color:var(--amber)}.list-block{margin-top:1.25rem}.record-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.record{background:var(--surface);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .9rem;display:flex}.record.interactive{cursor:pointer}.record strong{display:block}.record code{margin-top:.15rem;display:block}.record-meta{text-align:right;color:var(--muted);flex-direction:column;align-items:flex-end;gap:.35rem;font-size:.85rem;display:flex}.badge{font-family:var(--mono);color:var(--ink);background:#e2e8f0;border-radius:999px;align-items:center;padding:.2rem .45rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge.ok{background:var(--mint);color:var(--ok)}.badge.hot{color:var(--amber);background:#ffedd5}.exception-row{border-color:#b4530940}.empty,.muted{color:var(--muted);font-size:.92rem}.tab-bar{padding:.55rem .35rem calc(.55rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#f7fafceb;grid-template-columns:repeat(5,1fr);gap:.15rem;display:grid;position:sticky;bottom:0}.tab{color:var(--muted);background:0 0;border:0;border-radius:12px;padding:.65rem .2rem;font-size:.72rem;font-weight:600}.tab.active{background:var(--mint);color:var(--teal-deep)}.btn{cursor:pointer;border:0;border-radius:12px;padding:.7rem 1rem;font-weight:600}.btn.primary{background:var(--teal);color:#fff}.btn.primary:active{background:var(--teal-deep)}.btn.secondary{color:var(--ink);background:#dbe7f0}.btn.ghost{color:var(--muted);background:0 0;width:100%;margin-top:.5rem}.btn.large{width:100%;padding:1rem;font-size:1.05rem}.btn.danger-text{color:var(--danger);background:0 0;padding:.2rem 0;font-size:.8rem}.btn-row{gap:.5rem;display:flex}.action-stack{flex-direction:column;gap:.75rem;display:flex}.banner{border:1px solid var(--line);background:var(--surface-solid);border-radius:14px;padding:.85rem .95rem}.banner.ok{background:#ecfdf5;border-color:#04785733}.banner.warn{background:var(--amber-soft);border-color:#b4530933}.banner.error{color:var(--danger);background:#fef2f2;border-color:#b91c1c33;margin-top:.75rem}.banner code{margin:.25rem 0 .5rem;display:block}.editor{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.editor label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;display:flex}.editor input,.manual-form input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;padding:.75rem .85rem}.scanner{flex-direction:column;gap:.75rem;display:flex}.scanner-label{margin:0;font-weight:600}.scanner-viewport{border:1px solid var(--line);background:#0b1220;border-radius:16px;min-height:220px;overflow:hidden}.scanner-viewport video{border-radius:16px!important}.manual-form{grid-template-columns:1fr auto;gap:.5rem;display:grid}.modal-backdrop{z-index:40;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background:#13203373;place-items:end center;display:grid;position:fixed;inset:0}.modal-card{width:min(100%,420px);max-height:90dvh;margin:0;overflow:auto}.modal-code{word-break:break-all;background:#eef3f7;border-radius:10px;padding:.55rem .7rem;display:block}.session-banner{flex-direction:column;gap:.55rem;margin-bottom:1rem;display:flex}.session-banner .btn{align-self:flex-start}
