@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes pop-in{0%{opacity:0;transform:scale(.5)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@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 float-up{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glow-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}@keyframes count-in{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.animate-fade-in{animation:fade-in .22s ease-out forwards}.animate-slide-up{animation:slide-up .34s cubic-bezier(.22,.61,.36,1) forwards}.animate-slide-down{animation:slide-down .24s ease-out}.animate-scale-in{animation:scale-in .32s cubic-bezier(.22,.61,.36,1) forwards}.animate-pop-in{animation:pop-in .34s cubic-bezier(.175,.885,.32,1.275) forwards}.animate-pulse-scale{animation:pulse-scale 3s ease-in-out infinite}.animate-slide-in-left{animation:slide-in-left .34s cubic-bezier(.22,.61,.36,1) forwards}.animate-slide-in-right{animation:slide-in-right .34s cubic-bezier(.22,.61,.36,1) forwards}.animate-float-up{animation:float-up .32s cubic-bezier(.22,.61,.36,1) forwards}.animate-glow-pulse{animation:glow-pulse 4s ease-in-out infinite}.animate-count-in{animation:count-in .34s cubic-bezier(.22,.61,.36,1) forwards}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}@keyframes city-updates-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animate-city-updates-spin{animation:city-updates-spin 6s linear infinite!important}@keyframes blob{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.animate-blob{animation:blob 7s infinite}.animation-delay-2000{animation-delay:2s}.animation-delay-4000{animation-delay:4s}@keyframes slide-content-fade-rise{0%{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes slide-content-scale-fade{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes slide-header-enter{0%{opacity:0;transform:translate3d(0,-12px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes slide-bar-expand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.slide-animate>.slide-anim-header,.slide-animate>header{opacity:0;animation:slide-header-enter .38s cubic-bezier(.22,.61,.36,1) .06s forwards;will-change:opacity,transform}.slide-animate .slide-anim-bar,.slide-animate>header .h-1\.5,.slide-animate>header [class*=bg-gradient]{transform-origin:left center;animation:slide-bar-expand .5s cubic-bezier(.22,.61,.36,1) .22s forwards;transform:scaleX(0);will-change:transform}.slide-animate>.slide-anim-content,.slide-animate>div:not(header){opacity:0;animation:slide-content-fade-rise .42s cubic-bezier(.22,.61,.36,1) .15s forwards;will-change:opacity,transform}.slide-animate>div:nth-child(3){animation-delay:.22s}.slide-animate>div:nth-child(4){animation-delay:.28s}.slide-animate>div:nth-child(5){animation-delay:.34s}.slide-animate>p{opacity:0;animation:slide-content-fade-rise .36s cubic-bezier(.22,.61,.36,1) .12s forwards;will-change:opacity,transform}@media (prefers-reduced-motion:reduce){.animate-blob,.animate-city-updates-spin,.animate-count-in,.animate-float-up,.animate-glow-pulse,.animate-pop-in,.animate-pulse-scale,.animate-scale-in,.animate-slide-down,.animate-slide-in-left,.animate-slide-in-right,.animate-slide-up,.city-ticker-track,.slide-animate .slide-anim-bar,.slide-animate>.slide-anim-content,.slide-animate>.slide-anim-header,.slide-animate>div:not(header),.slide-animate>header,.slide-animate>header .h-1\.5,.slide-animate>header [class*=bg-gradient],.slide-animate>p{animation:none!important;opacity:1!important;transform:none!important}}.card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn{padding:.75rem 1.5rem;border-radius:12px;font-weight:600;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;cursor:pointer;border:none;outline:none}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}table{border-collapse:separate;border-spacing:0}table thead{position:sticky;top:0;z-index:10;background:var(--bg-secondary)}table tbody tr{transition:background-color .15s ease}table tbody tr:hover{background-color:rgba(59,130,246,.05)}.dark table tbody tr:hover{background-color:rgba(59,130,246,.1)}canvas{max-width:100%;height:auto!important}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 0,var(--bg-tertiary) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}:root{--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1)}.dark{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-tertiary:#94a3b8;--border-color:#334155}.page-break{page-break-before:always}@media print{.page-break{page-break-before:always}body{background:#fff;color:#000}.no-print{display:none!important}}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.scrollbar-thin::-webkit-scrollbar{width:8px;height:8px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.dark .scrollbar-thin::-webkit-scrollbar-thumb{background:#475569}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dark .scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#64748b}.dark button,.dark input,.dark select,.dark textarea{border-color:var(--border-color)}.dark input:focus,.dark select:focus,.dark textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}@media (max-width:640px){.card{padding:1rem;border-radius:12px}.btn{padding:.625rem 1.25rem;font-size:.875rem}}