@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-cyrillic-ext-400-normal-El6lRT8b.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-ext-400-normal-fk07B0hk.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-cyrillic-400-normal-DUb-KqT8.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-400-normal-DDHmqnIJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-vietnamese-400-normal-V2dSmW1H.woff2) format("woff2"),url(/assets/nunito-sans-vietnamese-400-normal-D5dwM7ZL.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-latin-ext-400-normal-BoHsJHPR.woff2) format("woff2"),url(/assets/nunito-sans-latin-ext-400-normal-CHwj-NZB.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-sans-latin-400-normal-AkRraKH2.woff2) format("woff2"),url(/assets/nunito-sans-latin-400-normal-DY9yCUyQ.woff) format("woff");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:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-cyrillic-ext-600-normal-CVjnjZn6.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-ext-600-normal-DZXkk6dX.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-cyrillic-600-normal-D4TuIAT6.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-600-normal-CKMyzy87.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-vietnamese-600-normal-DD7cNabE.woff2) format("woff2"),url(/assets/nunito-sans-vietnamese-600-normal-BW3IEr32.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-latin-ext-600-normal-nHO2odcJ.woff2) format("woff2"),url(/assets/nunito-sans-latin-ext-600-normal-DEh-VjuY.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/nunito-sans-latin-600-normal-BtVRvDNj.woff2) format("woff2"),url(/assets/nunito-sans-latin-600-normal-DLks-Kj1.woff) format("woff");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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-cyrillic-ext-700-normal-GO46tfsI.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-ext-700-normal-Cqve7k0J.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-cyrillic-700-normal-BJ2iHHyS.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-700-normal-DG2UZxR9.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-vietnamese-700-normal-CZwaiz_e.woff2) format("woff2"),url(/assets/nunito-sans-vietnamese-700-normal-BwTSkH1V.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-latin-ext-700-normal-DBq_Pukt.woff2) format("woff2"),url(/assets/nunito-sans-latin-ext-700-normal-jHN8vCOt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-sans-latin-700-normal-CICRJDmU.woff2) format("woff2"),url(/assets/nunito-sans-latin-700-normal-CLVG92B9.woff) format("woff");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:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-cyrillic-ext-800-normal-suUH8DVf.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-ext-800-normal-DlIrhRQ2.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-cyrillic-800-normal-COys2OwR.woff2) format("woff2"),url(/assets/nunito-sans-cyrillic-800-normal-x7mxdBjZ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-vietnamese-800-normal-CfdX2BhI.woff2) format("woff2"),url(/assets/nunito-sans-vietnamese-800-normal-hO2TqS3m.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-latin-ext-800-normal-DWckPAf3.woff2) format("woff2"),url(/assets/nunito-sans-latin-ext-800-normal-DG0lbXwA.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Nunito Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-sans-latin-800-normal-MgCk9Q3Y.woff2) format("woff2"),url(/assets/nunito-sans-latin-800-normal-DOf_K5Iw.woff) format("woff");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:DejaVu Sans Condensed;src:url(/fonts/DejaVuSansCondensed.ttf) format("truetype");font-weight:400}@font-face{font-family:DejaVu Sans Condensed;src:url(/fonts/DejaVuSansCondensed-Bold.ttf) format("truetype");font-weight:700}:root{--spark-green: #6b990d;--spark-green-dark: #557a0a;--spark-lime: #9fd12b;--spark-tint: rgba(107, 153, 13, .11);--spark-bg: #f7f7f9;--spark-text: #1d1d1d;--spark-muted: #666666;--spark-border: #ececf0}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--spark-bg);color:var(--spark-text);font-family:Nunito Sans,-apple-system,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:16px;height:64px;padding:0 20px;background:#fff;border-bottom:1px solid var(--spark-border)}.brand{display:flex;align-items:center;gap:10px;color:var(--spark-text);text-decoration:none;flex-shrink:0}.brand-word{font-weight:800;font-size:24px;letter-spacing:-.5px;line-height:1}.brand-word sup{font-size:10px;font-weight:600}.brand-sub{font-size:12px;color:var(--spark-muted);border-left:1px solid var(--spark-border);padding-left:10px;line-height:1.15}.header-search{flex:1;max-width:640px}.app-sider{background:#fff!important;border-right:1px solid var(--spark-border)}.app-sider .ant-menu{border-inline-end:none!important;padding:8px}.app-sider .ant-menu-item{border-radius:12px!important}.app-content{padding:20px 24px 40px;min-width:0}.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.page-head h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.3px}.page-head .sub{color:var(--spark-muted);margin-top:2px}.card{background:#fff;border-radius:20px;border:1px solid var(--spark-border);padding:20px}.kpi{background:#fff;border-radius:20px;border:1px solid var(--spark-border);padding:16px 18px;height:100%;cursor:pointer;transition:box-shadow .15s,transform .15s}.kpi:hover{box-shadow:0 6px 20px #0000000f;transform:translateY(-1px)}.kpi .kpi-label{color:var(--spark-muted);font-size:13px}.kpi .kpi-value{font-size:30px;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums}.kpi.accent{background:var(--spark-green);color:#fff;border-color:var(--spark-green)}.kpi.accent .kpi-label{color:#ffffffd9}.quick-actions .ant-btn{height:44px}.demo-banner{background:#fff4e5;color:#8a4b00;text-align:center;font-size:13px;padding:4px 12px;border-bottom:1px solid #ffd8a8}.muted{color:var(--spark-muted)}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.95em}.nowrap{white-space:nowrap}.ant-table-wrapper .ant-table{border-radius:16px}.table-card{background:#fff;border-radius:20px;border:1px solid var(--spark-border);padding:4px 4px 0;overflow:hidden}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filters>*{min-width:160px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 80% 10%,rgba(159,209,43,.25),transparent 40%),linear-gradient(160deg,#f7f7f5,#eef2e6)}.login-card{width:100%;max-width:400px;background:#fff;border-radius:28px;padding:32px 28px;box-shadow:0 20px 60px #00000014}.scan-video{width:100%;border-radius:16px;background:#000;aspect-ratio:4 / 3;object-fit:cover}.selection-bar{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;background:var(--spark-text);color:#fff;border-radius:16px;box-shadow:0 10px 30px #0003}.desc-compact .ant-descriptions-item-label{flex:0 0 40%;max-width:220px;color:var(--spark-muted)}.desc-compact .ant-descriptions-item-content{min-width:0;overflow-wrap:anywhere}.photo-box{width:100%;aspect-ratio:4 / 3;border-radius:16px;border:1px dashed var(--spark-border);background:var(--spark-bg);display:grid;place-items:center;overflow:hidden}.photo-box img{width:100%;height:100%;object-fit:contain}.result-found{background:#f1f8e6}.result-missing{background:#fff1f0}.result-misplaced,.result-extra{background:#fff7e6}.result-unknown{background:#f5f5f5}@media(max-width:991px){.app-content{padding:14px 16px 32px}.brand-sub{display:none}.page-head h1{font-size:22px}.app-header{padding:0 12px;gap:10px}}.doc-page{max-width:800px;margin:0 auto;background:#fff;padding:32px 40px;color:#000;font-size:13px}.doc-page h2{text-align:center;margin:8px 0 4px}.doc-page table{width:100%;border-collapse:collapse;margin:12px 0}.doc-page th,.doc-page td{border:1px solid #000;padding:4px 6px;text-align:left;vertical-align:top}.doc-sign{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}.doc-sign div{border-top:1px solid #000;padding-top:4px;font-size:12px}@media print{.no-print{display:none!important}body{background:#fff}.doc-page{padding:0;max-width:none}}
