.search-field{min-height:36px;color:var(--app-text-secondary);border:1px solid var(--app-input-border);background:var(--app-surface);border-radius:999px;align-items:center;gap:10px;padding:0 12px;display:flex}.search-field input{width:100%;min-width:0;color:var(--app-text);background:0 0;border:0;outline:0}.search-field input::placeholder,.search-field svg{color:var(--app-muted)}.stat-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;justify-content:space-between;gap:16px;padding:22px;display:flex;box-shadow:0 18px 50px #19233c12}.stat-card p{color:var(--app-text-secondary);font-weight:700}.stat-card strong{letter-spacing:0;margin-top:12px;font-size:26px;display:block}.positive{color:#16a765;margin-top:10px;font-size:13px;font-weight:800;display:block}.stat-icon{border-radius:50%;place-items:center;width:54px;height:54px;display:grid}.stat-icon.green{color:var(--status-success-text);background:var(--status-success-bg)}.stat-icon.purple{color:var(--app-primary);background:var(--app-primary-soft)}.stat-icon.blue{color:var(--status-info-text);background:var(--status-info-bg)}.stat-icon.orange{color:var(--status-warning-text);background:var(--status-warning-bg)}.chart-shell svg{width:100%;height:auto;display:block}.chart-labels{color:var(--app-muted);justify-content:space-between;font-size:12px;display:flex}.table-card{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;overflow:hidden;box-shadow:0 18px 50px #19233c12}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px}table.fixed-layout{table-layout:fixed}table.fixed-layout td{text-overflow:ellipsis;overflow:hidden}th,td{border-bottom:1px solid var(--app-border);text-align:left;white-space:nowrap;padding:10px 14px}th{color:var(--app-text-secondary);background:var(--app-surface-soft);font-size:12px}td{color:var(--app-text)}.align-right{text-align:right}th.sticky-end,td.sticky-end{z-index:1;position:sticky;right:0;box-shadow:-8px 0 10px -8px #0f172a38}th.sticky-end{background:var(--app-surface-soft)}td.sticky-end{background:var(--app-surface)}.table-state{color:var(--app-muted);text-align:center;padding:40px}.table-loading{justify-content:center;align-items:center;min-height:150px;display:flex}.table-footer{color:var(--app-text-secondary);justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;font-size:13px;display:flex}.pager,.pager-numbers{align-items:center;gap:6px;display:inline-flex}.pager button{min-width:34px;height:34px;color:var(--app-text-secondary);border:1px solid var(--app-input-border);background:var(--app-surface);cursor:pointer;border-radius:8px;place-items:center;padding:0 8px;font-size:13px;font-weight:700;transition:color .14s,border-color .14s,background-color .14s;display:grid}.pager button:hover:not(:disabled):not(.active){color:var(--app-primary);border-color:var(--app-primary-ring);background:var(--app-primary-soft)}.pager button.active{color:var(--primary-contrast-text,#fff);border-color:var(--app-primary);background:var(--app-primary)}.pager button:disabled{cursor:not-allowed;opacity:.45}.pager-status{color:var(--app-text-secondary);white-space:nowrap;padding:0 6px;font-size:13px;display:none}.pager-status b{color:var(--app-text)}@media (width<=620px){.pager-numbers{display:none}.pager-status{display:inline}.table-footer{flex-direction:column;align-items:center;gap:10px;display:flex}}.scanner-backdrop{z-index:1600}.scanner-modal{border:1px solid var(--app-border);background:var(--app-surface);border-radius:8px;width:min(520px,100vw - 28px);padding:16px;box-shadow:0 24px 70px #0f172a3d}.scanner-header,.scanner-manual,.scanner-camera-label{align-items:center;display:flex}.scanner-header{justify-content:space-between;gap:16px;margin-bottom:12px}.scanner-header h2{font-size:17px}.scanner-header p{color:var(--app-muted);margin-top:3px;font-size:12px}.scanner-viewport{aspect-ratio:4/3;background:#0f172a;border-radius:8px;position:relative;overflow:hidden}.scanner-viewport video{object-fit:cover;width:100%;height:100%}.scanner-guide{border:2px solid #fff;border-radius:8px;position:absolute;inset:24% 10%;box-shadow:0 0 0 999px #0f172a61}.scanner-camera-label{color:#fff;background:#0f172ac7;border-radius:6px;gap:5px;padding:5px 8px;font-size:11px;font-weight:800;position:absolute;bottom:10px;left:10px}.scanner-error{color:var(--status-warning-text);margin-top:10px;font-size:12px}.scanner-manual{gap:8px;margin-top:12px}.scanner-manual>svg{color:var(--app-muted);flex:none}.scanner-manual input{min-width:0;min-height:38px;color:var(--app-text);border:1px solid var(--app-input-border);background:var(--app-input-bg);border-radius:7px;flex:1;padding:0 10px}@media (width<=620px){.scanner-manual{flex-wrap:wrap;align-items:stretch}.scanner-manual input{flex-basis:calc(100% - 32px)}.scanner-manual button{width:100%}}.active-toggle{white-space:nowrap;cursor:pointer;align-items:center;gap:2px;font-size:12px;font-weight:800;display:inline-flex}.active-toggle.is-active span{color:var(--app-text);font-weight:700}.active-toggle.is-inactive span{color:var(--app-muted)}tr.row-inactive td{opacity:.6}tr.row-inactive td:last-child,tr.row-inactive td.keep-opacity{opacity:1}.img-preview-trigger{border-radius:inherit;cursor:zoom-in;background:0 0;border:0;flex:none;padding:0;line-height:0;display:inline-flex}.img-preview-trigger:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.img-preview-dialog{justify-items:center;gap:10px;max-width:min(92vw,900px);padding:18px;display:grid;position:relative;background:var(--app-surface)!important}.img-preview-full{object-fit:contain;border-radius:8px;max-width:100%;max-height:78vh;display:block}.img-preview-caption{color:var(--app-text);text-align:center;margin:0;font-size:14px;font-weight:700}.img-preview-close{z-index:1;top:8px;right:8px;box-shadow:0 2px 8px #0f172a2e;background:var(--app-surface)!important;position:absolute!important}.upgrade-gate{border:1px solid var(--app-border);background:var(--app-surface);text-align:center;border-radius:12px;justify-items:center;gap:10px;max-width:560px;margin:32px auto;padding:32px 24px;display:grid;box-shadow:0 18px 50px #19233c12}.upgrade-gate-icon{color:#fff;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:14px;place-items:center;width:52px;height:52px;display:grid}.upgrade-gate h2{font-size:19px}.upgrade-gate p{color:var(--app-muted)}.upgrade-gate ul{color:var(--app-text-secondary);gap:6px;margin:6px 0 10px;padding:0;font-size:13.5px;list-style:none;display:grid}.upgrade-gate li:before{color:var(--status-success-text);content:"✓";margin-right:6px}.lock-badge{opacity:.75;place-items:center;margin-left:auto;display:inline-grid}.plan-badge{min-height:34px;color:var(--app-primary);border:1px solid var(--app-primary-ring);background:var(--app-primary-soft);white-space:nowrap;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 12px 0 10px;font-size:13px;font-weight:800;transition:background-color .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.plan-badge:hover,.plan-badge.is-current{border-color:var(--app-primary);box-shadow:0 6px 16px var(--app-primary-ring)}.plan-badge:active{transform:scale(.97)}.plan-badge:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.plan-badge.plan-free{color:var(--app-text-secondary);border-color:var(--app-border);background:var(--app-surface)}.plan-badge.plan-pro{color:#fff;background:linear-gradient(135deg, var(--app-primary), var(--app-primary-dark));border-color:#0000}.plan-badge-cta{color:var(--primary-contrast-text,#fff);background:var(--app-primary);border-radius:999px;padding:2px 8px;font-size:11.5px}@media (width<=600px){.plan-badge{justify-content:center;width:34px;padding:0}.plan-badge-name,.plan-badge-cta{display:none}}:root{--app-primary:#2563eb;--app-primary-dark:#1d4ed8;--app-primary-light:#60a5fa;--app-primary-soft:#2563eb1a;--app-primary-ring:#2563eb38;--app-secondary:#10b981;--app-bg:#f6f8fc;--app-surface:#fff;--app-surface-soft:#f8fafc;--app-text:#172033;--app-text-secondary:#64748b;--app-muted:#64748b;--app-border:#e2e8f0;--app-input-bg:#fff;--app-input-border:#e4e8f1;--sidebar-bg:#17223a;--sidebar-text:#f8fafc;--sidebar-muted:#f1f5f9b3;--sidebar-hover:#ffffff14;--sidebar-border:#ffffff1a;--sidebar-active-bg:#ffffff24;--sidebar-active-text:#fff;--sidebar-active-accent:#2563eb;--sidebar-shadow:8px 0 32px #0206172e;color:var(--app-text);background:var(--app-bg);font-family:var(--app-font-family,"Inter", "Segoe UI", Arial, sans-serif);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;scrollbar-color:var(--app-primary) var(--app-surface-soft);scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--app-surface-soft);border-radius:999px}::-webkit-scrollbar-thumb{background:var(--app-primary);border:2px solid var(--app-surface-soft);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--app-primary-dark)}body{min-width:320px;color:var(--app-text);background:var(--app-bg);margin:0;font-size:14px;line-height:1.4}:root[data-theme-density=Compact] body{font-size:14px}:root[data-theme-density=Spacious] body{font-size:16px}button,input,select{font:inherit}select{color:var(--app-text);background:var(--app-input-bg);border-color:var(--app-input-border)}select option{color:var(--app-text);background:var(--app-surface)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}#root{min-height:100vh}
