:root{--brand-50: #f4f8e3;--brand-100: #e6efb6;--brand-200: #d3e57c;--brand-400: #b8d94a;--brand-500: #9ec538;--brand-600: #80a826;--brand-700: #5b7a16;--brand-900: #1f2a09;--ink-900: #0e1116;--ink-800: #1a1d22;--ink-700: #2a3038;--ink-600: #4a5260;--ink-500: #6c757d;--ink-400: #9aa3ad;--ink-300: #cdd2d8;--ink-200: #e1e4e8;--ink-100: #eef0f3;--ink-50: #f6f7f9;--ink-0: #ffffff;--bg: #f4f5f7;--surface: #ffffff;--danger: #d24a4a;--danger-bg: #fdecea;--warning: #d28b1c;--warning-bg: #fdf3e2;--success: #2c8a52;--success-bg: #e6f4ec;--info: #2c6cd6;--info-bg: #e8f0fc;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(15, 22, 36, .06);--shadow-md: 0 4px 12px rgba(15, 22, 36, .08);--shadow-lg: 0 18px 50px rgba(15, 22, 36, .18);--transition: .16s ease;--nav-w: 220px;--header-h: 58px;--bottom-nav-h: 64px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@font-face{font-family:Nastaliq;src:url(/fonts/NotoNastaliqUrdu-Regular.ttf) format("truetype");font-display:swap}*{box-sizing:border-box}*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink-800);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;min-height:100%;overflow-x:hidden;width:100%;max-width:100%}#root{min-height:100vh;min-height:100dvh;width:100%;max-width:100%;overflow-x:hidden}.layout{width:100%;max-width:100%;overflow-x:hidden}.layout>main{width:100%;max-width:100%;overflow-x:hidden}a{color:var(--info);text-decoration:none;transition:color var(--transition)}a:hover{color:#1f56b8;text-decoration:underline}::selection{background:var(--brand-200);color:var(--ink-900)}h1,h2,h3,h4{color:var(--ink-900)}h1{font-size:22px}h2{font-size:18px;margin:0 0 12px;font-weight:700;letter-spacing:-.01em}h3{font-size:15px;margin:0 0 10px;font-weight:700}input,select,textarea{font:inherit;width:100%;padding:10px 12px;font-size:16px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:var(--ink-0);color:var(--ink-800);transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}input::placeholder,textarea::placeholder{color:var(--ink-400)}input:hover,select:hover,textarea:hover{border-color:var(--ink-400)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #b8d94a40}input:disabled,select:disabled,textarea:disabled{background:var(--ink-50);color:var(--ink-500);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;padding:0;margin:0;accent-color:var(--brand-500);min-width:18px;min-height:18px}textarea{resize:vertical;min-height:80px;font-family:inherit}label{display:block;font-weight:600;margin-bottom:4px;color:var(--ink-700);font-size:13px;letter-spacing:.01em}label.required:after{content:" *";color:var(--danger);font-weight:700}label.checkline{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-700);cursor:pointer;font-size:14px;margin-bottom:0;padding:6px 0;min-height:32px}label.checkline input{width:auto}.form-row{margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:12px 14px}.form-grid>*{min-width:0}.form-grid.cols-2,.form-grid.cols-3{grid-template-columns:minmax(0,1fr)}@media (min-width: 600px){.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 880px){.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 720px){input,select,textarea{font-size:14px;padding:8px 11px}label{font-size:12.5px}label.checkline{font-size:13px}h1{font-size:24px}}button{font:inherit;font-weight:600;padding:10px 16px;min-height:44px;border:1px solid var(--ink-300);background:var(--ink-0);color:var(--ink-800);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition),transform var(--transition);display:inline-flex;align-items:center;gap:6px;justify-content:center;font-size:14px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:hover:not(:disabled){background:var(--ink-50);border-color:var(--ink-400)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand-400);border-color:var(--brand-500);color:var(--brand-900);font-weight:700}button.primary:hover:not(:disabled){background:var(--brand-500);border-color:var(--brand-600)}button.danger{background:var(--danger);border-color:#b83838;color:#fff}button.danger:hover:not(:disabled){background:#c13d3d}button.btn-ghost{background:transparent;border-color:var(--ink-300)}button.btn-icon{padding:8px;min-height:40px;min-width:40px}button.btn-sm{padding:6px 12px;font-size:13px;min-height:36px}button.btn-link{background:transparent;border:0;color:var(--info);padding:6px 8px;min-height:32px}button.btn-link:hover:not(:disabled){background:transparent;text-decoration:underline}@media (min-width: 720px){button{padding:8px 14px;min-height:36px}button.btn-sm{padding:5px 10px;min-height:30px}}.layout{min-height:100vh;min-height:100dvh;padding-top:var(--header-h);padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom))}.layout>header{position:fixed;top:0;left:0;right:0;width:100%;height:var(--header-h);background:linear-gradient(135deg,var(--brand-900),#2f3d10);color:var(--brand-50);display:flex;align-items:center;padding:0 12px;gap:8px;box-shadow:var(--shadow-sm);z-index:30;overflow:hidden}.layout>header>*{min-width:0}.layout>header .brand-logo{height:32px;width:auto;flex-shrink:0}.layout>header .brand{font-weight:800;letter-spacing:1.5px;color:var(--brand-200);font-size:14px;white-space:nowrap}@media (max-width: 400px){.layout>header .brand{display:none}}.layout>header .spacer{flex:1}.layout>header .me{font-size:12.5px;color:var(--brand-100);display:flex;align-items:center;gap:8px}.layout>header .me .me-text{display:none}.layout>header .me .avatar{width:32px;height:32px;border-radius:50%;background:var(--brand-400);color:var(--brand-900);display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}.layout>header button{background:#ffffff0f;border-color:#ffffff2e;color:var(--brand-50);padding:8px 12px;min-height:36px;font-size:13px}.layout>header button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff4d}.layout>nav{background:var(--ink-900);color:var(--ink-300);border-top:1px solid #11161e;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-h) + var(--safe-bottom));z-index:25;padding-bottom:var(--safe-bottom)}.layout>nav::-webkit-scrollbar{display:none}.layout>nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:8px 12px 6px;min-width:64px;flex:1 0 auto;color:var(--ink-300);border-top:3px solid transparent;font-weight:500;transition:background var(--transition),color var(--transition),border-color var(--transition);font-size:11px;white-space:nowrap;text-align:center}.layout>nav a:hover{background:#181c23;color:var(--ink-0);text-decoration:none}.layout>nav a.active{color:var(--brand-200);border-top-color:var(--brand-400);background:#181c23;font-weight:700}.layout>nav a .nav-dot{display:none}.layout>nav a .nav-icon{font-size:18px;line-height:1}.layout>nav a.nav-highlight{color:var(--brand-200);font-weight:700}.layout>nav a.nav-highlight .nav-icon{color:var(--brand-400)}.layout>main{padding:14px 14px 24px;min-height:calc(100vh - var(--header-h) - var(--bottom-nav-h));min-height:calc(100dvh - var(--header-h) - var(--bottom-nav-h));-webkit-overflow-scrolling:touch}@media (min-width: 880px){.layout{display:grid;grid-template-rows:var(--header-h) 1fr;grid-template-columns:var(--nav-w) 1fr;height:100vh;min-height:0;padding:0}.layout>header{position:relative;grid-column:1 / -1;padding:0 18px;gap:16px;left:auto;right:auto}.layout>header .brand{font-size:16px;letter-spacing:2px}.layout>header .me{font-size:13px}.layout>header .me .me-text{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.layout>nav{position:relative;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:12px 0;border-top:0;border-right:1px solid #11161e;bottom:auto;left:auto;right:auto;height:auto}.layout>nav a{flex-direction:row;justify-content:flex-start;padding:10px 18px;border-top:0;border-left:3px solid transparent;min-width:0;font-size:13.5px;font-weight:500;text-align:left;gap:10px}.layout>nav a.active{border-top:0;border-left-color:var(--brand-400)}.layout>nav a .nav-dot{display:block;width:6px;height:6px;border-radius:50%;background:var(--ink-600)}.layout>nav a.active .nav-dot{background:var(--brand-400)}.layout>nav a.nav-highlight .nav-dot{background:var(--brand-400);box-shadow:0 0 0 3px #b8d94a2e}.layout>nav a .nav-icon{font-size:13px;width:16px;text-align:center}.layout>main{padding:22px 26px 40px;overflow-y:auto;min-height:0}}.card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-sm);min-width:0;max-width:100%;overflow-wrap:anywhere}.card-header{display:flex;align-items:center;gap:10px;margin:-2px 0 14px}.card-header h2{margin:0;flex:1;font-size:16px}.card.tight{padding:12px 14px}.measure-section{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.measure-section h3{margin:0 0 12px;font-size:12px;color:var(--brand-700);text-transform:uppercase;letter-spacing:1.4px;border-bottom:1px solid var(--brand-100);padding-bottom:6px;font-weight:800}@media (min-width: 720px){.card{padding:18px 20px;margin-bottom:16px}.card-header h2{font-size:18px}.measure-section{padding:16px 18px}}.page-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;width:100%;max-width:100%;min-width:0}.page-head>*{min-width:0;max-width:100%}.page-head h1,.page-head h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-word}.page-head .spacer{flex:1}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input,.toolbar select{flex:1 1 200px}@media (max-width: 600px){.page-head{gap:8px;align-items:stretch}.page-head h1{font-size:18px;flex:1 1 100%}.page-head .spacer{display:none}.page-head .muted{flex:1 1 100%;font-size:12px}.page-head button,.page-head .primary{flex:1 1 auto}.toolbar>*{flex:1 1 100%!important}.stat-card .value{font-size:22px}.card,.measure-section{padding:12px 14px}}.table-wrap{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;background:var(--surface)}table th,table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--ink-100);font-size:14px;vertical-align:middle}table th{background:var(--ink-50);font-weight:700;color:var(--ink-700);font-size:12px;text-transform:uppercase;letter-spacing:.6px}table tbody tr{transition:background var(--transition)}table tbody tr:hover td{background:var(--brand-50)}table.clickable tbody tr{cursor:pointer}table tbody tr:last-child td{border-bottom:0}table td.num{text-align:right;font-variant-numeric:tabular-nums}table td.actions{text-align:right;white-space:nowrap}@media (min-width: 720px){table th,table td{padding:10px 14px;font-size:13px}}@media (max-width: 599px){.table-wrap{border:0;box-shadow:none;background:transparent;padding:0}table,table thead,table tbody,table tr,table td{display:block}table thead{display:none}table tbody{display:flex;flex-direction:column;gap:8px}table tr{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:10px 12px}table tr:hover td{background:transparent}table tbody tr:last-child td{border-bottom:1px dashed var(--ink-100)}table td{border-bottom:1px dashed var(--ink-100);padding:6px 0;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}table td:last-child{border-bottom:0}table td:before{content:attr(data-label);font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-500);font-weight:700;flex:0 0 auto}table td.actions{justify-content:flex-end}table td.actions:before{display:none}}.tag{display:inline-block;background:var(--brand-100);color:var(--brand-700);padding:2px 9px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;border:1px solid var(--brand-200)}.tag.tag-muted{background:var(--ink-100);color:var(--ink-600);border-color:var(--ink-200)}.tag.tag-danger{background:var(--danger-bg);color:var(--danger);border-color:#f3c3c3}.tag.tag-success{background:var(--success-bg);color:var(--success);border-color:#b9d8c4}.tag.tag-info{background:var(--info-bg);color:var(--info);border-color:#cadcf4}.kbd{display:inline-block;background:var(--ink-100);border:1px solid var(--ink-200);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:var(--ink-700)}.urdu{font-family:Nastaliq,Jameel Noori Nastaleeq,system-ui;direction:rtl;text-align:right;font-size:17px;line-height:2}.error{color:var(--danger);font-size:13px;margin-top:4px}.muted{color:var(--ink-500);font-size:13px}.subtle{color:var(--ink-400);font-size:12px}.spacer{flex:1}.divider{height:1px;background:var(--ink-200);margin:14px 0}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat-grid>*{min-width:0}@media (min-width: 720px){.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:12px}}.stat-card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow-sm);min-width:0;max-width:100%;overflow-wrap:anywhere}.stat-card .label{text-transform:uppercase;font-size:10px;color:var(--ink-500);letter-spacing:1px;font-weight:700}.stat-card .value{font-size:24px;font-weight:800;color:var(--ink-900);margin-top:2px;letter-spacing:-.02em}.stat-card .delta{font-size:11px;color:var(--ink-500);margin-top:4px}.stat-card.accent{border-color:var(--brand-200);background:linear-gradient(135deg,#fafde8,#f6fbd0)}.stat-card.accent .value{color:var(--brand-700)}@media (min-width: 720px){.stat-card{padding:14px 16px}.stat-card .value{font-size:28px}.stat-card .label{font-size:11px}.stat-card .delta{font-size:12px}}.empty{text-align:center;padding:32px 18px;color:var(--ink-500)}.empty .icon{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:var(--ink-100);font-size:22px;color:var(--ink-400)}.login-shell{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:18px;background:radial-gradient(ellipse at top left,rgba(184,217,74,.16) 0%,transparent 55%),radial-gradient(ellipse at bottom right,rgba(184,217,74,.12) 0%,transparent 55%),linear-gradient(135deg,var(--brand-900),#2f3d10)}.login-card{background:var(--ink-0);border-radius:var(--radius-lg);padding:28px 24px 24px;width:100%;max-width:380px;box-shadow:var(--shadow-lg)}.login-card h1{margin:0 0 4px;font-size:24px;font-weight:900;letter-spacing:3px;color:var(--brand-900);text-align:center}.login-card .sub{color:var(--ink-500);margin-bottom:22px;font-size:13px;text-align:center}@media (min-width: 720px){.login-card{padding:36px 38px 32px;max-width:380px}.login-card h1{font-size:26px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f16248c;display:grid;place-items:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:backdrop-in .14s ease;padding:12px;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width: 720px){.modal-backdrop{padding:0;place-items:stretch}.modal{border-radius:0;max-width:100vw;max-height:100vh;max-height:100dvh;height:auto;min-height:100vh;min-height:100dvh}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:18px 20px;width:100%;max-width:420px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--ink-200);animation:modal-in .16s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal h3{margin:0 0 14px;font-size:17px;letter-spacing:-.01em;font-weight:800}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--ink-100);flex-wrap:wrap}.modal-confirm{width:100%;max-width:380px}.modal-wide{max-width:560px}.perm-grid{display:grid;grid-template-columns:1fr;gap:6px;max-height:280px;overflow-y:auto;border:1px solid var(--ink-200);padding:10px;border-radius:6px;background:var(--ink-50)}@media (min-width: 600px){.perm-grid{grid-template-columns:1fr 1fr}}@media (min-width: 720px){.modal{padding:22px 24px}}.multi-list{display:flex;flex-direction:column;gap:6px}.multi-list .row{display:flex;gap:6px;align-items:center}.multi-list .row input{flex:1}.multi-list .row button{flex:0 0 44px;padding:8px;border-radius:var(--radius-sm);color:var(--ink-500);min-width:44px}.multi-list .row button:hover:not(:disabled){background:var(--danger-bg);color:var(--danger);border-color:#f3c3c3}.picker{position:relative}.picker .pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--ink-0);border:1px solid var(--ink-200);border-radius:var(--radius-md);padding:10px;box-shadow:var(--shadow-md);animation:modal-in .14s ease}.picker .pop .list{max-height:240px;overflow-y:auto;margin-top:8px;border-top:1px solid var(--ink-100);-webkit-overflow-scrolling:touch}.picker .pop .list .item{padding:10px;cursor:pointer;border-radius:var(--radius-sm);font-size:14px;transition:background var(--transition)}.picker .pop .list .item:hover{background:var(--brand-50)}.picker .pop .list .empty-row{padding:14px;text-align:center;color:var(--ink-500);font-size:13px}.picker .pop .actions{display:flex;gap:6px;margin-top:8px}.picker .selected-display{cursor:pointer;font-weight:600}.picker .selected-display.placeholder{color:var(--ink-400);font-weight:400}.print-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.print-option{border:2px solid var(--ink-200);border-radius:var(--radius-md);padding:14px;cursor:pointer;text-align:center;background:var(--surface);transition:all var(--transition);display:flex;flex-direction:column;align-items:center;min-height:90px}.print-option:hover{border-color:var(--brand-400);background:var(--brand-50);transform:translateY(-2px);box-shadow:var(--shadow-md)}.print-option .icon{font-size:26px;margin-bottom:6px}.print-option .name{font-weight:700;font-size:14px}.print-option .hint{font-size:11px;color:var(--ink-500);margin-top:2px}.toaster{position:fixed;bottom:calc(var(--bottom-nav-h) + 12px + var(--safe-bottom));left:12px;right:12px;display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none;align-items:center}@media (min-width: 880px){.toaster{bottom:18px;right:18px;left:auto;align-items:flex-end}}.toast{background:var(--ink-900);color:var(--ink-0);padding:12px 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;width:100%;max-width:380px;font-size:14px;font-weight:500;pointer-events:auto;cursor:pointer;animation:toast-in .2s ease;border-left:4px solid var(--ink-600)}@keyframes toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast .toast-icon{flex:0 0 24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{background:var(--success);color:#fff}.toast-error{border-left-color:var(--danger)}.toast-error .toast-icon{background:var(--danger);color:#fff}.toast-info .toast-icon{background:var(--info);color:#fff}.toast .toast-msg{flex:1;line-height:1.4}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--ink-200);border-top-color:var(--brand-500);animation:spin .8s linear infinite;display:inline-block}.spinner.lg{width:36px;height:36px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:grid;place-items:center;padding:50px;color:var(--ink-500);gap:10px}.scan-shell{display:flex;flex-direction:column;gap:14px}@media (min-width: 880px){.scan-shell{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}}.scan-shell>*{min-width:0;max-width:100%}.scan-card{background:var(--surface);border:1px solid var(--ink-200);border-radius:var(--radius-lg);padding:22px 18px;box-shadow:var(--shadow-md)}@media (min-width: 720px){.scan-card{padding:28px 32px}}.scan-icon{width:56px;height:56px;border-radius:14px;background:var(--brand-100);color:var(--brand-700);display:grid;place-items:center;font-size:28px;margin:0 auto;border:1px solid var(--brand-200)}.scan-camera-btn{width:100%;padding:14px 16px;font-size:16px;margin-top:4px;min-height:56px}.scan-divider{display:flex;align-items:center;margin:14px 0 10px;text-align:center;color:var(--ink-400);font-size:11px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.scan-divider:before,.scan-divider:after{content:"";flex:1;height:1px;background:var(--ink-200)}.scan-divider span{padding:0 12px}.scan-input{width:100%;padding:16px 18px;font-size:18px;letter-spacing:1px;font-weight:700;font-variant-numeric:tabular-nums;border:2px solid var(--brand-400);border-radius:var(--radius-md);text-align:center;background:var(--ink-0);box-shadow:0 0 0 4px #b8d94a2e}.scan-input:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 5px #b8d94a47}.scan-found{margin-top:14px;padding:14px 16px;background:var(--success-bg);border:1.5px solid #b9d8c4;border-radius:var(--radius-md);display:flex;align-items:center;gap:12px;animation:scan-pop .24s ease}@keyframes scan-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.scan-found .check{width:36px;height:36px;border-radius:50%;background:var(--success);color:#fff;display:grid;place-items:center;font-weight:800;font-size:18px;flex-shrink:0}.scan-side{display:flex;flex-direction:column;gap:12px}.scan-history-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);font-size:14px;min-height:44px}.scan-history-row:hover{background:var(--brand-50)}@keyframes row-flash{0%{background:transparent}20%{background:#b8d94a8c}to{background:transparent}}tr.row-flash td{animation:row-flash 1.6s ease}@media (max-width: 599px){tr.row-flash{animation:row-flash 1.6s ease}}.cam-modal{width:100%;max-width:540px;padding:12px;background:#000;color:#fff;border:0}@media (max-width: 720px){.cam-modal{max-width:100vw;width:100vw;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;padding:10px;display:flex;flex-direction:column}.cam-modal .cam-shell{flex:1}.cam-modal .cam-stage{flex:1;aspect-ratio:auto;min-height:0}}.cam-modal h3{color:#fff}.cam-shell{display:flex;flex-direction:column;gap:10px}.cam-stage{position:relative;width:100%;background:#000;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4 / 3}.cam-video{width:100%;height:100%;object-fit:cover;background:#000}.cam-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center}.cam-box{position:relative;width:70%;max-width:340px;aspect-ratio:2 / 1;border:1px solid rgba(255,255,255,.25);border-radius:8px;overflow:hidden}.cam-corner{position:absolute;width:28px;height:28px;border-color:var(--brand-400);border-style:solid;border-width:0}.cam-corner.tl{top:0;left:0;border-top-width:4px;border-left-width:4px;border-top-left-radius:8px}.cam-corner.tr{top:0;right:0;border-top-width:4px;border-right-width:4px;border-top-right-radius:8px}.cam-corner.bl{bottom:0;left:0;border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:8px}.cam-corner.br{bottom:0;right:0;border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:8px}.cam-laser{position:absolute;left:6%;right:6%;top:50%;height:2px;background:var(--brand-400);box-shadow:0 0 14px var(--brand-400);animation:laser 2.4s ease-in-out infinite}@keyframes laser{0%,to{top:12%}50%{top:88%}}.cam-hint{margin-top:14px;background:#0009;color:#fff;padding:6px 14px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.5px}.cam-error{position:absolute;top:12px;right:12px;bottom:12px;left:12px;background:#d24a4af2;color:#fff;border-radius:8px;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:13px}.cam-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cam-actions button{background:#ffffff14;border-color:#ffffff2e;color:#fff}.cam-actions button:hover:not(:disabled){background:#ffffff29}.detail-split{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.detail-split>*{min-width:0}@media (min-width: 880px){.detail-split.with-side{grid-template-columns:320px minmax(0,1fr)}}
