:root{--p-h:243;--p-s:75%;--p-l:59%;--primary:hsl(var(--p-h),var(--p-s),var(--p-l));--primary-hover:hsl(var(--p-h),var(--p-s),calc(var(--p-l) - 5%));--bg-main:hsl(210,40%,98%);--sidebar-bg:#ffffff;--glass-bg:rgba(255,255,255,0.7);--glass-border:rgba(255,255,255,0.3);--text-main:#0f172a;--text-muted:#64748b;--border-subtle:#e2e8f0;--shadow-sm:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--shadow-md:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--shadow-lg:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--shadow-glow:0 0 15px -3px rgba(99,102,241,0.3);--radius-xl:1.25rem;--radius-lg:1rem;--radius-md:0.75rem;--safe-area-top:env(safe-area-inset-top);--safe-area-bottom:env(safe-area-inset-bottom)}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased}.glass{background:var(--glass-bg);border:1px solid var(--glass-border)}.glass,.glass-dark{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.glass-dark{background:rgba(15,23,42,.8);border:1px solid rgba(255,255,255,.1)}.card{border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background-color:#fff;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:var(--shadow-md)}.card-header{background:transparent;border-bottom:1px solid var(--border-subtle);font-weight:700;padding:1.25rem}.btn{border-radius:var(--radius-md);font-weight:500;padding:.5rem 1rem;transition:all .2s}.btn-primary{background-color:var(--primary-color);border-color:var(--primary-color)}.btn-primary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);transform:translateY(-1px)}.form-control,.form-select{border-radius:var(--radius-md);border-color:var(--border-color);padding:.6rem .8rem}.form-control:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.nav-link{border-radius:var(--radius-md);color:var(--text-muted);padding:.75rem 1rem}.nav-link:hover{background-color:var(--bg-light);color:var(--primary-color)}.nav-link.active{background-color:rgba(99,102,241,.1);color:var(--primary-color)!important;font-weight:600}.text-gradient{background:linear-gradient(135deg,var(--primary),hsl(var(--p-h),var(--p-s),40%));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.bg-gradient-primary{background:linear-gradient(135deg,var(--primary),hsl(var(--p-h),var(--p-s),45%));color:#fff}.active-glow{box-shadow:0 0 20px -5px hsla(var(--p-h),var(--p-s),var(--p-l),.5)}header.glass{border-bottom:1px solid var(--border-subtle);backdrop-filter:blur(20px) saturate(180%)}.table{--bs-table-bg:transparent}.table thead th{background:hsla(210,40%,96%,.8);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-top:none;padding:1rem}.table tbody td{padding:1rem;font-size:.9rem;color:var(--text-main);border-bottom:1px solid var(--border-subtle)}.btn-primary{background:var(--primary);border:none;box-shadow:0 4px 14px 0 hsla(var(--p-h),var(--p-s),var(--p-l),.39)}.btn-primary:active{transform:scale(.96)}.badge-pill{border-radius:50rem;padding:.4em .8em;font-weight:600;font-size:.75rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width:768px){.card{border-radius:var(--radius-md)}.container-fluid{padding-left:1rem;padding-right:1rem}}.scanner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10}.scanner-box{width:300px;height:150px;border:2px solid rgba(255,255,255,.4);box-shadow:0 0 0 1000px rgba(0,0,0,.5);border-radius:12px;position:relative;overflow:hidden}.scanner-laser{width:100%;height:3px;background:var(--primary);box-shadow:0 0 15px var(--primary);position:absolute;top:0;animation:laserScan 2.5s ease-in-out infinite}@keyframes laserScan{0%,to{top:10%;opacity:.2}50%{top:90%;opacity:1}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease-out forwards}