:root{--interaction-duration:200ms;--interaction-easing:cubic-bezier(0.4,0,0.2,1);--hover-scale:1.02;--hover-lift:translateY(-2px);--hover-shadow:0 8px 25px rgba(0,0,0,0.15)}.dub-button{position:relative;overflow:hidden;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.dub-button:hover:before{left:100%}.dub-button:hover{transform:var(--hover-lift);box-shadow:var(--hover-shadow)}.dub-button:active{transform:translateY(0);transition-duration:.1s}.dub-card{position:relative;transition:all var(--interaction-duration) var(--interaction-easing);border:1px solid transparent}.dub-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(59,130,246,.3),rgba(147,51,234,.3),rgba(16,185,129,.3));mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:xor;opacity:0;transition:opacity var(--interaction-duration) var(--interaction-easing)}.dub-card:hover{transform:var(--hover-lift);box-shadow:var(--hover-shadow)}.dub-card:hover:before{opacity:1}.dub-interactive-card{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-interactive-card:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:inherit;background:linear-gradient(135deg,rgba(59,130,246,.4),rgba(147,51,234,.4));z-index:-1;opacity:0;transition:opacity var(--interaction-duration) var(--interaction-easing);filter:blur(8px)}.dub-interactive-card:hover{transform:scale(var(--hover-scale))}.dub-interactive-card:hover:after{opacity:1}.dub-link{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,#3b82f6,#8b5cf6);transition:width var(--interaction-duration) var(--interaction-easing)}.dub-link:hover:after{width:100%}.dub-link:hover{color:#3b82f6}.dub-icon{transition:all var(--interaction-duration) var(--interaction-easing)}.dub-icon:hover{transform:scale(1.1) rotate(5deg);color:#3b82f6}.dub-badge{position:relative;overflow:hidden;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-badge:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .4s}.dub-badge:hover{transform:scale(1.05)}.dub-badge:hover:before{left:100%}.dub-input{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-input:focus{transform:scale(1.01);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.dub-dropdown-item{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-dropdown-item:before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background:linear-gradient(90deg,rgba(59,130,246,.1),rgba(147,51,234,.1));transition:width var(--interaction-duration) var(--interaction-easing)}.dub-dropdown-item:hover:before{width:100%}.dub-dropdown-item:hover{padding-left:12px}.dub-tab{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-tab:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:#3b82f6;transform:translateX(-50%);transition:width var(--interaction-duration) var(--interaction-easing)}.dub-tab:hover:after{width:80%}.dub-tab[data-state=active]:after{width:100%}.dub-progress{overflow:hidden;position:relative}.dub-progress:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:progress-shine 2s infinite}@keyframes progress-shine{0%{left:-100%}to{left:100%}}.dub-avatar{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-avatar:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:inherit;background:linear-gradient(45deg,#3b82f6,#8b5cf6,#10b981);opacity:0;transition:opacity var(--interaction-duration) var(--interaction-easing);z-index:-1}.dub-avatar:hover{transform:scale(1.05)}.dub-avatar:hover:before{opacity:1}.dub-table-row{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-table-row:hover{background:linear-gradient(90deg,rgba(59,130,246,.05),rgba(147,51,234,.05));transform:translateX(4px)}.dub-sidebar-item{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-sidebar-item:before{content:"";position:absolute;top:0;left:0;width:3px;height:0;background:#3b82f6;transition:height var(--interaction-duration) var(--interaction-easing)}.dub-sidebar-item:hover:before{height:100%}.dub-sidebar-item:hover{background:rgba(59,130,246,.1);transform:translateX(2px)}.dub-spinner{position:relative}.dub-spinner:after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:inherit;background:linear-gradient(45deg,#3b82f6,#8b5cf6);opacity:.3;filter:blur(8px);animation:spinner-glow 1.5s ease-in-out infinite alternate}@keyframes spinner-glow{0%{opacity:.3}to{opacity:.6}}.dub-chart{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-chart:hover{transform:scale(1.01);box-shadow:0 4px 20px rgba(0,0,0,.1)}.dub-notification{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-notification:hover{transform:translateX(-4px);box-shadow:4px 0 15px rgba(0,0,0,.1)}.dub-search{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-search:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:2px solid transparent;border-radius:inherit;background:linear-gradient(45deg,#3b82f6,#8b5cf6) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:xor;opacity:0;transition:opacity var(--interaction-duration) var(--interaction-easing)}.dub-search:focus-within:after{opacity:1}.dub-fab{position:relative;transition:all var(--interaction-duration) var(--interaction-easing);overflow:hidden}.dub-fab:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.3);border-radius:50%;transform:translate(-50%,-50%);transition:all .3s ease}.dub-fab:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 25px rgba(0,0,0,.2)}.dub-fab:hover:before{width:300px;height:300px}.dub-fab:active{transform:translateY(-2px) scale(1.02)}.dub-tooltip{opacity:0;transform:translateY(10px);transition:all var(--interaction-duration) var(--interaction-easing);pointer-events:none}.dub-tooltip.show{opacity:1;transform:translateY(0);pointer-events:auto}.dub-toggle{position:relative;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-toggle:hover{transform:scale(1.05)}.dub-toggle[data-state=checked]{background:linear-gradient(45deg,#3b82f6,#8b5cf6)}.dub-gradient-text{background:linear-gradient(45deg,#3b82f6,#8b5cf6,#10b981);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-move 3s ease infinite;transition:all var(--interaction-duration) var(--interaction-easing)}.dub-gradient-text:hover{animation-duration:1s;transform:scale(1.02)}@keyframes gradient-move{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.dub-ripple{position:relative;overflow:hidden}.dub-ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .3s,height .3s}.dub-ripple:active:after{width:300px;height:300px;transition:width .1s,height .1s}.dub-stagger-item{opacity:0;transform:translateY(20px);animation:stagger-in .6s ease forwards}.dub-stagger-item:first-child{animation-delay:.1s}.dub-stagger-item:nth-child(2){animation-delay:.2s}.dub-stagger-item:nth-child(3){animation-delay:.3s}.dub-stagger-item:nth-child(4){animation-delay:.4s}.dub-stagger-item:nth-child(5){animation-delay:.5s}@keyframes stagger-in{to{opacity:1;transform:translateY(0)}}.dub-pulse-new{animation:pulse-new 2s ease-in-out}@keyframes pulse-new{0%,to{background-color:rgba(59,130,246,.1);transform:scale(1)}50%{background-color:rgba(59,130,246,.2);transform:scale(1.02)}}.dub-shake{animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.dub-bounce{animation:bounce .6s ease-in-out}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.dub-breathe{animation:breathe 2s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.dub-glow{position:relative;animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 0 5px rgba(59,130,246,.4)}to{box-shadow:0 0 20px rgba(59,130,246,.6)}}.dub-slide-in-left{animation:slide-in-left .5s ease-out}.dub-slide-in-right{animation:slide-in-right .5s ease-out}.dub-slide-in-up{animation:slide-in-up .5s ease-out}.dub-slide-in-down{animation:slide-in-down .5s ease-out}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sr-only:focus{position:static!important;width:auto!important;height:auto!important;padding:inherit!important;margin:inherit!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.reduce-motion,.reduce-motion *,.reduce-motion :after,.reduce-motion :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.high-contrast{--background:255 255 255;--foreground:0 0 0;--card:255 255 255;--card-foreground:0 0 0;--popover:255 255 255;--popover-foreground:0 0 0;--primary:0 0 0;--primary-foreground:255 255 255;--secondary:229 229 229;--secondary-foreground:0 0 0;--muted:229 229 229;--muted-foreground:64 64 64;--accent:229 229 229;--accent-foreground:0 0 0;--destructive:255 0 0;--destructive-foreground:255 255 255;--border:0 0 0;--input:229 229 229;--ring:0 0 0;--radius:0rem}.high-contrast.dark{--background:0 0 0;--foreground:255 255 255;--card:0 0 0;--card-foreground:255 255 255;--popover:0 0 0;--popover-foreground:255 255 255;--primary:255 255 255;--primary-foreground:0 0 0;--secondary:38 38 38;--secondary-foreground:255 255 255;--muted:38 38 38;--muted-foreground:163 163 163;--accent:38 38 38;--accent-foreground:255 255 255;--destructive:255 0 0;--destructive-foreground:255 255 255;--border:255 255 255;--input:38 38 38;--ring:255 255 255}.large-text{font-size:1.125rem!important;line-height:1.6!important}.large-text h1{font-size:3rem!important}.large-text h2{font-size:2.5rem!important}.large-text h3{font-size:2rem!important}.large-text h4{font-size:1.75rem!important}.large-text h5{font-size:1.5rem!important}.large-text h6{font-size:1.25rem!important}.large-text .text-xs{font-size:.875rem!important}.large-text .text-sm{font-size:1rem!important}.large-text .text-base{font-size:1.125rem!important}.large-text .text-lg{font-size:1.25rem!important}.large-text .text-xl{font-size:1.5rem!important}.focus-visible :focus-visible{outline:3px solid hsl(var(--ring))!important;outline-offset:2px!important;border-radius:4px!important}.focus-visible [role=button]:focus-visible,.focus-visible button:focus-visible{outline:3px solid #3b82f6!important;outline-offset:2px!important;box-shadow:0 0 0 2px rgba(59,130,246,.2)!important}.focus-visible a:focus-visible{outline:3px solid #059669!important;outline-offset:2px!important;text-decoration:underline!important;text-decoration-thickness:2px!important}.focus-visible input:focus-visible,.focus-visible select:focus-visible,.focus-visible textarea:focus-visible{outline:3px solid #7c3aed!important;outline-offset:2px!important;border-color:#7c3aed!important}.skip-link{position:absolute;top:-40px;left:6px;background:#000;color:#fff;padding:8px;text-decoration:none;z-index:9999;border-radius:4px;font-weight:600;transition:top .3s}.skip-link:focus{top:6px}.colorblind-friendly .text-green-500,.colorblind-friendly .text-green-600{position:relative}.colorblind-friendly .text-green-500:before,.colorblind-friendly .text-green-600:before{content:"✓ ";font-weight:700}.colorblind-friendly .text-red-500,.colorblind-friendly .text-red-600{position:relative}.colorblind-friendly .text-red-500:before,.colorblind-friendly .text-red-600:before{content:"✗ ";font-weight:700}.colorblind-friendly .bg-green-500,.colorblind-friendly .bg-green-600{background-image:repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 4px)}.colorblind-friendly .bg-red-500,.colorblind-friendly .bg-red-600{background-image:repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(255,255,255,.2) 0,rgba(255,255,255,.2) 4px)}@media (prefers-contrast:high){:root{--background:255 255 255;--foreground:0 0 0;--border:0 0 0;--ring:0 0 0}.dark{--background:0 0 0;--foreground:255 255 255;--border:255 255 255;--ring:255 255 255}}@media (pointer:coarse){.touch-target,[role=button],a,button,input,select,textarea{min-height:44px;min-width:44px}.touch-target{display:flex;align-items:center;justify-content:center}}.keyboard-nav [role=button]:focus,.keyboard-nav a:focus,.keyboard-nav button:focus{position:relative;z-index:10}[aria-live]{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}[aria-live][data-visible=true]{position:static;width:auto;height:auto;overflow:visible}[aria-invalid=true]{border-color:#dc2626!important;border-width:2px!important}[aria-invalid=true]:focus{outline-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.2)!important}[aria-busy=true]{position:relative;pointer-events:none}[aria-busy=true]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;z-index:1}table[role=table]{border-collapse:collapse;width:100%}table[role=table] td,table[role=table] th{border:1px solid hsl(var(--border));padding:.75rem;text-align:left}table[role=table] th{background-color:hsl(var(--muted));font-weight:600}[role=alertdialog],[role=dialog]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:50;background:hsl(var(--background));border:2px solid hsl(var(--border));border-radius:8px;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-height:90vh;overflow-y:auto}[role=tooltip]{position:absolute;background:hsl(var(--popover));border:1px solid hsl(var(--border));border-radius:6px;padding:.5rem .75rem;font-size:.875rem;z-index:50;max-width:300px;word-wrap:break-word}[role=progressbar]{background-color:hsl(var(--secondary));border-radius:9999px;overflow:hidden;position:relative}[role=progressbar]:after{content:attr(aria-valuenow) "% complete";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:600;color:hsl(var(--foreground));text-shadow:0 1px 2px rgba(0,0,0,.5)}[role=alert]{padding:1rem;border-radius:6px;border:2px solid;font-weight:500}[role=alert][data-type=error]{background-color:#fef2f2;border-color:#dc2626;color:#991b1b}[role=alert][data-type=warning]{background-color:#fffbeb;border-color:#f59e0b;color:#92400e}[role=alert][data-type=success]{background-color:#f0fdf4;border-color:#10b981;color:#065f46}[role=alert][data-type=info]{background-color:#eff6ff;border-color:#3b82f6;color:#1e40af}